Wednesday, August 27, 2008

Pinnacle 801e support for those who can't wait for the merge

Update (11-08-2008): Please DO NOT FOLLOW THE STEPS HERE. The changes have been merged into the v4l-dvb codebase (including the fix for the thermal bug). Please go to this site for updated instructions:

http://www.linuxtv.org/wiki/index.php/Pinnacle_PCTV_HD_Pro_Stick_(801e)

Thanks,

Devin
====

I got a couple of comments from people who would like to try out the new Pinnacle PCTV HD 801e support. The changes basically fall into two categories:

* Fixes for the dib0700 i2c code so the xc5000 works
* A device profile for the Pinnacle 801e

The dib0700 i2c fixes affect all devices, so a patch providing these fixes has been sent out for review. Because we don't want to break any existing devices, we couldn't just check it all in. Once those are verified by other maintainers, the plan is to then check in the 801e support.

For those of you who "just want it to work and don't want to wait" for it to be merged, you can get your device to work by downloading the following patch and applying it to the latest v4l-dvb hg.

Here's what you have to do. This assumes you have at some point you have built the v4l-dvb codebase and are confident that you have the kernel headers installed and the other v4l-dvb build prerequisites have been met.

hg clone http://linuxtv.org/hg/v4l-dvb
cd v4l-dvb
wget http://devinheitmueller.com/801e/pinnacle_801e_support.patch
patch -p1 < pinnacle_801e_support.patch
make
wget http://devinheitmueller.com/801e/dvb-usb-dib0700-1.20.fw
wget http://www.steventoth.net/linux/xc5000/HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip
wget http://www.steventoth.net/linux/xc5000/extract.sh
sh extract.sh
make install
cp dvb-fe-xc5000-1.1.fw /lib/firmware
cp dvb-usb-dib0700-1.20.fw /lib/firmware

Then reboot. These instructions were tested on Ubuntu 8.04, building as root. If you're not comfortable with that, run the last three commands with "sudo" in front of them.

If the above steps look too complicated, wait a week or two and it will hopefully be in the main repository by then.

Now for the disclaimers:

  • No guarantees or warranties that the code will work
  • Don't hold me responsible if your PC, Pinnacle tuner, our house catch on fire.
  • This is not a final patch, and the i2c code in particular could potentially interfere with other dib0700 devices (if you have any)
  • There is no analog support yet.
  • Tuning is a little slower than I would like (less than one second but still...). I'm working on this.

Have fun. If you have problems, feel free to comment on this post.

Also, I would be interested to know if the Pinnacle PCTV USB that is not the "Pro" edition also has an 801e USB ID (since I'm using the "Pro"). If any of you have one, let me know.