"The Neverending Saga of That F8%$)@! Mini-PC" or "Why Not Sleeping Makes You Legally Insane"
So it was mid-November, and I thought I had Christmas all figured out. As I talked about in the last post, I had pretty much finished all the difficult technical stuff getting MythTV working, and was all set to deliver a home-brew Tivo system to Sara for christmas.
Or so I thought...
Now that it was working on my home PC, I had a few questions left to answer.
1.)Where was this going to run. It couldn't run on my home PC, because that was in use most nights. 2.)Sara also hates that that PC is on all the time already anyway, so it needed to be a small, low power device.
With these concerns in mind, and a strong desire for this device to have a highish "sexy" quotient (i.e., something we wouldn't mind looking at by our TV for years) I settled on a Mini-ITX pc.
Basically, these machines are a little PC in a 17cm x 17cm shape, and can be built wherever you choose to build them. Football helmet, olde-time radio, the shell of an old 8-bit nintendo... They're showing up everywhere. How better to make this little PC blend in then by making it as small as possible?
The Mini-ITX form factor has a few other plusses that made me settle on it, being that they're low-power and low-noise computers, as long as you set them up accordingly. They're also normal PC's for all intents and purposes. They run normal software, and are especially suited to entertainment box roles, such as Freevo and MythTV boxes. They're even often sold as such.
So back in Mid-November, I ordered one such PC from Big008.com.
This was the first wrench in the works, because two weeks later it was suddenly December, I had no PC, and I was on the phone with PayPal to make sure that there was no way that the charge could go through without further consent from me. I must have called Big008.com 50 times in that time, and never got so much as an answering machine or a return email.
So now, on December 1st, I ordered the PC straight through e-bay, where I could at least leave negative feedback if i got screwed, and I started working late nights to prepare for the arrival of said Mini-PC. I was also beginning to record shows and rigorously test the system on my existing PC, making sure that it would be a christmas wow and not a christmas "oh."
The second strike came from UPS. Not because of anything they did per-se, the package came exactly as described and right on time... but it took 7 working days to cross this great nation by ground. This left me with roughly a week to get the little machine together.
No problem, I thought to myself. I won't have time to tweak it and make it perfect, but I'll get it loaded up with the software, and it will at least handle the Tivo stuff like my PC is now.
BZZZZZZ! Wrong!
This is where things begin to go badly. There's many parts that I don't fully recall, because i pretty much stopped sleeping at all at this point.
The sum up for the non-geek-folk is this: the little PC isn't exactly a PC. It's got little quirks that you have to know about and work around. This takes longer than you think it will, and doesn't always work, which made me a crazyman over the course of 7 sleepless nights. You can skip the next 3 paragraphs if you don't care about Linux and/or the nitty gritty behind all this.
<Begin technical info><end geeky part... Err... I mean, technical info>Via, the company that makes most of the Mini-ITX machines, says they support linux. Unfortunately, support is a very subjective word. For some companies, this means they release the source code to the drivers for their products, and support can then easily be written into all Linux distros easily. For other companies, it means writing a driver, but then only releasing it for the Distros and Kernels you feel like compiling it for, and then doing a half-assed job at that. Oh, and most of the time, you do a crappy job of writing the driver because no one gets to check your work and you just need to do enough to say you support linux, so it crashes the kernel at random intervals just for fun.
Up until a few months ago, Via was this second type of company, which meant that I was suddenly in a world of suck. I got everything for MythTV installed on top of Fedora Core 1 using Apt, just as I had on my development box, only to find out that basic video support was completely lacking. I could see my screen fine, but I couldn't play full screen video, let alone encode and decode Divx movies at the same time, as I would need to do for MythTV support.
Long story short, I redid that little system 3 times as a Fedora Core 1, Red Hat 8, and Red Hat 9 box just trying to get the Via binary drivers to play nice. They're only compiled for the big (and old) distros, so I had to walk back to RH9, and then installing anything from Apt was a nightmare. I finally got the Via display driver to work on the night before I was supposed to give Sara her presents, and started to test it a bit... And the stupid thing started crashing randomly. Not just little segfaults, but total kernel panics. After a night of hardware testing, there was no other culprit besides the driver, and there was nothing I could do.
So here I was, completely cracked out from lack of sleep, having run the week long technical marathon only to fall flat on my face an inch before the finish line. I was devastated... After all this work and planning, I wasn't going to have a christmas gift for sara.
I felt like I'd forgotten christmas, and was realizing it on christmas day when all the stores were already closed.
Between the stress and being legally insane from lack of sleep, I ended up not going in to work that day. I tried to go in around noon and ended up sitting on the couch with my coat on for about an hour when i finally gave in to the headache, got a bit sick, and slumped back into bed.
Around 3 I woke, and was finally, blissfully, out of that insomniatic state where the entire world feels like it's had the volume turned up, and there's nothing you can do about it.
With a clearer head, I was able to figure out that I didn't HAVE to have the system running on the little mini-pc. I could swap my computer in as the entertainment PC, and have something for Sara to see when she got home from work. I got cracking, and put the system together in the livng room, and lost two mini-battles. First, TV-out on linux is way harder than expected. Second, Infra-red remote support needs a kernel recompile, so that was also left for later.
Thankfully, I had a nice big spare monitor that I could put up in place of the TV and a wireless keyboard that world serve nicely until i can get the mini-pc working with remote.
The silver lining ended up being two-fold. One, I had time to present the gift properly once I'd slept for a while, and two, it seems that there is hope for getting this all running on the little PC afterall. Via has recently released the source for their display drivers, and it's being incorporated into the newest versions of Linux. I can either be patient and wait the 6-12 months until it's packaged up nice and easy, OR, i can try out Gentoo linux, get the latest versions of X11 and the kernel, and compile the damn thing myself.
It's about time I learned how to do that.
Gentoo Linux, here I come. And this time, there's no time limit, so I'll be sleeping enough to not be a bastard! Wo0t!

