I have much geek-joy this morning. Yesterday was a banner day in playing with all the little toys I have, and building up some new ones. Without boring you all to smithereens going on about details in my Java / XML project, lets go with a few things that are slightly more tactile. Gaming, Cons, CD’s, and wafts of fresh air.
I have to admit, there are times when having an enabling partner brings unexpected benefits.
In this case, my wife happens to work for Bose as a project manager, and as such as access to their employee discounts and specials. Because of her signing bonus, we have a lovely Bose Lifestyle 48 soundsystem to complement the Big TV. I would never have the money to be able to afford such an extravagant system, but it’s hard to argue with the discount.
Tonight I added some more pieces to the mix. We got some new speaker stands for the satellite speakers, and rewired the MythTV box a bit. The new stands look great!
Next step will be to use the new video switcher on the LS48 to route video and audio all via the Bose box. That’ll require ducking into the nest O wires behind the display. Something I’m really not looking forward to. :-/
One thing I am toying with though is calling up Comcast and upgrading our cable tuner to HDTV. The whole “we’ll stretch 4:3 to fit on an HD form factor” thing is getting wearing. Unfortunately, I’m guessing that Comcast is not providing boxes with enabled Firewire ports, so the usefulness of my MythTV tuner card is dropping daily. Damned corporations.
On the plus side, though, Ben has successfully aquired the HDTV cable for the Gamecube, so we’ll be enjoying true 480p signal shortly from that little puppy. Mmm, SSX3 in full glory.
Last night the a-forementioned movie night was had at Chez Geek. This was my first real chance to show off the new monitor setup. We chose Chronicles of Narnia for presentation – so the kids could attend, and the grownups would have something to enjoy as well.
It’s been a while since I last posted about the ongoing MythTV project here at Chez Geek. For the most part it’s been quiet. After coming back from Ubercon, where the box was very well received, I sort of parked it on the side and didn’t touch it for a few weeks.
This week, things have gotten busy again.
After a week of whining about things broken and whys, this has been a day or two of resolution and fixing, so lets put some positive things down on the Geekscale…
The MythTV box has been resurrected. Thanks to the joy that is KnoppMyth, and the foresight to put all my ‘file storage’ (music, movies, games, etc) on secondary drives, I was able to rip out the blown drive and drop in a spare 20gigger, and have it up and running in no time.
Oh, and half a terabyte of storage? Kicks.
dbs@deathstar:~$ df -h Filesystem Size Used Avail Use% Mounted on /dev/hda1 17G 2.3G 14G 15% / /dev/hdb1 233G 137G 85G 62% /myth /dev/hdd 230G 198G 21G 91% /myth2
Thanks to Barb’s help, the WinXP box has been rebuilt. Or reinstalled. or something. We waved an XP installer CD at it, and said “Thou shalt rebuild yon self!” – naturally, this didn’t even come close to ‘just plain working’. There’s a whole nother series of rants on the idiocy that is the WindowsXP operating system – suffice to say, at one point I had to boot said KnoppMyth CD on the Windows box _JUST_ to find out what sort of video board I had via lspci. Cuz. Ya know. Windows cant’ just TELL you. That would be… uh. Something.
So, that problem with the ‘Array out of bounds’? Turns out that WTP doesn’t like if you’ve not defined any servers for deployment, and the WebServices WSDL builder gets really ticked off without any targets at all. That was easily fixed. Alas, my workspace (Eclipses’ term for where you do configuration, have projects checked out, etc), finally got too confusing to debug, so we’re trashing and starting over. Fortunately, everything is in Subversion, so there’s really nothing lost. Folks on the Eclipse support channel have been great.
All in all, not too shabby. I can almost feel my productivity coming back to normal! Now, hm, I wonder how my Eve character is doing…
Sidenote – when I was but a young geek, I regularly read Steve Ciarcia’s ‘Circuit Cellar‘ in Byte magazine. Every month he’d talk about all the cool projects he had around the house – stuff he was building, things that worked, things that didn’t. I thought it was one of the coolest lifestyles around. I suspect I’m slowly, inexorably, following in his footsteps. Cept he was a better writer. 🙂
Friendzzzz, open our K&R to page 32, psalm 12. Today we shall recite from the Book of Why, wherein all manner of faults in life are exposed for cleansing…
Let us begin…
- Why… did my MythTV primary volume kick the bucket just at the point where I’m ready to start working on some code to interract with it? We thank the powers at Maxtor for not taking the half a terabyte of other storage with it during it’s death throws. Amen.
- Why… does the Linux kernel decide to number ethernet ports, particularly wireless ethernet ports, in a totally arbitrary way? Booting up may provide us with the mysteries of eth1, or perhaps today it’s eth2, or even something like eth1_someoddtext. Amen.
- Why… is the Eclipse WTP project, such an awesomely wonderful and fantastic environment, be occasionally revealing itself as ‘not -quite- 100% stable’, particularly when I’m in the middle of convincing a client to use it? Amen.
- Why… does the Bluetooth stack on the Treo 650 suck so bad? Simple requests for OBEX services cause the phone to crash and reboot. Connections to it are spotty at best, and it offers NO services up to a remote requestor. Makes it very hard to say “Please get my photos off my phone.” It is safe to note that almost every other Bluetooth phone on the market today at least provides a Bluetooth FTP service. The Treo doesn’t even have decency to say “no services”, it simply drops the connection. Amen, dammit.
- Why… is there no easy way to hit the Tab key in Firefox in a textarea, and have it generate a Tab? Amen.
We shall ponder these life puzzles as we ommm around the coffeemaker and await enlightenment via it’s gurgly goodness.
This weekend saw some serious exercise on the Myth box. Because of a fairly major snowstorm, we spent a fair amount of time indoors, trying not to get on top of each other and stave off cabin fever. The Myth box came in very handy as (at least in Ben’s case), it was the instrument of recall to his Super Bomberman days. This game, ancient though it is (the SNES version we’re running is 12+ years old), is still outstanding.
What really made it tasty was we got 3 joysticks + the keyboard working on the box. Two of the sticks are the Thrustmaster gamepads I mentioned earlier, one was a Logitech Rumblepad I had frankly forgotten I owned. These all come up on the USB bus under linux as /dev/js0 through /dev/js2 respectively. More on this shortly.
The game ran perfectly via the ZSNES emulator managed from the Myth front end. With 3 adults and 1 7 year old playing, it was quite the bit of fun.
But of course, there has to be at least one hassle. The USB hookup I’m using has a tendency to reset for no reason. We’re not sure if this is the hub, or the cabling, or the connectors, or what. The issue is, when it resets, the joysticks tend to be renumbered. If I’m running /dev/js0 and /dev/js1 gamepads, and the hub resets (from just moving around on the couch or the like), BING, those joysticks are now /dev/js2 and /dev/js3. Nice that it resets and reloads, not so nice in that now the main joystick I use for selecting games and controlling the Myth box is unavailable. I could use some input (so to speak) on this problem. Linux geeks may have suggestions on how to better control the dynamic device assignment in the USB system. Its workable when you have unique devices (Camera goes to /dev/camera, etc etc), but when you have multiples of the -same- device (say, 4 gamepads), I’m not sure if it’s possible.
The other good toy added recently was a wireless keyboard and mouse courtesy of woot.com. This has helped a lot as it’ll allow us to push the box back under the shelving by the TV (the keyboard cable was VERY annoying to deal with). Next will be a USB extension cable to bring the joysticks nearer the players.
All in all, I continue to be fascinated with this machine and all it represents.
I’ve been struggling with the concept of a ‘controller’ for the whole project. It’s easy to think of the Myth box is just like another audio/video component – something that sits in the rack, and you switch / control it via a remote to do, well, audio/video stuff. Watch TV, listen to music, record things.
But really, the machine is an entertainment center. A conglomeration of all that is ‘fun’ on a modern computer. It plays music from a library I configure and update. It is infinately expandable with low-cost off the shelf hardware. It plays games. It integrates with television and cable. It runs Linux. In it’s spare time, it processes Seti@Home data (NB: Not a function of MythTV :).
So given the system’s sort of multifaceted position in the ‘home entertainment’ circle, what’s really the best way to interract with it? It’s not a ‘computer’ in the sense that you’d sit in front of it and type all the time, so a traditional keyboard isn’t really appropriate. On the other hand, there are times when you do need to interract with the system in more detail… searching for music, updating configurations, even websurfing… where a keyboard is really needed. But for the most part, just something that does up/down/left/right, go, and cancel is sufficient.
I also use my Myth box for gaming via XMame and snes9x, two outstanding ‘classic’ emulators (I know of several folks who have a dozen or more emulators configured into their system(s)). This necessitates having a joystick or two connected up pretty much full time. At the moment I’m using a pair of ‘Thrustmaster‘ gamepads (CompUSA, $9 each) hooked up via USB. They work like a champ, and we can play multiplayer games without a problem (aside from jostling the USB hub, which tends to force the USB bus to reset, which may renumber the joystick devices when it re-inits a second or so later – oops, /dev/js0 and /dev/js1 are no longer your joysticks. They’re not /dev/js2 and /dev/js3. Eee!). My problem has been that the various emulators require interaction with MythTV to start or select games, currently handled by my keyboard, then we jump back to the joystick to play the game.
MythTV has already addressed this problem. The MythTV distribution comes with a joystick configuration file called “joystickmenurc.example”. Copying this file into ~mythtv/.mythtv/ (or wherever your root is for your myth user) and restarting the myth front end enables joystick navigation in the Myth menu system. After setting this up last night, I can tell you it changes the whole tv viewing experience. There’s something about controlling your television via a game controller that just tickles me. I can pause viewing (which starts Myth spooling up the current show into the ring buffer), skip forward or back, change channels, as well as navigate the myth menus. I’d like to add some other button triggers to the joystick definition file, but for now, this is a major win.
I think in the end, for my particular setup, I’ll end up with a wireless ‘gamepad’ controller with a bit more functionality than the Thrustmaster simple gamepads. That will fill the need for a ‘remote’ for controlling the tv, a game controller for playing games, and remove some of the need for a wireless keyboard.
Well, this weekend saw a bunch of advances on the project. The biggest was figuring out, much to my chagrine, that my Toshiba television did in fact have an S-Video input on it. Doh! I patched that puppy in tout de suite, and got an immediate full color image up on the screen. Hooray!
With that cable patch, we were pretty much set. Movies, live tv, dvd’s, music, etc – all were working properly. We even stopped having the lockup problem on MythMusic when going to full screen visualization.
We’re not 100% there yet. XMame is acting unusually twitchy when it comes to screen resolution. Some resolutions work okay on the external monitor, some do not. I can tweak the xmamerc and get SOME of the games working, but others will stop functioning all together and bomb out on startup.
I think I’m getting closer and closer to the time where I’ll need to do a Myth build from scratch on the box, building the code from source (rather than use Knoppmyth). There’s too many problems with the Knoppmyth distribution that I cannot repair without an upgrade (like broken MythGame sorting, MythWeb upgrades, etc).
But for now, I have a stable, useable box.
I had chalked this weekend to put in some work on the MythTV Project. As of mid-day Saturday, it’s been a mixed bag of results.
I received my replacement MX4000 AGP card from Newegg right as scheduled, and proceeded to install it into my system. The problem happened when I tried to remove the old card which had gotten pretty badly wedged into the slot. I believe I ended up cracking the slot (an AGP card is a ‘double-depth’ card, which means it goes pretty far into the motherboard). I installed the new MX4000 card, and apparently didn’t quite get it in place properly, because after 5 minutes of use, I was getting noise on the screen and corrupted video. No amount of swapping, reseating, fiddling, or whatever has solved the problem, so I’m RMAing the card back to Newegg, and trying a new one. Alas, I’ve had to go back to my old nVidia card in the meantime.
On the good side, I did some more work with MythGame the plugin for MythTV that acts as a front end to XMame, a wonderful arcade emulator. After populating the machine with the ROMS I had (all legally, natch), it took some noodling to get MythGame and XMame to configure properly. I’ve narrowed down a lot of the problems to the fact that the KnoppMyth folks rolled a ‘mid-development’ version of Myth out with their last ISO image, so many things are only half completed. I won’t be able to use the new ROM SQL database stuff yet, but ‘big browsing’ (using just filenames) -is- working.
I also picked up a pair of Thrustmaster (yes, thats really the name) USB joysticks from CompUSA ($9 each. Cmon), and Debian Linux picked them up automatically. I had to tell XMame to use the joystick (putting ‘joytype 1’ in /etc/xmame/xmamerc), as well as some other minor tunings (always run fullscreen, here’s where the rom dir is, etc etc), but after that it’s been working great. I have to decide whether the handheld controllers would be best, or if something like an X-Gaming controller is needed. However, in the time it’s taken to write this article, my friend and my wife and my son are now gathered around said system playing Gauntlet II on the handheld controllers. That may have answered my question for me.
Minor update – Something is amiss in my USB setup. The joysticks have a tendency to disappear off the bus and not reinitialize. A hard reboot seems to fix it, but not exactly an optimal situation. Stay tuned.
“Wizard is about to die!”. Ahhh.
Here’s a quick update to my project to build and run a MythTV box.
Today saw what is most likely the last bits of setup on the disk storage. Thanks to a fortuitous woot at woot.com, the main drive is now a 250gig WDC ATA drive. That, coupled with the 40gig drive we originally isntalled on, and a ‘portable’ 160gig external drive, brings us to the awe-inspiring:
Filesystem Size Used Avail Use% Mounted on /dev/hda1 2.6G 2.0G 459M 82% / /dev/hda3 4.1G 24K 4.1G 1% /cache /dev/hdb1 233G 18G 204G 8% /myth /dev/sda1 147G 43G 97G 31% /external /dev/hda4 31G 33M 31G 1% /backups
It’s not quite half a terabyte. But it’s getting mighty close. And I remember the GLEE I had back in the day when I first got 2 hard drives working in my very own PC. 2 20 MEG (that’s megabyte) Seagate ST225 drives. I spent time just copying data from one to the other, just to see how fast it was.
This machine has over 10,000x the disk space of that old PC.
(I won’t mention the 1300x the amount of memory, and some absurd performance factor between a 8mghz V20-based PC and an AMD Athlon 1400.)
Special thanks, by the way, to Ben for doing a lot of the maintenance work on this box. I know he’s got some self-interest in seeing it all work, but he’s the one who finally installed the Big Drive, and got it configured properly, as well as the networking work that was required for remote access.
“It’s really unstable”
“It’s painful to set up”
“Good luck with all the yak-shaving!”
Poppycock! I come to you happily reporting on the successful installation, configuration, and implementation of MythTV.
For those not in the know, MythTV is an opensource (aka Free) system that mimics much of the behaviour normally attributed to a Tivo. At it’s very root, it is a Linux-based Personal Video Recorder (or PVR) that allows cable (and DVD and other mediums) to be stored, displayed, and manipulated in realtime, effectively turning an ordinary PC into a home video component.emotes.
Alas, MythTV has a long history of being INCREDIBLY complicated to get running. Starting with a baseline Linux install, people have talked of months of twiddling network drivers, card configurations, database problems, and video drivers all to get the system into perfect ‘balance’, at which point the system would work fine, but the process would ultimately leave a bad taste in the mouth of the implementor. Hardly a glowing recommendation.
Recently though, some bright folks have built up KnoppMyth, a MythTV installation wrapped into the well-known cd-based distribution, Knoppix. Knoppmyth allows you to go from a powered off ‘blank’ machine to the MythTV main menu – system installed, configured, and drivers ready to be enabled, in less than 10 minutes.
It wasn’t without a few hiccups – mostly due to the smoothness of the installation, it was easy to try and go right into viewing online video without actually configuring the image capture boards. The system has an enormous array of configuration options which can easily baffle a newcomer, but in the end I was happily watching Comcast cable on my VGA monitor, and able to tune around the entire spectrum, complete with on screen programming guide.
For reference, here’s my configuration:
- Athlon 1400
- 512 meg RAM
- 80gig ATA-100 drive
- Hauppage PVR-150 video encoder card
- nVidia NV3 video
I’ll be exploring this system more over the next week or two, but so far, I’m exceptionally impressed with what the KnoppMyth folks have done in bringing a previously complex and potentially painful installation into something mere mortals can attempt.