Thursday, October 23, 2008

Hauppauge Win-TV-HVR-950Q Works With Ubuntu Hardy on Mac Mini G4

I have had a very robust MythTV setup since spring 2005 using a Hauppauge WinTV-PVR-150 Media Center edition. Given the impending conversion to ATSC digital TV in February 2009, I ordered a Hauppauge WinTV-HVR-950Q external USB digital TV capture device.

Meanwhile, to reduce noise, heat, and power consumption, I am also switching from an i386-based workstation/server to an almost silent Mac Mini PowerPC G4 1.25 GHz running Ubuntu Hardy server with the lightweight Xubuntu desktop.

Today, I received the 950Q and was able to install it on the Mini without any trouble following Scott Bronson's detailed instructions to the letter. Thanks, Scott, for providing these wonderful, accurate instructions!

The Mini is too slow to play live video without mplayer's -framedrop option, but it is mostly a server anyway. The next step is to configure MythTV to record from the 950Q...no problem.

Meanwhile, I have upgraded all my systems to Jaunty, where the device is supported out of the box once you copy the firmware to /lib/firmware. Please see my recent comment for more details.

20 comments:

Ron S said...

I notice your comment about not being able to play live video without framedrop... is this just regular MPEG-2 you're playing back? Positive you have hardware acceleration for that? I've used a PIII/133 for playback of recorded TV at high bitrates without problems using an old nvidia card.

Konstantin said...

I am referring to live video that mplayer plays directly from the digital tuner device. The image size is 1920x1080. That might have something to do with it. The video card is supposed to be an ATI Radeon 9200.

Ron S said...

Doh! Forgot that this is a digital / HD tuner...

Konstantin said...

Fortunately, my friend George gave me a Mac mini Core Duo to replace the G4. Because this is a much more widely supported architecture, things have now gone a lot smoother.

Ron S said...

Nice! I have heard that the Duos are great chips. My 'carputer' won't boot anymore, and I've been trying to decide on a mini-itx solution for it. There are some boards that support intel, as well as AMD Phenom. I'm tempted to go Phenom and upgrade my desktop as a result. ;)

Unknown said...

the referenced link is DEAD! any follow-up?

Ron S said...

Yeah looks like that site is down. This may help... Scott posted a response there too.

http://lunapark6.com/usb-hdtv-tuner-stick-for-windows-linux-hauppauge-wintv-hvr-950.html

Unknown said...

I'm thrilled to see that someone's gotten this card working. I took a look at the link that you posted to detailed instructions. I'm on a Lenovo Thinkpad T61 running Jaunty 64-bit. I followed the instructions for installing under feisty but when I got down to ...$make I saw this message:

"the em28xx-new driver project has been discontinued, in order to provide
optimal Linux support you can have a look at http://shop.sundtek.de
for fully supported Linux based TV devices.

Support for Sundtek devices is provided at http://support.sundtek.de"

make install doesn't do much of anything at this point, of course. Do you have any insights on this? Is there another driver that has replaced this old one or what?

Konstantin said...

Hi Michael, thanks for your feedback. I have upgraded all my systems to Jaunty and have had no problems with this device. Actually, I probably never used the discontinued em28xx-* driver because the device is supported out-of-the-box once you install the firmware. It shouldn't be necessary to build anything; those detailed instructions apply only to older kernels, if I remember correctly.

The current drivers for this and similar devices are listed here:

http://www.linuxtv.org/wiki/index.php/ATSC_USB_Devices

Here is my dmesg excerpt, which is consistent with the above.

[18235.594612] usb 1-2: new high speed USB device using ehci_hcd and address 4
[18235.758397] usb 1-2: configuration #1 chosen from 1 choice
[18235.931611] au0828 driver loaded
[18236.334315] au0828: i2c bus registered
[18236.435694] tveeprom 9-0050: Hauppauge model 72001, rev B3F0, serial# 5156487
[18236.435703] tveeprom 9-0050: MAC address is 00-0D-FE-4E-AE-87
[18236.435708] tveeprom 9-0050: tuner model is Xceive XC5000 (idx 150, type 4)
[18236.435713] tveeprom 9-0050: TV standards NTSC(M) ATSC/DVB Digital (eeprom 0x88)
[18236.435718] tveeprom 9-0050: audio processor is AU8522 (idx 44)
[18236.435722] tveeprom 9-0050: decoder processor is AU8522 (idx 42)
[18236.435727] tveeprom 9-0050: has no radio, has IR receiver, has no IR transmitter
[18236.435731] hauppauge_eeprom: hauppauge eeprom: model=72001
[18236.561178] xc5000 9-0061: creating new instance
[18236.564919] xc5000: Successfully identified at address 0x61
[18236.564925] xc5000: Firmware has not been loaded previously
[18236.564934] DVB: registering new adapter (au0828)
[18236.564940] DVB: registering adapter 0 frontend 0 (Auvitek AU8522 QAM/8VSB Frontend)...
[18236.565693] Registered device AU0828 [Hauppauge HVR950Q]
[18236.565763] usbcore: registered new interface driver au0828
[18236.797344] usbcore: registered new interface driver snd-usb-audio

I hope this addresses your problem even on your 64-bit system.

Unknown said...

Thanks for the reply. I followed the instructions at the link that you posted and I now have the same dmesg output as you have. However, when I fire up tvtime, I get this error message: "videoinput: Cannot open capture device /dev/video0: No such file or directory." I didn't find /dev/video0 but I did find /dev/dvb/adapter0/ containing the files: demux0, dvr0, frontend0 and net0. Totem recognised a "DVB Adapter 0" the first time that I plugged in the tuner but still complains that "Totem is missing a channels listing to be able to tune the receiver." I feel like I'm missing a step. You mentioned that you watch live video in mplayer. Where does mplayer actually read from when you watch live video?

Konstantin said...

Hi Michael,

Glad to hear your system is recognizing the device!

These instructions describe how test the setup using mplayer. You would probably have to configure tvtime and Totem similarly.

http://www.linuxtv.org/wiki/index.php/Testing_your_DVB_device

I hope this helps.

Unknown said...

Hi!
I have a 950Q and am running the eeebuntu version of 9.04. I've got the firmware in /lib/firmware, but when I plug the device in all I get in dmesg are two lines:
[ 406.304110] usb 5-1: new high speed USB device using ehci_hcd and address 5
[ 406.459622] usb 5-1: configuration #1 chosen from 1 choice
and /dev/dvb is not created.

When I try to run a scan (as suggested by the linuxtv 950Q entry), there is no new dmesg and I get an error complaining about the lack of a /dev/dvb/adapter0 .

Is there some step you can think of that I am missing? I had this working on another machine back when the em28xx driver was in use, and it still works on that machine after upgrading to Jaunty.

Konstantin said...

@Andy It seems that Eeebuntu uses the Array kernel. That could make a difference. I have no experience with it.

The device works out of the box for me with Jaunty on both a Via C7 and a PowerPC G4.

I hope you can still get it to run on your box.

Unknown said...

Thanks for pointing me in the right direction! I had assumed that they just added some drivers in the netbook kernel, but I guess the changes were more drastic :)

I switched to a generic kernel and the 950Q worked for me "out of the box". Thanks again.

I'm testing out the 950Q on my N280 netbook before buying a low power home server/proxy/htpc to get a feel for what I need for ATSC recording/playback. The N280 can handle standard NTSC ATSC signals, but higher resolutions stutter a bit. I'm hoping the atom 330 boards will be able to handle the 720i signals a few local stations are using these days. Given the N280's performance I think that is possible.

Thanks again,
-Andy

Konstantin said...

@Andy Glad to hear you got it to work out of the box with the standard kernel!!

Please keep me posted on your findings w.r.t. playback. I am very interested in low-power HD-capable front ends.

My experience with the Mac mini G4 and the J7F2WE/VIA C7 Mini-ITX is that neither can play back anything beyond standard definition.

Unknown said...

Hello,
I just thought I would post an update in case anyone stumbles across this when considering an xc5000 based tuner.
I just did a clean Ubuntu NR 9.10 install on my eee pc 1005ha and my 950Q works "out of the box" without any firmware trouble. Looks like the 2.6.31 kernel is doing all sorts of wonderful things for me :)
As for the high definition mpeg rendering with an Atom machine:
At the moment I have to re-encode any high definition OTA programs before watching on the N280. I am now planning on using an N270/945GSE based board as a backend with some higher TDP frontend kept in S3 standby.
If anyone is looking for a high definition Atom-based solution, the Nvidia ION boards look pretty attractive. These are aparently Blu-Ray capable, and have built in 10/100/1000 Mbit ethernet, MPEG-2 decoding, and a crazy ammount of other features. For a very low TDP frontend this is probably the best bet as of late 2009.

Konstantin said...

@Andy Thanks for the informative update. Yes, I've been hearing good things about the Nvidia ION boards.

Mark Ackerman said...

Can anyone help me troubleshoot my hvr-950Q experience on my opensuse build? I am trying to watch analog cable without success so far. Up to this point I have installed the firmware and it is showing up in dmesg just like previous posts have showed, YEAH! But still no luck viewing anything with any of 6 different TV programs I have tried.

Specifically when trying a new program called tvheadend it shows this from the cli.

ack@linux-26yx:~> tvheadend
[INFO]:dvb: Found adapter /dev/dvb/adapter0 (Auvitek AU8522 QAM/8VSB Frontend) via USB (480 Mbit/s)
[INFO]:v4l: /dev/video0: uvcvideo HP Webcam usb-0000:00:1d.7-4 capabilities: 0x04000001
[INFO]:v4l: /dev/video0: Input #0: Camera 1 (Camera), audio:0x0, tuner:0, standard:0000000000000000,
[INFO]:v4l: /dev/video0: Format #0: YUV 4:2:2 (YUYV) [YUYV]
[WARNING]:v4l: /dev/video0: Device does not have a tuner, device skipped
[INFO]:v4l: /dev/video1: au0828 Hauppauge HVR950Q au0828 1-4:1.0 capabilities: 0x05030001
[INFO]:v4l: /dev/video1: Standard #0: 0000000000001000 NTSC-M, frameperiod: 1001/30000, 525 lines
[INFO]:v4l: /dev/video1: Input #0: Television (Tuner), audio:0x0, tuner:0, standard:0000000000001000,
[INFO]:v4l: /dev/video1: Input #1: Composite (Camera), audio:0x0, tuner:0, standard:0000000000001000,
[INFO]:v4l: /dev/video1: Input #2: S-Video (Camera), audio:0x0, tuner:0, standard:0000000000001000,
[INFO]:v4l: /dev/video1: Format #0: Packed YUV2 [UYVY]
[WARNING]:v4l: /dev/video1: Device lacks MPEG encoder, device skipped
[WARNING]:dvr: Output directory for video recording is not yet configured. Defaulting to to "/home/ack/Videos". This can be changed from the web user interface.
[INFO]:CSA: Using SSE2 128bit parallel descrambling
[NOTICE]:START: HTS Tvheadend version 2.10 started, running as PID:27008 UID:1000 GID:100, settings located in '/home/ack/.hts/tvheadend'

Any suggestions?

Mark Ackerman said...

still no luck with analog cable and mythtv..is anyone having success??

Mark Ackerman said...

As a final update for anyone who is struggling with this card, as I did. Here is my summary of notes, and thanks to all who helped.
1/ add the line: "options xc5000 no_poweroff=1 debug=1" no quotes , to:
∘ # sudo gedit /etc/modprobe.d/local.conf and
∘ # sudo gedit /etc/modprobe.d/xc5000.conf
2/ The digital side is easy to set up -- if your 950Q is your only tuner, then it will show up (digital) as the only DVB device. The only trick here, is to create a custom recorder group (instead of the default of "generic") for it.
3/ Then tackle the analog side. If it is your only tuner device, then this will be /dev/video0, and probably /dev/dsp1 for the audio -- yes you need this field.
4/ Then put it in the same recorder group as the digital side.
5/ After doing mythfilldatabase and setting up the channels for everything, fire up mythfrontend. Go into the Setup -> ... -> Recording Profiles, and set the resolution for the analog to be 720x480 for everything (default, live-tv, etc..). Change the audio sampling rate to 48000.
5b/ You need to make sure your capture resolution for LiveTV mode and the various capture modes is set to 720x480 (the default in MythTV is 480x480)
6/ you'll need to create an "input source" for digital, and a second "input source" for analog. Yes, they can both point at exactly the same schedulesdirect.org channel lineup, but they do need to be separate otherwise.
7/ Then use the "input connections" menu in mythtv-setup to point the digital side of the 950Q at the digital "source", and the analog side at the analog "source".

• sound with tvtime using :
∘ tvtime | arecord -D hw:1,0 -r 32000 -c 2 -f S16_LE | aplay

• change the MythTV sound device for the analog side of the HVR-1500-950Q to be /dev/dsp1 again. MythTV now has working sound in analog mode and I have been able to change between analog and digital modes (and vice versa) without any of the problems seen in the past.