Turn your Kuro into a Digital Video Recorder/Player
Although I have had my iPod Video for about 9 months I seldom watch video on it. I just can't bring myself to pay $2 for an episode of futurama when it is on TV every night. This month I will be installing a Hauppage WinTV-PVRUSB2 capture device on my Kuro and configuring it to automatically record shows and save them in my media directory so I can watch them at a later time with my Buffalo LinkTheater. Since I also have an iPod, as an aded bonus, we'll make the Kuro convert the video captures to the format my iPod uses for viewing on my iPod Video.
The WinTV-PVRUSB2 comes with a remote control, so I'll be configuring the remote to work with my MP3 player, adding the standard set of controls to the MP3 player that are normally seen on a stereo system. I'll also be adding any other functionality that comes to mind as I work through this project.
Build a custom kernel
The first step is to build a 2.6.18-rc3 kernel with V4L and PVRUSB2 support. Also required is the standard kernel support for the USB system. Once that is complete the firmware for the WinTV-PVRUSB2 needs to be extracted from the original windows driver. There were two (or three depending on the particular version) firmware files that needed to be extracted. Luckiny there is a script here that will automatically extract the firmware. The firmware needs to be copied into /lib/firmware. From there it will be loaded into the hardware on boot. In order to get the firmware to load you will need to emerge hotplug, coldplug, and add coldplug to the default runlevel. It goes without saying (although I'm saying it anyway) that udev is also required, of course, your 2.6 kernel will not boot without udev. Once that is done you should see something like the following in your dmesg:
usb 1-1: new high speed USB device using ehci_hcd and address 5 usb 1-1: configuration #1 chosen from 1 choice usb 1-1: reset high speed USB device using ehci_hcd and address 5 rs5c372_get_datetime(), i2c_transfer() returned -5 rs5c372_get_rtc_time:Command returned -5 msp3400 1-0040: MSP3445G-B8 found @ 0x80 (pvrusb2_a) msp3400 1-0040: MSP3445G-B8 supports radio, mode is autodetect and autoselect tuner 1-0043: chip found @ 0x86 (pvrusb2_a) tda9887 1-0043: tda988[5/6/7] found @ 0x43 (tuner) tuner 1-0061: chip found @ 0xc2 (pvrusb2_a) saa7115 1-0021: saa7115 found @ 0x42 (pvrusb2_a) tveeprom 1-0050: Hauppauge model 29032, rev D158, serial# 7429455 tveeprom 1-0050: tuner model is Philips FM1236 MK3 (idx 58, type 43) tveeprom 1-0050: TV standards NTSC(M) (eeprom 0x08) tveeprom 1-0050: audio processor is MSP3445 (idx 12) tveeprom 1-0050: decoder processor is SAA7115 (idx 19) tveeprom 1-0050: has radio, has IR remote tuner 1-0061: type set to 43 (Philips NTSC MK3 (FM1236MK3 or FM1236/F)) msp3400 1-0040: MSP3445G-B8 rev1 = 0x0207 rev2 = 0x2d48 msp3400 1-0040: Audio: volume 65535 msp3400 1-0040: Audio: balance 0 bass 0 treble 0 loudness off msp3400 1-0040: Standard: autodetect start (mono) msp3400 1-0040: Audmode: 0x0001 msp3400 1-0040: Routing: 0x00000000 (input) 0x00000044 (output) msp3400 1-0040: ACB: 0x0c00 tda9887 1-0043: Data bytes: b=0x14 c=0x30 e=0x44 tuner 1-0061: Tuner mode: analog TV tuner 1-0061: Frequency: 175.25 MHz tuner 1-0061: Standard: 0x00000100 saa7115 1-0021: Audio frequency: 44100 Hz saa7115 1-0021: Input: Composite 4 saa7115 1-0021: Video signal: bad saa7115 1-0021: Frequency: 50 Hz saa7115 1-0021: Detected format: BW/No color pvrusb2: Device initialization completed successfully. pvrusb2: registered device video0 [mpeg]
A quick trip to the side of the house to connect the cable wire in my office to the splitter and the device is ready to go:
(Insert correct dmesg)
Now that the kernel and hawdware part is working it is time to work on the software part of this project.
The first application to install is qt. It contains qmake which is required to configure MythTV so lets emerge it.
We also want to use the remote control that came with the WinTV-PVRUSB2 so we'll need lirc.