Anyone who’s talked with me for the last two months knows I’ve been fighting a (loosing) battle with my MythTV box. The box became extremely unstable, crashing, corrupting my drives, and generally driving me crazy. If I tried streaming 3-4 previous recordings to other computers in the house, everything was fine. The second I tried to add a LiveTV feed to the mix, the box would lock hard. When only watching Live TV, I would get about 1-2 hours max before the box would die on me. Every time it crashed, I would have to reboot and cross my fingers to see how much data on my XFS LVM drives I lost. (A lot over the course of debugging everything).
After tracing through some logs I discovered that my 200 GB Seagate drives were throwing DMA errors, reverting to PIO, and then simply crapping out. I love my Seagate drives though, and have never had any trouble with them. After extensive testing, I concluded they weren’t the problem. They are, however, over 137 GB, requiring a newer 48-Bit addressing card, which the onboard IDE for my motherboard does not do, so I had purchased a Promise ATA133 card.
After extensive Googling, I discovered that Seagate and Promise don’t get along in UDMA-5, and I have to revert to UDMA-4. Slight kick in the nuts to speed, but if it makes it stable, I’ll do it.
That didn’t work.
PIO only? Nope. Still hard locking. Promise and Seagate get along just fine.
I tried several kernels, most custom built with all the drivers I needed (and some with only the drivers). I wasn’t sharing any IRQs. Still, the damn thing hard locked whenever I tried watching live TV, but with the drives throwing the DMA errors.
I decided to save any data I could, burning 178GB+ onto DVD, and clean formatting everything. The root, and both Seagate LVM drives.
I switched to (X)ubunutu since it was recommended by every one, and you aren’t cool unless you use Ubuntu. I’m not a distro fanboy, and Ubuntu didn’t fix anything for me (sorry, no “Ubuntu Saves MythTV Box and Drowning Baby at the same time!” headline for /. or Digg). Ubuntu did, however, take me about 40 times longer to get everything up and running compared to KnoppMyth, the distro I was using.
Well, Ubuntu did not save my box. It still hard locked. I then removed the Seagate drives and Promise controller, using only a second 30GB drive I had laying around in one config, and only the 10GB root drive in another. Both setups still hard locked. It was never my drives (I knew it wasn’t so Seagate) but the PVR-250 capture card. Peeking back through the logs, the TV card would throw the first DMA error, and that would cause all of my hardware (network card, hard drives, sound card) to follow suit. It was like digital dominos.
I begin pondering the notion that I simply have a hardware problem that I may never fix: the TV card and the motherboard do not get along. Considering I have all sorts of crappy PCs laying around the house that Alicia wants me to use or get rid of, I consider turning it into a frontend / backend configuration, but that would require me to buy extra hardware that I don’t want to do.
I power it down and leave everything for about a week. This bloody machine had taken control of my life when it was dying and I need to step away.
Fast-forward.
I was looking into new Motherboards, trying to see what options would work best for a new setup. I wanted ethernet, digital audio out, and compatible with my old proc so I didn’t have to eat that cost too. So, I went to Asus’ page and looked up the exact specs for my P4B266 mobo when I notice the BIOS updates. What the hell, if I’m going to replace it anyway, let’s see what they have. If it prevents it from booting, I’m not out anything. After Dave killed his Shuttle PC by updating the BIOS I had been wary, but now I have nothing to loose.
The change logs don’t have anything regarding PCI, DMA, etc. but I do notice the update adds 48-Bit addressing to the onboard IDE. Excellent, if it works, I won’t need the Promise card. Once I figure out how the hell to flash a BIOS, and get a floppy disk (Nick is the only person who still has one of these things, and I hadn’t the heart to tell him the disk couldn’t be read) I zap the BIOS forward 9 revisions (original 1002 to 1011.003), reboot the machine, start up Myth, and watch LiveTV.
Nine hours later, it’s still playing Live TV like a champ. The old config (pre Promise and Seagate that Dave and I thought was so stable) would always lock up over night if someone left it on LiveTV. I used to think it was the /cache ring buffer filling up and Myth not being to handle it. The new LiveTV setup (basically record into a tvbuf directory and set it to expire) wouldn’t have this problem, but it still crashed. The BIOS update has fixed my problems; I can finally relax and put this thing back into use. What really annoys me though, is when I wanted to add my 200GB drives (I’ve had two laying around not being used since we built it) if I had seen the BIOS update, everything would have been fine. The box would have always worked well.
You live and learn.
I’ve had the change to make some changes to the setup now, and I’ve learned from my mistakes. I have many more partitions (/myth, /myth/tv and /myth/video) to hopefully reduce loosing too much data in the future. I’ve also switched to JFS from XFS, since it Journals more than just metadata, and I trust the competency of IBM more than SGI. Once I saw the 2.6.1{7,8} kernel added an XFS bug that would eat everything, the choice was obvious.
For a Mac user since age 6, I have not seen what the other side has been going through. What the hell is wrong with you people?
In the end though, I have my MythTV box back, which I love, and it has a new name: Warai Otoko, Laughing Man.