General
I have here an AMD64 but with the 64-bit version of Gentoo I had several problem with some VDR plugins so I went back to the 32-bit version. To install Gentoo download the livecd and use the GUI installer, see Gentoo documentation how to do it (I used 2006.1).
After the installation is finished boot your new gentoo.
Edit make.conf and add:
LIRC_DEVICES="serial"
Now we must install some packages first which VDR or the plugins I use needs to compile correctly.
emerge --sync
emerge portage
etc-update
emerge gentoolkit eix gentoo-sources mc app-admin/sudo
Now compile the kernel with your DVB drivers and everything else, reboot your new kernel.
Now we install software needed by VDR:
emerge lirc imagemagick sys-libs/libcap media-libs/libmad media-libs/libid3tag media-libs/libvorbis media-libs/libsndfile \
media-libs/libdvdnav media-libs/a52dec dev-libs/boost media-libs/gd cvs subversion
Driver for new Cards
http://mercurial.intuxication.org/hg/s2-liplianin
Compile new Driver
To get the driver:
cd /usr/local/src/
mkdir hvr4000
mkdir -p hvr4000/liblianindvb-test
cd hvr4000/liblianindvb-test
hg init
hg pull http://arvdr-dev.free-x.de:8080/testdvb/
hg update
Compile the driver:
make
make install
To compile VDR:
cd /usr/local/src/hvr4000/liblianindvb-test/linux/include/linux
ln -s /usr/src/linux/include/linux/compiler.h .
vdpau Support
Make sure you have a current gcc on the system, I used gcc-4.3.4.
gcc-config -l
gcc-config 2
source /etc/profile
I use the following versions:
nvidia 190.53 (install with sh /usr/portage/distfiles/NVIDIA-Linux-x86-190.53-pkg0.run)
kernel 2.6.32-gentoo-r1
vdr 1.7.10
Required libs:
emerge -av media-video/vcdimager
emerge -av media-sound/musepack-tools
Make sure you do not have any xine or xine-lib installed, search with the command and decide to delete necessary files:
cd /usr
find . -name "*xine*"
Download the following files: xine-lib from hg repository http://hg.debian.org/hg/xine-lib/xine-lib-1.2-vdpau .
cd /usr/local/src
hg pull http://hg.debian.org/hg/xine-lib/xine-lib-1.2-vdpau
Compile xine-lib:
cd /usr/local/src/xine-lib-1.2-vdpau
./autogen.sh --prefix=/usr --disable-xinerama
make
make install
Compile Plugin for VDR:
cvs -z3 -d:pserver:anonymous@xineliboutput.cvs.sourceforge.net:/cvsroot/xineliboutput co vdr-xineliboutput
Copy the checkout to you vdr/PLUGINS/src folder and compile it with make plugins.
Copy to your /etc/vdr/setup.conf:
xineliboutput.Audio.Compression = 100
xineliboutput.Audio.Delay = -120
xineliboutput.Audio.Headphone = 0
xineliboutput.Audio.SoftwareVolumeControl = 0
xineliboutput.Audio.Speakers = Pass Through
xineliboutput.Audio.Surround = 0
xineliboutput.Audio.Upmix = 0
xineliboutput.Audio.Visualization = goom
xineliboutput.Audio.Visualization.GoomOpts = width=400,height=300,fps=25
xineliboutput.Frontend ======
xineliboutput.Media.BrowseFilesDir = /video0/storage/videos/erotik/neu/Real.Wife.Stories.-.The.Switcheroo
xineliboutput.Media.BrowseImagesDir = /video0
xineliboutput.Media.BrowseMusicDir = /video0/storage/mp3s-server/Doogie
xineliboutput.Media.CacheImplicitPlaylists = 1
xineliboutput.Media.DVD.ArrowKeysControlPlayback = 1
xineliboutput.Media.EnableID3Scanner = 1
xineliboutput.Media.MenuItems = -1
xineliboutput.OSD.AlphaCorrection = 0
xineliboutput.OSD.AlphaCorrectionAbs = 0
xineliboutput.OSD.Blending = 1
xineliboutput.OSD.BlendingLowRes = 0
xineliboutput.OSD.DvbSubtitles = 0
xineliboutput.OSD.ExtSubSize = -1
xineliboutput.OSD.Height = 576
xineliboutput.OSD.HideMainMenu = 0
xineliboutput.OSD.LayersVisible = 4
xineliboutput.OSD.Scaling = 2
xineliboutput.OSD.Size = automatic
xineliboutput.OSD.Width = 720
xineliboutput.Playlist.Album = 1
xineliboutput.Playlist.Artist = 1
xineliboutput.Playlist.Tracknumber = 0
xineliboutput.Post.denoise3d.chroma = 30
xineliboutput.Post.denoise3d.Enable = 0
xineliboutput.Post.denoise3d.luma = 40
xineliboutput.Post.denoise3d.time = 60
xineliboutput.Post.pp.Enable = 0
xineliboutput.Post.pp.Mode = de
xineliboutput.Post.pp.Quality = 3
xineliboutput.Post.unsharp.chroma_amount = 0
xineliboutput.Post.unsharp.chroma_matrix_height = 3
xineliboutput.Post.unsharp.chroma_matrix_width = 3
xineliboutput.Post.unsharp.Enable = 0
xineliboutput.Post.unsharp.luma_amount = 0
xineliboutput.Post.unsharp.luma_matrix_height = 5
xineliboutput.Post.unsharp.luma_matrix_width = 5
xineliboutput.Remote.AllowHttp = 1
xineliboutput.Remote.AllowHttpCtrl = 0
xineliboutput.Remote.AllowRtsp = 1
xineliboutput.Remote.AllowRtspCtrl = 0
xineliboutput.Remote.Iface ======
xineliboutput.Remote.Keyboard = 1
xineliboutput.Remote.ListenPort = 37890
xineliboutput.Remote.LocalIP ======
xineliboutput.Remote.MaxClients = 10
xineliboutput.Remote.Rtp.Address = 224.0.1.9
xineliboutput.Remote.Rtp.AlwaysOn = 0
xineliboutput.Remote.Rtp.Port = 37890
xineliboutput.Remote.Rtp.SapAnnouncements = 1
xineliboutput.Remote.Rtp.TTL = 1
xineliboutput.Remote.UseBroadcast = 1
xineliboutput.Remote.UseHttp = 1
xineliboutput.Remote.UsePipe = 1
xineliboutput.Remote.UseRtp = 0
xineliboutput.Remote.UseTcp = 1
xineliboutput.Remote.UseUdp = 1
xineliboutput.RemoteMode = 1
xineliboutput.Video.AspectRatio = 0
xineliboutput.Video.AutoCrop = 0
xineliboutput.Video.AutoCrop.AutoDetect = 1
xineliboutput.Video.AutoCrop.DetectSubs = 1
xineliboutput.Video.AutoCrop.FixedSize = 1
xineliboutput.Video.AutoCrop.SoftStart = 1
xineliboutput.Video.Brightness = -1
xineliboutput.Video.Contrast = -1
xineliboutput.Video.Decoder.H264 = automatic
xineliboutput.Video.Decoder.MPEG2 = automatic
xineliboutput.Video.Deinterlace = tvtime
xineliboutput.Video.DeinterlaceOptions = method=Linear,cheap_mode=1,pulldown=none,framerate_mode=full,judder_correction=1,use_progressive_frame_flag=1,chroma_filter=0,enabled=1
xineliboutput.Video.HUE = -1
xineliboutput.Video.IBPTrickSpeed = 1
xineliboutput.Video.MaxTrickSpeed = 12
xineliboutput.Video.NoiseReduction = -1
xineliboutput.Video.Overscan = 0
xineliboutput.Video.Saturation = -1
xineliboutput.Video.Sharpness = -1
xineliboutput.Video.SwScale = 0
xineliboutput.Video.SwScale.Aspect = 0
xineliboutput.Video.SwScale.Downscale = 0
xineliboutput.Video.SwScale.Height = 576
xineliboutput.Video.SwScale.Resize = 0
xineliboutput.Video.SwScale.Width = 720
Edit the file ~/.xine/config_xineliboutput
.version:2
audio.device.alsa_default_device:hw:0,3
audio.device.alsa_front_device:hw:0,3
audio.device.alsa_passthrough_device:hdmi:CARD=NVidia,DEV=0
audio.output.speaker_arrangement:Pass Through
audio.synchronization.av_sync_method:resample
video.processing.ffmpeg_thread_count:4
effects.goom.fps:25
effects.goom.height:576
effects.goom.width:720
engine.buffers.video_num_buffers:250
engine.buffers.video_num_frames:22
engine.performance.memcpy_method:mmxext
To test everything, start the X server with:
xinit
Start VDR with
runvdr
Start the display with
/usr/local/bin/vdr-sxfe --post tvtime:use_vo_driver,cheap_mode=0,pulldown=0,use_progressive_frame_flag=1 --fullscreen --reconnect xvdr+tcp://127.0.0.1:37890 --video=vdpau
You should see know a picture on your display.
To start everything automatically copy the vdr-sxfe line into a file /usr/local/bin/start-vdr-sxfe and make it executable. Change /etc/inittab and add the line:
sxfe:3:respawn:/usr/local/bin/start-vdr-sxfe
VDPAU Support Gentoo Way
Add an overlay:
layman -a vdr-xine
layman -S
eix-sync
Edit /etc/portage/package.unmask
media-libs/xine-lib
Edit /etc/portage/package.keywords
media-libs/xine-lib
Install it with:
emerge -av xine-lib
make sure here that really version 9999 is installed (the mecurial version) and check there in the configure output while compiling that vdpau is shown.
PS3 Remote Control and VDR
Install required software:
emerge -av dev-python/dbus-python dev-python/pygobject net-wireless/bluez
Add bluetooth to start-up:
rc-update add bluetooth boot
/etc/init.d/bluetooth start
Dec 16 | Atmel | 2 min read |
Dec 16 | Compiling a kernel | 1 min read |
Dec 16 | Distcc and ccache | 4 min read |
Dec 16 | LVM2 | 3 min read |
Dec 16 | Layman | 1 min read |