Posts Tagged 'linux'

Dec 07

So I moved some PC's around the house to solve various problems, and managed to get xbmc working sweet on the ASRock ION 330 box. Even 1080p playback with digital audio pass through working, all on the existing Fedora install.

Then I proceeded to make a cut down installer, with the goal of at least putting a smaller disk in the machine, if not running it from a flash drive. Sure I could use a live distro for it, but I'd like to run a few other small apps on it and not have the overhead of distro jumping. Also, if it's binary compatible with my desktop other options open up too. No, I don't think compiler cache on an atom is a good idea.

So I booted up a minimal install (via kickstart) of fedora, with a few select packages added including xbmc (and thus the external repositories) with the massive assumption that the dependencies are setup right. Well normally it's ok, but in this case I ended up with a gdm with no fonts and xbmc segfaulting on load. I'm not even sure if any fonts were present on the box at all, and adding some specific font packages didn't make the boxes go away, though I was just guessing. Eventually to cut a long story short, I did a yum groupinstall gnome-desktop and saved a copy of the packages it was going to install (just in case) and that resulted in both gdm working right, and xbmc working.

Not liking that solution I methodically went through the list removing packages until I found the ones that broke it, urw-fonts for gdm and pulseaudio-module-x11 for xbmc's segfault in libGl.so. PulseAudio caught me by surprise, because to get pass through audio working initially I'd removed ALL pulseaudio-* packages. Xbmc uses alsa for audio which can do digital audio pass through.

Since then I figured, why mess around with gdm and so on, just replace gdm with xbmc and you're done. So off I go on a quest of upstart knowledge which to date I've not had to deal with because everything just works.

What can I say. I'm totally amazed how this got into any distro let alone fedora. There is no single source of complete documentation at all. There's a getting started guide which is ok, but nothing beyond that. The wiki's pages are a boiler plate joke and appear all out of date. The source package had a diagram in it for event state transitions, which was nice to see, but there was no other useful documentation in there at all. Even more amazing was the lack of safe way to disable a service; either rename it's .conf file or alter it's start stop methods to add keyword never (of course there's no list of keywords documented anywhere I could find). Holy frozen shit on a stick. Fedora's site even listed documentation as a requirement, which was marked as fixed, but didn't link to it, nor could I find it. Either way, I managed to make a service (if you could call it that) which could start and stop xbmc on instruction from initctl. But I couldn't get it to start at the end of the boot process, even using the same triggers as gdm was using (with gdm disabled of course). Even worse, while playing with these start/stop event triggers I managed to get into the situation where reboot didn't work until you did it a second time (via ssh – as the local console was shutdown by that stage). So I bashed on and on battling it, not really making any progress, tried various ways of doing it, moved to a sysv style script which I got working much faster (and correctly starting at the end of the boot process) however xbmc was not able to output any audio at all.

To cut another very long frustrating story short, I went back to gdm with auto login, and it's auto login delay seems to not be able to be set to zero. I was playing with using slim instead which could do that, but still couldn't get audio.

Honestly I'm not sure what's going on there, it doesn't make any sense, but my time is worth more to me so for now that will do. Though I might make a list of various combination's to try if time allows.

So in cutting yet another story short - as this post is now well overdue - I've produced a fedora 14 kickstart installer that is quite minimal, blows the whole disk away and installs xbmc. On bootup it auto logs in and even grabs my xbmc configuration during the install - so on it's first boot up, it boots up into xbmc with working auto mounted NFS shares and digital audio out. Win. With a bit of polish and some changed password hashes I'll upload it to share.

This post was going to be about something totally different but also broken. Maybe soon.