Another good test for my body a couple of days ago came in the form of lying on the ground, screwdriver in hand, trying to reach some inaccessible screws on the MythTV box, so that I could extricate it from the jungle of leads in the living-room and perform open-heart surgery on it in the dining-room.
One of my PVR-350 tuner cards gave up the ghost just before Christmas. I suspected a software fault at first, even though I had made no configuration changes to the machine, because the card was still emitting a video signal. Only the sound was missing from any recordings made using the card.
I tried numerous configuration changes to get the card to work, but I couldn’t coax it back into making audible recordings. Either something in the machine had suffered a short-circuit, or the tuner card itself had gone to the great pile of hardware in the sky.
I didn’t want to open the box — extricating it from all of its leads and attached devices is quite a kerfuffle — so I concluded the card must be at fault and set about finding a replacement for it.
Hauppauge appears to no longer manufacture the PVR-350, so I resorted to Marktplaats, the Dutch equivalent to eBay, and was pleased to quickly be able to find one for sale in Amsterdam for the princely sum of €30.
It was nice to be on the right side of depreciating hardware for once. €30 for a TV card in great condition: you can’t say fairer than that.
I’d had to venture out and drive through the snow to buy the card, because I wanted to purchase it before my operation, not knowing how long it would otherwise be before I could go and pick it up. I didn’t want the bloke to sell it to someone else if I took too long over it.
I thus picked it up the day before the operation, but I decided that if I was going to be opening the machine anyway, I may as well make it really worth my while and stick some extra memory in it. Our MythTV box has operated on only 1 Gb of RAM since its creation, which isn’t a lot these days. It hasn’t been a problem in daily use, but sometimes the front-end process can grow very large and there have been occasions when I’ve wanted to run a couple of other things on the box, and it hasn’t really had the capacity for it.
So, I ordered a couple of gigs of extra RAM and waited for that to arrive, knowing that I’d probably be up and about again by the time the stuff arrived.
That turned out to be an accurate prediction, because the memory didn’t arrive until Wednesday, at which point I decided to flex the muscles that hadn’t seen a lot of use in the intervening week and set about upgrading the box after all of the other TV viewers in the house had gone to bed.
Sure enough, there was a blown capacitor on the bad PVR-350. It appeared to have a corroded top and I was surprised that the fault was so strikingly visible. I put in the replacement PVR-350, which featured a tuner chip of a slightly later revision than the one it was replacing, but I had queried this beforehand with the seller and then verified that the Linux ivtv driver also contained support for this version of the card.
This is one of the ongoing problems with hardware on Linux. A product like the PVR-350 may remain on sale for a number of years, but in that time it may undergo any number of minor hardware revisions. The packaging, however, will typically make no mention of this. And why would it? After all, the supplied CDROM containing Windows drivers has drivers for whichever card is in the box.
The problem is that the writers of Linux drivers typically have to do quite a bit of work to figure out how to make hardware work under Linux. This isn’t always the case, however, and things are certainly a lot better now than ten years ago, Many manufacturers provide their own Linux drivers these days, or detailed technical specs, but even then driver writers can be left with plenty of reverse engineering work.
So, when a card like the PVR-250 suddenly starts to ship with a Philips tuner instead of a Hitachi one, Windows users aren’t affected and don’t even notice, whereas a Linux user will often find that the card doesn’t work, even though it’s supposedly a supported device.
That’s because the developer of the Linux driver wrote the code according to the hardware that was current at the time. The user then has to patiently wait for the driver writer to catch up and add support for the new tuner, which could be trivial or could be a lot of work, especially if he doesn’t have access to the latest revision of the card. The user can also add support himself, of course, but for most users, that’s not an option.
In my case, both cards had tuners from the same manufacturer, but they were different revisions.
The defective card, as detected by the ivtv driver:
tveeprom 1-0050: Hauppauge model 48139, rev K257, serial# 8351216
tveeprom 1-0050: tuner model is Philips FM1216 ME MK3 (idx 57, type 38)
The replacement card:
tveeprom 1-0050: Hauppauge model 48139, rev K2B7, serial# 9994410
tveeprom 1-0050: tuner model is Philips FM1216ME MK5 (idx 117, type 38)
The old card is a MK3 version of the tuner, whereas the replacement card is newer, a MK5. That could have been enough for the card not to function, which is why I had to check with the seller what was written on the chip itself. That’s a lot harder to do with a new product, still boxed and wrapped in cellophane, which is why buying hardware for Linux can still be a pain.
Next, I cracked open the Kingston KVR400X64C3AK2/2G memory that I’d purchased and added two sticks of 1 Gb 400 Mhz PC3200 CL3 DDR to the existing two 512 Mb sticks.
I also took the opportunity to hoover out the case of the PC, which had once again sucked in an inordinate amount of dust since it had last been opened and cleaned.
Now came the least fun bit: lying on my back to reconnect all of the cables.
Once that was done and I’d turned the machine back on, it came up as hoped with 3 Gb RAM and, more importantly, the replacement TV tuner card was functioning perfectly.
Our MythTV back-end is now back to being a quad-tuner system.
The same day that I upgraded our DVR, I also installed some slightly faster RAM in our new NAS (CL5 instead of CL6, for those who might wonder). The difference in speed won’t be noticeable, but I had the chance to exchange the memory I’d originally installed, so I thought that I may as well.