Thibaut Wdowiak's Blog

vlc 0.8.6x on ppc 603e as of December, 11th 207

13 Jan 2008 // hacks

Plot: I am running a machine with a powerpc processor MPC8241 derived from the ppc 603e and managed to get vlc 0.8.6c running as a daemon on it. This way, I am able to stream my mp3s off my little machine to a multimedia box provided by my ISP as part of the service. This box has RCA output.

Challenges: It took me months to discover the right set of libraries and patches to include in my installation and the options to compile them. So here we go for a little how-to.

How-to: I quickly decided to go the hard way, that is by hand compilation rather than the debian apt way (oh, yes I am running debian) given the specifics of my processor and the minimal config I desired. First thing to do is download the libraries and vlc 0.8.6c (maybe it also works with the freshly released 0.8.6d): Then extract, configure and build them. I configured them with --disable-altivec, because the mpc8241 does not support the altivec instructions set.

Patch vlc: This part is the nastiest part, not that it is particularly difficult but it took me ages to find this was THE hack I needed. Let me explain: there was a bug related to altivec support in vlc (link), patched in the 0.9.x branch (trunk) of the vlc development tree. But this patch never made its way to the 0.8.6-bugfix branch, this same branch that currently gives birth to the stable 0.8.6x versions of vlc. Running a 0.8.6c version of vlc off the box kept me stuck with an "Illegal Instruction" as soon as I tried to play a file. I had to analyse finely the vlc development tree to discover that the initial patch, courtesy of the gentoo people, had never been included in the vlc bugfix branch. So I applied the gentoo patch to my 0.8.6c source, bootstraped, configured and compiled.

Configure: I used the following options to compile vlc:

./configure --prefix=/usr/local --disable-altivec --enable-ogg --enable-flac --enable-vorbis --enable-theora --enable-dvb --enable-freetype  --enable-dvdread --disable-caca --enable-mad --enable-a52 --disable-wxwidgets --enable-libmpeg2 --disable-speex --disable-skins2 --enable-ffmpeg --disable-debug --with-ffmpeg-tree=../ffmpeg --with-a52-tree=../a52dec-0.7.4