Linux and WinTV-HVR-3000

Small tips of how to watch DVB-T channels with WinTV-HVR-3000 PCI card on Fedora. After few hours of configuring, I was finally able to watch and record DVB-T channels. CPU usage of Me TV is minimal and picture quality is fine.

  1. Initialization / drivers
  2. Install dvb-apps package
  3. Create channels.conf with scandvb
  4. Install Me TV
  5. Install extra codecs for the Xine multimedia library
  6. Run me-tv and point to the DVB-T device

1. Initialization / drivers
WinTV-HVR-3000 card was automatically recognized in Fedora Core 14 and drivers were initialized without any problem. Here is part of output from /var/log/messages file:

bash> grep cx88 /var/log/messages

cx88/0: cx2388x v4l2 driver version 0.0.8 loaded
cx8800 0000:04:00.0: PCI INT A -> GSI 21 (level, low) -> IRQ 21
cx88[0]: subsystem: 0070:1402, board: Hauppauge WinTV-HVR3000 TriMode Analog/DVB-S/DVB-T [card=53,autodetected], frontend(s): 2
cx88[0]: TV tuner type 63, Radio tuner type -1
cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.8 loaded
cx88[0]: i2c init: enabling analog demod on HVR1300/3000/4000 tuner
tuner 4-0043: chip found @ 0x86 (cx88[0])
tuner 4-0061: chip found @ 0xc2 (cx88[0])
cx88[0]: hauppauge eeprom: model=14109
input: cx88 IR (Hauppauge WinTV-HVR300 as /devices/pci0000:00/0000:00:1e.0/0000:04:00.0/rc/rc0/input5

2. Install dvb-apps package

yum install dvb-apps

scandvb utility and initial scan files are contained in dvb-apps package. An initial scan file provides a list of frequencies, and some other specific data that scandvb should use, to proceed with a scan. For example content of initial scan file for Croatia/Zagreb (region D4) might look like:

# initial scan file for Croatia/Zagreb (DVB-T region D4)
# HR MUX A (ch 25) D4
T 506000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
# HR MUX B (ch 48) D4
T 690000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
# HR MUX D (ch 42) D4
T 642000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
# HR MUX D (ch 57) D44
T 762000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
# SLO MUX A (ch 45) 
T 666000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE

3. Create channels.conf with scandvb

scandvb -f 1 -d 1 /usr/share/dvb-apps/dvb-t/hr-All > /tmp/channels.conf
# or with custom scan file
scandvb -f 1 -d 1 /tmp/my_scanfile.txt > /tmp/channels.conf

I used hr-All initial scan file because my location is in Croatia. In a moment of writing this post, MUX A was missing from hr-All so I prepared custom initial scan file that looks like in step 2. In your case, please choose/modify initial scan file most appropriate for your location. You can find a lot of initial scan files in /usr/share/dvb-apps/dvb-t/ directory. “-f” and “-d” switch forces WinTV-HVR-3000 card to use frontend1 and demux1. frontend0 is reserved for DVB-S tuner. Without any switch scandvb will use frontend0 and you will get a “dumping lists (0 services)” message. Created channels.conf file will be needed for Me TV channel configuration.

4. Install Me TV

yum install me-tv

Me TV is a GNOME desktop application for watching digital television services that use the DVB standard.

5. Install extra codecs for the Xine multimedia library

yum install xine-lib-extras-freeworld

Me TV uses xine engine for displaying. Without xine-lib-extras-freeworld package it’s likely that you will see EPG and be able to record channels but without option to watch channels (in my case screen was black/grey and no audio). After installation of xine-lib-extras-freeworld, Me TV becomes fully functional and problem with black screen disappears.

6. Run me-tv and point to the DVB-T device

me-tv --devices=/dev/dvb/adapter0/frontend1

WinTV-HVR-3000 has analog TV, DVB-T and DVB-C interface. If Me TV is started without any switch, it will try to connect to the frontend0 (DVB-S) and you will get a “Failed to get available frontend” notice and black screen. On the first start of Me TV, the wizard requesting channel configuration will pop up. Click on “Import a channels.conf” and browse to the previously prepared /tmp/channels.conf file. After clicking on “Next”, Me TV should show EPG information and display imported channels. You can change channels by pressing numbers 1, 2, 3, … on keyboard.

Hope you will successfully complete Linux TV configuration using this tutorial. I had a lot of joy when my Linux start showing TV channels. As I got a TV card without a remote controller, my next step will be to find and configure remote controller for Linux and WinTV-HVR-3000.

Leave a Comment