After much waiting and wrangling over which one to get, I have finally bought a new Mini ITX motherboard to use for my mythfrontend. I’ve been planning to get a second one for a long time, ever since I pretty much realized it wasn’t just a possible goal, it was a completely awesome solution as an embedded frontend.
Here’s the board I got: an MSI IM-945GC.
Just looking at it, it doesn’t look like a good board for multimedia playback at all. It doesn’t have SPDIF, S-Video, Composite, Component or HDMI ports. Just VGA, stereo jacks, PS2 ports and three COM ports. Woots. But, it is stocked with lots of cool stuff.
The processor is a dual-core Intel Atom. Dual-core! That’s just amazing, and the first I’ve seen. I would normally be hesitant to go from a VIA C7 chip (which is what I already have) to something else, but my netbook also has an Intel Atom CPU, and it runs surprisingly fast. This thing also runs at 1.6 GHz, which is the fastest that I’ve seen, and still fanless. The next thing that even comes close to this is a VIA C7 1.2 GHz single core that is also fanless. So, this thing is gonna rock.
Because it’s using an Intel chipset, that means that the onboard video is also Intel’s. It’s got a GMA 950 onboard, which means I’m not gonna have to worry a lick about the graphics or OpenGL. My only complaint in that area is that, like all onboard video cards, it uses shared memory which I’m not a big fan of. But, the picture will look really gorgeous.
Despite the lack of media ports, there’s still other reasons why I got this thing. It has a PCI Express Mini slot on it, which means I can get a wireless card and stick it in there and it’ll rest on top of the motherboard. It also has a PCI slot so if I really want to, I can get a different video card in there. I doubt there are any PCI ones with HDMI, but I do know you can snag one with S-Video.
Perhaps most importantly, though, this thing supports 2 GB of RAM. I had a really hard time deciding on which features I wanted the mobo to have, and when I finally listed features by priority, this one came out on top. My current Mini only supports 1 GB, and while that’s sufficient, I’m more in the market of making sure I can future proof this thing as much as possible. The harddrive will be a SSD flash module that plugs into the IDE port, and I’ll run it in readonly mode using ext2 with no swap. I’ll have a small partition for /var so that I can write temporary files, but that’s it. Everything is going to use RAM, and that’s it, so I want to make sure my option is maxed out.
Another great feature is that this thing also has two gigabit NICs on the back. Plus, there are four USB ports, all 2.0. I’m really excited for this board. I think it’s gonna be pretty fast. The CPU also supports hyperthreading, so it’ll look like I have four cores in there.
I decided to go ahead and forego some of the other media ports because I don’t see me wanting to use them anytime soon. Or, by the time I want to, I’ll probably want either a better motherboard or a completely different delivery option by then. Both of my mythfrontends are used primarily to playback TV shows and casual movies that I just feel like watching. They are not intended to deliver an amazing presentation, such as duplicating a great picture like or surround sound. When I want the best quality, I’ll just pull out the DVD and turn on my receiver. But that doesn’t happen very often. My HDTV that I’ll be hooking this up to has a VGA port on the back, and so that’s all I needed. It also has a stereo input jack, so I can just run an audio cable straight in without any fuss. The low quality playback solution works perfectly since 90% of my content is old and in stereo to start with.
This thing doesn’t come even close to being able to handle an HD stream, and I’m totally cool with that. As strange as it may seem, I am an incredibly slow adopter when it comes to new technologies, and in cases like this I get extremely stubborn and stick with what works for a long time. That does have one advantage to it — by the time I do get around to working with something, it’s not in alpha or beta stages anymore, and I can usually do what I want without much of a hitch.
I’m just now barely starting to warm up to BluRay just a little bit (another post that I need to write about) ever since seeing some actual quality films. I only have three films at home — the first three Harry Potters — only because I got them at a great deal at Amazon ($40 for all three) and I bought them just so I could have *some* source material on hand to see what its like whenever I get the urge. Movies is pretty much the only thing I would care about when it comes to HD anyway, and since almost all of my time accessing the mythfrontend is watching TV shows from the 60s to the 90s, HD isn’t even a variable, and it won’t be for a long time.
So, I’m really excited to get this thing. My old setup was working perfectly well, and I just barely took it down last night. Right before I did, I looked at the uptime to see what it was at — 141 days. Freak, that’s over 4 months that this thing has been working without a hitch. I’m pretty proud of that.
This time around I bought a bigger flash drive. My old one was 256 MBs. Yes, megabytes. I had a job a few cycles ago developing an embedded multimedia operating system (based on Gentoo, of course) which is where I learned everything. The job or the company didn’t quite work out so well, but the experience was a great learning one. The OS that is running on my current Mini is completely crafted from an extreme amount of TLC. Every single program that is on there has both been modified to cut out cruft and save space, and optimized where possible to run faster. I did not have any space to play with, and when you need X, MythTV, Qt3 and glibc you gotta really learn to squeeze. It is quite possible though. In fact, I think my image is closer to 180 megs in space total, after using SquashFS.
The amazing part is how responsive the thing is. Since everything was nicely tweaked, it seriously feels like I’m using my dual-core amd64 desktop because it is so snappy. In some cases, it is more responsive, the latency is just so low. There are a lot of shortcuts you can take, though, mostly in the kernel … such as not dumping anything and turning off a bunch of other stuff you wouldn’t dare do anywhere else, but building for embedded is so amazingly fun. Plus there’s just nothing cooler than knowing it runs with such an small footprint. I highly recommend Building Embedded Linux Systems, Second Edition from O’Reilly if you are interested in doing some of the same. It’s a lifesaver. And, of course, I recommend using a source-based distribution like Gentoo because it will help you to very easily trim down the fat and get only the bare essentials on there.
I bought a new flash IDE drive along with the new motherboard, and this one is 4GB in size, so I’m not going to have to ever worry about size. I’m not sure if I’ll create a new custom build for this one as well or not. It was a lot of work getting the first one done, but a great learning experience. It reminded me a lot of when I first started installing Gentoo years ago, because up until that point, I thought I knew a lot about how things work together. There’s nothing quite like getting into every single program you install in your OS and digging to see if you really need it or not, just trying to save an extra 59kb to 4MB of space. Good times.
Anyway, I’ll be sure to take some pics of the new one once it gets here. I already started taking some of my old one, as I’ll have to dismember it a bit and move it to a new case. I might end up replacing that one as well, since it’s starting to fall apart a bit. I’m not sure I could go through the decision making process again, though. :)
Edit: leio-dl was asking me in #gentoo-dev why my image was so large, so I dug up a list of all the packages that is installed on the image, and here it is. 180 megs for an embedded image is actually really huge, but mine has a lot of stuff.
Edit #2: Er, just looked a bit closer. Main image is 97M, and then I have /lib in a SquashFS image which I think is about 40M, so it’d be closer to 130 total than 180.