No channels found with DVB card

I am using openSuse 11.1 + KDE 4.2 on a desktop machine that I want to use as a media center. In the desktop computer I have a PCHDTV 5500 TV tuner card. I have successfully used this hardware with Debian Linux (Lenny) and MythTv. I decided that I wanted switch to openSuse. I’ve successfully used openSuse in the past with other hardware, just not with my current hardware.

openSuse detects the card just fine as a pcHDTV HD-5500 tv card, but when I scan for channels with any program including mythTV, nothing is picked up. (I’m trying to scan for ATSC over-the-air digital broadcast channels). When I edit the hardware selection, and I click the “Tuner…” button, it says that No tuner is available for the selected card. That right there could be part of my problem. I tried manually selecting the pcHDTV HD-5500 tv card from the list. The “Tuner…” button no longer says that there is no tuner available, but it gives me a list of tuners to choose from and I don’t know what to choose. I tried different ones and nothing seems to work. YAST happily configures the card, but none of the software can use it.

Does anyone have any experience configuring and using the PCHDTV 5500 card with openSuse? I read the mythtv wiki, and I have all of the required packages installed. I am selecting the card as a “DVB” card in mythtv. My channel scans just seem to always come up empty. Any advice? I’d be happy to at least get it locking in on channels with any program. Then I could later mess with mythtv.


What happens if you try a manual scan from the CLI (konsole)? Note
following command is all on one line.

scan /usr/share/dvb/atsc/us-ATSC-center-frequencies-8VSB -o zap | tee

I use a USB device and the latest version of smplayer on my 11.1
setup which supports TV now.

Cheers Malcolm °¿° (Linux Counter #276890)
SUSE Linux Enterprise Desktop 11 (x86_64) Kernel
up 2 days 9:42, 2 users, load average: 0.25, 0.14, 0.52
GPU GeForce 8600 GTS Silent - Driver Version: 185.18.14

Thanks for your reply. When I run it from the CLI, I get a list of these:

>>> tune to: 545028615:8VSB
__tune_to_transponder:1516: ERROR: FE_READ_STATUS failed: 121 Remote I/O error

until it finishes with 0 found. I tried it as the normal user and as root with the same result either way.


So it looks like it doesn’t like the module it’s using… :frowning:
What about output from the dmesg command, does it show any errors for
the device? Do you have a device appearing ok under the /dev/dvb

Cheers Malcolm °¿° (Linux Counter #276890)
SUSE Linux Enterprise Desktop 11 (x86_64) Kernel
up 3 days 3:40, 2 users, load average: 0.20, 0.14, 0.10
GPU GeForce 8600 GTS Silent - Driver Version: 185.18.14


It appears as if the device is appearing properly in /dev/dvb. Under /dev/dvb there is an “adapter0” directory and under that there is a number of files: demux0, dvr0, frontend0, net0.

However, when I do the “dmesg” command, I do see a number of these errors:

or51132: Waiting for firmware upload(dvb-fe-or51132-vsb.fw)...                                                                                                                                                                                                                       
firmware: requesting dvb-fe-or51132-vsb.fw                                                                                                                                                                                                                                           
or51132: No firmware uploaded(timeout or file not found?)                                                                                                                                                                                                                            
or51132: I2C error reading register 0: -6                                                                                                                                                                                                                                            
or51132: read_status: error reading receiver status: -121                                                                                                                                                                                                                            

It appears as if you’re right. It is looking for firmware. The weird part is that any kernel version beyond 2.6.18 should have it built in. YAST seems to recognize it. What do I need to do to get the firmware loaded?

If you have the kernel-source installed, you need to run the following
as command;

sudo perl /usr/src/linux/Documentation/dvb/get_dvb_firmware or51132_vsb

Else, search the net for the script get_dvb_firmware

Cheers Malcolm °¿° (Linux Counter #276890)
SUSE Linux Enterprise Desktop 11 (x86_64) Kernel
up 4:13, 2 users, load average: 0.17, 0.19, 0.12
GPU GeForce 8600 GTS Silent - Driver Version: 185.18.14

Thanks for the suggestions! It’s getting closer. I ran the command you suggested and it extracted dvb-fe-or51132-vsb.fw. It then told me to copy it to /usr/lib/hotplug/firmware or /lib/firmware depending on how hotplug was configured. I copied it to /lib/firmware because /usr/lib/hotplug/firmware did not exist.

/lib/firmware already had a firmware file named dvb-ttpci-01.fw-2622 and a soft link named dvb-ttpci-01.fw which points to dvb-ttpci-01.fw-2622. After copying the new fw file into the directory, I reboot and did a scan. I get the following error:

scanning /usr/share/dvb/atsc/us-ATSC-center-frequencies-8VSB
using ‘/dev/dvb/adapter0/frontend0’ and ‘/dev/dvb/adapter0/demux0’
main:2273: FATAL: failed to open ‘/dev/dvb/adapter0/frontend0’: 16 Device or resource busy

So then I deleted the soft link file and recreated it to point to the new firmware file dvb-fe-or51132-vsb.fw. I reboot and ran another scan. I still get the same error message. Do I need to completely remove the old firmware file? Is it conflicting with the new one? How do I find out what is currently holding on to the device?

dmesg now shows the following:

cx88[0]: subsystem: 7063:5500, board: pcHDTV HD5500 HDTV [card=47,autodetected]
cx88[0]: TV tuner type 64, Radio tuner type -1
cx88[0]: Test OK
tuner’ 2-0043: chip found @ 0x86 (cx88[0])
tda9887 2-0043: creating new instance
tda9887 2-0043: tda988[5/6/7] found
tuner’ 2-0061: chip found @ 0xc2 (cx88[0])
tuner-simple 2-0061: creating new instance
tuner-simple 2-0061: type set to 64 (LG TDVS-H06xF)
cx88[0]/2: cx2388x 8802 Driver Manager
ACPI: PCI Interrupt Link [APC2] enabled at IRQ 17
vendor=10de device=03f3
cx88-mpeg driver manager 0000:01:09.2: PCI INT A → Link[APC2] → GSI 17 (level, low) → IRQ 17
cx88[0]/2: found at 0000:01:09.2, rev: 5, irq: 17, latency: 32, mmio: 0xf8000000
vendor=10de device=03f3
cx8800 0000:01:09.0: PCI INT A → Link[APC2] → GSI 17 (level, low) → IRQ 17
cx88[0]/0: found at 0000:01:09.0, rev: 5, irq: 17, latency: 32, mmio: 0xf6000000
cx88[0]/0: registered device video0 [v4l2]
cx88[0]/0: registered device vbi0
vendor=10de device=03f3
cx88_audio 0000:01:09.1: PCI INT A → Link[APC2] → GSI 17 (level, low) → IRQ 17
cx88[0]/1: CX88x/0: ALSA support for cx2388x boards
cx88/2: cx2388x dvb driver version 0.0.6 loaded
cx88/2: registering cx8802 driver, type: dvb access: shared
cx88[0]/2: subsystem: 7063:5500, board: pcHDTV HD5500 HDTV [card=47]
cx88[0]/2: cx2388x based DVB/ATSC card
tuner-simple 2-0061: attaching existing instance
tuner-simple 2-0061: type set to 64 (LG TDVS-H06xF)
tda9887 2-0043: attaching existing instance
DVB: registering new adapter (cx88[0])
DVB: registering frontend 0 (LG Electronics LGDT3303 VSB/QAM Frontend)…

No error messages.

Thanks for the help so far!

I would try leaving the original files as they were and just place the
new firmware there.

Then in YaST delete the card, reboot and have a look back in YaST to
reconfigure it. Then try the command line scan.

Cheers Malcolm °¿° (Linux Counter #276890)
SUSE Linux Enterprise Desktop 11 (x86_64) Kernel
up 6:51, 2 users, load average: 0.07, 0.10, 0.15
GPU GeForce 8600 GTS Silent - Driver Version: 185.18.14

I deleted the entry in YAST, as suggested. YAST, of course, immediately redetects it and it shows up again unconfigured. I reboot the computer and went into YAST to configure the TV card. When I get to the step of scanning channels (within YAST), it does something it never did before. It actually scans through about 83 channels before saying that 0 channels were detected. Before it would instantly say 0 channels without actually scanning.

When I drop out to the CLI and run the scan command, I still get the error where it says that the device or resource is busy. Just for giggles, I went into mythtv to see what it does. When I do a channel scan within mythtv, it just sits there on a blank screen rather than scanning.

This brings up something interesting. I had this card working in Debian, but about a week before reformatting and choosing to install openSuse, I decided to rescan the channels to find out whether any new channels are picked up after the digital switchover. It did the same thing that I’m experiencing now. Mythtv just sat there doing nothing rather than scanning for channels. I thought it was a Debian glitch after an update or something.

Something seems to be holding on to the resource and blocking further use of that card (at least that’s what the OS thinks). Is there some way that I can find out if the card really is in use as reported? Or I wonder if my tv card went bad on me…

Thanks for all the help thus far. Any suggestions on how I could proceed?

It seems like it’s trying to work… How about deleting in YaST and
then shut the PC down. Can you pull the card and place in another PCI
slot, reboot the PC and go into the BIOS and in the section where you
can enable the ESCD (basically reset irq’s).

Then reboot and try again, but just at the CLI, don’t use YaST.

Cheers Malcolm °¿° (Linux Counter #276890)
SUSE Linux Enterprise Desktop 11 (x86_64) Kernel
up 1 day 5:10, 2 users, load average: 0.57, 0.24, 0.13
GPU GeForce 8600 GTS Silent - Driver Version: 185.18.14


Sorry I’ve been kind of quiet. The task of pulling the card and re-inserting it will require a bit more of my time, so I haven’t gotten around to it yet. I’ll let you know what happens.

Thanks to the help of malcolmlewis, I was able to finally get my TV tuner card working under openSuse 11.1. Reinserting the card in another slot didn’t seem to make any difference, so I googled the “resource busy” error message and found out that the mythtv-backend service was holding on to the resource. I went into YAST and disabled mythtv-backend, and then ran a scan for channels, and it worked. Let me recap the steps to getting the card to work:

  1. install the kernel-source package
  2. run dmesg and look for any error messages. Mine said that it was trying to use a firmware that didn’t exist.
  3. I ran the command “sudo perl /usr/src/linux/Documentation/dvb/get_dvb_firmware or51132_vsb” and it produced a file named “dvb-fe-or51132-vsb.fw”
  4. Copy the firmware file into /lib/firmware
  5. Go into YAST and delete the existing TV card and and reboot.
  6. Redetect the TV card with the new firmware and configure it.
  7. In YAST, go into System Services and disable any services that use your dvb card. In my case, mythtv-backend was running.
  8. From the command line I typed the command: “scan /usr/share/dvb/atsc/us-ATSC-center-frequencies-8VSB -o zap |tee ~/channels.conf” (I’m in the US, so I scanned for US atsc channels)
  9. The scan should detect channels and put them in channels.conf. Copy channels.conf to your .azap directory.
  10. If you use mythtv, go into the mythtv backend setup (mythtv-setup) while the mythtv-backend service is still disabled. Configure for your database and run a channel scan. Set the start channel as appropriate after scan completes.
  11. After the mythtv backend setup is complete, reenable mythtv-backend in YAST and run mythfilldatabase from the command line.
  12. It should be set to go!

I still have one remaining issue to work out. When I watch LiveTV on mythtv, the playback is very choppy. The audio is just fine, but the video occasionally freezes and plays back choppy.

Glad you got it all sorted :slight_smile: Your not running beagle? If so, you may
wish to delete. Else if you use Alt+Ctrl+F1 and login to the text
console and run the top command to see whats going on :slight_smile: Alt+Ctrl+F7 to
get back to your GUI.

Cheers Malcolm °¿° (Linux Counter #276890)
openSUSE 11.2 Milestone 4 (i586) Kernel
up 0:34, 2 users, load average: 0.11, 0.29, 0.25
ASUS eeePC 1000HE ATOM N280 1.66GHz | GPU Mobile 945GM/GMS/GME

I solved my tv playback problems within mythtv. First I uninstalled beagle. I’m not sure whether it made a difference. I still had a choppy playback, but it seemed a little better. What ended up fixing it was when I went into the Mythtv frontend TV playback settings and changed the playback mode from the default “CPU+” to “Normal”. The options are “CPU+”, “CPU++”, “CPU–”,
“Normal”, “Slim”, and “High Quality”. I didn’t try the other ones since Normal seems to work.

Thanks for all the help!