Installing Freevo on an ASRock Ion-330 with HDMI
This page is what I have done to install Freevo on a new ASRock Ion-330 using Fedora 11. This includes settings and configurations to get VDPAU accelleration working to ensure audio is output over the HDMI cable.
Note: I performed all of this as root, I couldn't get the audio device permissions correct to run with auto-login for the freevo user, and didn't have the time to figure it out. If I do I'll update this in the future.
Getting the hardware
I bought my Ion-330 from lambda-tek. Delivery was nice and fast, price was good, there was an EU cable in the box rather than UK but they sent out a replacement quickly and hassle free.
I also bought a 5 meter HDMI cable very cheaply from here:
which works just fine with my 1360x768 LCD TV. They claim 1080p but I cannot verify that having no native 1080p display available to test it with.
Installing Fedora 11
Watch out for the LiveCD. There is a very specific way you must install if you want the LiveCD to work:
You must have an ext3 /boot partition and an ext4 root partition for it to work! There also appears to be issues with the LiveCD running from a USB stick, I would stick to a CDR for now.
You will probably want to install rpmfusion to get all the mp3 and media stuff working! Livna to get css decoding for dvds.
rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm rpm -ivh http://rpm.livna.org/livna-release.rpm
For flash get the yum rpm from here and install it:
I then installed the following set of packages:
yum install libva libvaapi flash-plugin mplayer* ffmpeg* gstreamer* freetype-freeworld dvb* xine* kaffeine libdvdcss
and the following development packages to allow for compilation etc.
yum groupinstall "Development Tools" "Development Libraries"
Installing NVidia Drivers
Get the Nvidia drivers from the nvidia site:
I have installed 185.18.36 which appear to work fine. I let the nvidia install create me an xorg.conf file. If you decide not to make sure you change the device driver over to "nvidia".
NB: After install I found that the driver wouldn't work :(. The problem is to do with kernel memory. To solve this I simply added:
As an extra boot parameter on the kernel line in /boot/grub/menu.lst
Configuring for VDPAU
Fedora doesn't include a version of MPlayer that supports VDPAU by default, or in the rpmfusion repositories. I downloaded and installed the version from here instead:
Easiest solution is to configure MPlayer to use VDPAU by default. Edit /etc/mplayer/mplayer.conf and edit the following:
vc = ffmpeg12vdpau,ffh264vdpau,ffwmv3vdpau,ffvc1vdpau, vo = vdpau
Configuring for HDMI audio output
again in /etc/mplayer/mplayer.conf ensure you audio output is set to:
ao = alsa:device=hw=0.3
The device name was discovered by running aplay -l (that is L in lower case):
[root@lounge Download]# aplay -l **** List of PLAYBACK Hardware Devices **** card 0: NVidia [HDA NVidia], device 0: VT1708S Analog [VT1708S Analog] Subdevices: 2/2 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 card 0: NVidia [HDA NVidia], device 1: VT1708S Digital [VT1708S Digital] Subdevices: 2/2 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 card 0: NVidia [HDA NVidia], device 3: NVIDIA HDMI [NVIDIA HDMI] Subdevices: 1/1 Subdevice #0: subdevice #0
You can see that HDMI output is card 0, device 3 equating to the 0.3 in the mplayer settings above.
If you want to have audio output from HDMI and SPDIF at the same time, then look on the tips and tricks page for the ASLA configuration required:
Now you should simply be able to playback any content with mplayer and have it output via HDMI with sound :). Because the defaults are configured there are no command line options to pass to mplayer. To test I got some HD samples from:
The .exe files are simply zip's so can be extracted using ark or your favourite zip tool. These playback beautifully smoothly using about 5% CPU
You may find that there is no audio output, however it is probably just that the volume is at zero, there seems to be some issues with the defaults. So open up:
And adjust the volume up to 100%, and also ensure that the IEC outputs are not muted.
Install Fedora supplied pre-reqs:
yum install python-kaa-metadata python-kaa-base libxml2-python python-imaging python-kaa-imlib2 PyXML lirc* python-lirc xmltv
extract these tar files and install using:
python setup.py install
VDPAU doesn't like the default mplayer video filters applied to progress or interlaced content so you need to remove those
MPLAYER_VF_INTERLACED = '' MPLAYER_VF_PROGRESSIVE = ''
Despite configuring defaults earlier for testing, you will need to ensure that xine and mplayer command line arguments are set correctly for VDPAU and audio output, because freevo specifies them all which will override the global settings. Note xine doesn't support VDPAU on fedora yet, so just normal xv output. Hopefully that can change to vdpau once support is there. You could compile your own but I didn't want the hassle at this point.
XINE_VO_DEV = 'xv' XINE_AO_DEV = 'alsa:device=hw=0.3' MPLAYER_AO_DEV = 'alsa:device=hw=0.3' MPLAYER_VO_DEV = 'vdpau'
I had problems with getting lirc to work correctly as it wouldn't create the /dev/lirc entry so the lirc daemon wouldn't work. I tried to get udev working but it wouldn't create the link so I ended up with a hack in the init script just to create the sym-link before starting lirc. I put the following just after the start() function on line 63 of /etc/init.d/lirc:
ln -s /dev/lirc0 /dev/lirc
There are lots of other config that will be needed but that is documented elsewhere:
For auto-start I used the tty login approach. So I edited "/etc/event.d/tty1" and ensure that the last line said the following to auto-login root on tty1:
exec /sbin/mingetty --autologin root tty1
I then edited root's .bash_profile and added the following to automatically start freevo when logged in on tty1:
case "`tty`" in /dev/tty1) start_freevo.sh &>/dev/null;; esac
My start_freevo.sh script lives on the path in /root/bin and contains the following:
!/bin/sh clear pulseaudio --start freevo recordserver start freevo -fs &