Building a PVR

What is a PVR ?
after fitting bits It stands for Personal Video Recorder. It's a home built computer dedicated to recording media (television, music, radio, pictures etc). It will download the TV schedule from web sites, allow you to pick things to record or it might pick a few for you. It then turns the signals to digital and records them on disk. It should handle music, pictures and radio as well and might even record the weather for you. I've even seen them used as burglar alarms by storing web cam images of the room and looking for movement.

Why make it yourself ?
I'd never built a computer (though I design database applications for a living) so I thought it might be educational. I could of done it with windows MCE but that meant spending more and would probably mean needing to reboot every other week - it also wouldn't be so educational. I decided on Linux as it was free, I like Unix generally and there was lots of free software to do this type of thing such as MythTV or Freevo. I could also of just bought a TiVo unit or even just learnt how to use the video recorder but where's the fun in that ?

I found alot of info on building PVRs on the pvr guide site.

Ordering things
I order the following on 25 Oct 2004 mostly from Tekheads in the UK who were very helpfull :-
  • Case Asus Pundit R - 110
  • memory DDR 3200 512MB - 50
  • Hard Disk maxtor 120GB 8MB cache - 55
  • celeron type 478 2.4Ghz ? - 50
  • cheap PCI modem - 6
  • Pioneer DVR-108 16x DVD R/ RW - 4x Dual Layer - 55

Stealing things - 25 Oct 04
I managed to attack my sons computer while he was asleep - I felt like father christmas in reverse. It proved quite easy to remove items but I found the PC didn't recognise the remaining CD player when I turned it back on - Oh dear he's never going to talk to me again ! Luckily it was the drivers that were missing (why ???) but just putting in the OS disk seemed to reload them. Another curio was that the clock reset itself. The biggest issue was the gaping whole in the front of the machine which I filled rather artfully with cardboard.

Assembling things - 27 Oct 04
It felt like christmas with so many boxes being delivered. The Pundit case seemed very well designed but I had to read the manual twice before I dared starting to screw things together. My plan was to fit the processor first, then memory and then the larger items but things didn't arrive in that order and I was too impatient to wait for everything. The ribbon cables going to the DVD and hard disk were quite short but I managed to get it all plugged in. When the processor arrived I found it would definitely of been easier to remove the drives but I didn't fancy redoing the wiring. The old TV card I had was a full size card and barely fitted. Luckily the newer modem card was far smaller and was no problem.

Good points :-

  • Good looking & functional design
  • Very solid - my sons should be able to play football next to it
  • Allows 2 PCI cards
  • Quiet - almost silent

Things to improve :-

  • SPDIF audio out on the front - it should be at the back
  • The ATI motherboard has little support by linux (due to ATI)

Computer memories
inside asus pundit case Interestingly the last bit of hardware I'd fitted myself was a 6K ram chip into an Acorn Atom micro computer over 20 years ago - now here I was fitting a 512MB RAM unit (100,000 times more capacity) - how things change ! It's also interesting to note that there are now 7 computers in the house (the Atom, a Sinclair Spectrum, a palm pilot, 2 PC's, an ancient laptop - I thought about using this for the project but it doesn't have a CD drive as they hadn't been invented then and the "M" key doesn't work) - I might try installing knoppix onto it over a network but thats for the future. Now the most powerfull computer in the house is destined to become a glorified video recorder !

BIOS - 28 Oct 04
I connected the screen and keyboard from my PC and it booted into BIOS. I had a beer in celebration and had a play with the BIOS as that was all I could do. The BIOS seems much easier to "use" than my other machines but I didn't seem to need to alter anything. It was also amazingly quiet which is a good thing as its destined for the lounge.

Loading an operating system - knoppix 3.4 - 29 Oct 04
I'm planning on using knoppix to initialy play with the system. This is a Linux system that doesn't affect the computer in any way or even touch the hard disk (though installing to hard disk is an option). I've tried it on my windows machine and was very impressed. It's also free !

I had a few problems (or learning oportunities as I'm now calling them) :-

  • System wouldn't boot of the disk I'd created - didn't save as iso image on CD
  • Hard disk appeared as a secondary device - jumper settings on HD and CD
  • Knoppix saying problems with dma - fixed by making hard disk primary
  • Keyboard layout odd - k menu - control - region & access - keyboard -> set to english and ms keyboard.
  • No sound - certain to be due to driver issues with ATI card
  • Doesn't recognise modem - certain to be due to driver issues with ATI card

Knoppix seems to be working fine offering a full linux OS with a nice graphical interface. I tried installing it to the hard disk with a command called knoppix-installer and everything went smoothly but still no sound etc. I think I'll try the mythTV install and see if that does better.

MythTV - 4 Nov 04
I used a simple installer called knoppMyth which comes as another iso image of 550MB and is available for free over the internet but seeing as I only have a modem I was stuffed. Luckily a mate at work did it on broadband for me. Installing the software was moderately straightforward but I did seem to need to partition the hard disk and then the first thing the install does is create it's own partitions. I was asked whether to use the i586 or i686 code ??? I randomly chose i586 but later found out that for PII processors and above I should use i686 - I'll reload thing tomorrow.

The install went fine and I had a pint of beer to celebrate. The screens looked great but I soon realised it didn't recognise the DVD, the TV card or the modem and was also complaining about a missing backend. It appears I have a blind media player ! Again it all seems to be down to drivers etc. I do have a motherboard driver CD from Asus but they all seem to be for Windows - a bit annoying really. I guess I'm going to have to get the sound etc working first and then install mythTV over the top.

Watching TV - 15 Nov 04
I finally managed to get TV to appear on screen - I felt like Logi Baird ! Problem is using an old TV card and a small portable arial means I can only find channel 5 and even then the picture quality is poor. I used scantv to find the channel and xawtv to play it. Still no sound but I suspect I'll need to run a wire from the TV card to the sound input to hear anything and that's after I get the drivers working.

Windows XP install - 21 Nov 04
I used my XP install disk to see whether the sound and modem work in windows. I installed it into a 30 GB partition and then installed the Asus motherboard driver disk and service pack 2. Needless to say it all worked fine so I figured lets get flash and have 2 OS on same machine and tried to install knoppix on another partition on the disk but I figured I did something wrong. Now nothing would work and I'm greeted by a blank screen. I can get in with the knoppix CD but it won't let me delete the partitions using qtparted. Eeek. Turned out I just needed to unmount the partitions first but I did try fdisk and cfdisk first.

Knoppix 3.6 hard disk install - 23 Nov 04
I ordered a Knoppix 3.6 CD from a linux site for about 2 and it arrived in a few days. I'd hoped it would solve the sound issues (it didn't) but things are looking better. My current method of installing knoppix is :-
  • knoppix26 pnpbios=off lang=us alsa wheelmouse

This uses the latest version of the kernal. This inn turn causes set up errors in the bios which I then switch off. The alsa option is a vain attempt to get sound working and indeed its now getting closer to recognising everything. The lang=us should make the keyboard work but I need to then set the keyboard to english and microsoft internet keyboard (perhaps theres a lang=en option). I had more joy with the modem in that it accepted that I had one but it still wouldn't communicate. I then installed it all to the hard disk with knoppix-installer.

Wiring
Having 2 PC's and one mouse, keyboard and screen leads to a lot of wiring and a lot of playing with wires. I have ordered a KVM switch which will avoid having to move wires about when I switch from the Linux machine to the windows machine. This still means I'll have to swap the modem wire and 3 sound card wires.

I've linked the 2 PC's with a cross over cable but so far have haven't pursued networking the two together. I guess when I get the KVM switch then I'll try it. It might be usefull if I can't get the modem to work on board. The switch arrived a few days back and works very well

  • Belkin OmniCube 2-Port KVM Switch with Built-In Cabling 24.27

I might get a USB wireless card and see if I can just attach to any local network using kismet or netstumbler. I'm not sure how easy this is to do though it would provide cheap broadband access ! The other option is to get broadband myself but of course I'll have to get a wireless router and pay the monthly charge.

Sound problems
The big problem so far has been lack of sound. I sat down last night and went through all the possibilities (a long night) and finally succeeded ! I tried removing the cheat codes at start up and seeing which ones had what effect.
  • knoppix26 which needs to be there else it doesn't recognise /dev/dsp
  • pnpbios=off which stops the bios errors on startup when using knoppix26

I also tried the alsa and alsa=intel-8x0 cheats but these seemed to produce less sound entries when running the lsmod command so I left them out.

I now needed to enable the sound on the screen in :-

  • K menu->control center->sound and ...->sound system

I now needed to raise the volume in the two mixers so as root I ran

  • aumix
  • kmix

In the sound system menu you can save the volumes and set it so it uses these volumes on startup. There is also a button there to test the sound but I just ran the following command as root :-

  • play /usr/share/sounds/startup.ogg

My current issue was it didn't play sounds after doing all this via a hard disk install but I guess I have a few things to check ie :-

  • does it play sound as normal user or do I need to be in some audio group ?
  • is it starting knoppix with the cheat codes requested (see dmesg)?
  • is kmix and aumix enabled on startup with correct volumes ?
  • will it play dvd's, CD's, mp3's and the TV with sound ?

All of this does raise a few questions generally on sounds in linux :-

  • why is sound disabled by default ?
  • why have two mixers and not one ?
  • why are volumes set to zero by default ?
  • why not allways load the current volumes ?
  • why do users have to be part of a group to hear sounds ?

Why doesn't the hard disk instal leave you with the system you were using from the CD ?

knoppix26 pnpbios=off lang=us wheelmouse

Current state of play
I'm not wildly impressed with the whole Linux set up to be honest. I'm quite capable of shell programming etc and this should mean I could do what I liked on my own individually set up hardware. What actually happened is I'm ammazed by how difficult it is to get common hardware working in Linux (it's all plug and play in windows) and I'm full of respect for Unix admins who normally get this stuff working.

A simple list of currently insurmountable problems is : sound not working under myth, modem not recognised, on board net card won't work without kernal rebuild, wifi not supported until kernal rebuild, TV card not recognised, permissions - don't talk to me about permissions.

What has worked is the schedule information has been loaded in by hand and came up fine, news and weather are loaded each day fine.

Why don't they just ...
Why can't they get the initial software just to try and recognise any internet connection and then pass all the hardware information for the PC to some central database. A web page could ask the user what options they need.

The system could then decide which drivers and software you need. If there are a number of different drivers for the same hardware codes then try each in turn to get it to work before moving to the next item. The web page could store your details (and comments) for future reference so others (who might live in the same city) could download your frequency settings etc.

I'm sure with a little thought a system could be built which could help configure any system, not just myth.

There really shouldn't ever be kernel rebuilds unless it can be done automatically. The overall goal should be to help the user get to a fully working system quickly without having to become a linux admin guru - believe it or not some of us just want to use the software rather than reprogram the Linux OS.

It's a major stumbling block to the usage of an OS if the level of skill required to install a program is beyond an average citizen.

Given up !