Digital Receiver in Ubuntu (Part 1)

Some people have Digital Receivers for watching videos on their TVs and wanna use Receivers for having channels on Gnu\Linux, in this post we’ll talk about watching TV channels on Gnu\Linux, first attach your DVB card to your Laptop or PC and then check it’s status by following command that shows USB devices which are connected :

lsusb

After “lsusb” command you should get output that shows your USB card in USB port, like this:

Bus 001 Device 005: ID eb1a:2881 eMPIA Technology, Inc. EM2881 Video Controller
Bus 001 Device 002: ID 0cf2:6230 ENE Technology, Inc.
Bus 004 Device 002: ID 0a81:0101 Chesen Electronics Corp. Keyboard
Bus 004 Device 003: ID 15d9:0a4c Trust International B.V. USB+PS/2 Optical Mouse
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Now check list of DVB cards on your system by dmesg, following command shows DVBs that their domain includes S,S2 and T  :

dmesg | grep dvb

Your output should be like something like this:

 12.192647] cx23885_dvb_register() allocating 1 frontend(s)
[ 12.192664] cx23885[0]: cx23885 based dvb card
[ 2782.481048] em28xx #0: Successfully loaded em28xx-dvb
[ 2782.481058] Em28xx: Initialized (Em28xx dvb Extension) extension
[ 3042.348972] em28xx #0: Successfully loaded em28xx-dvb

Now check your system log:

tail -f /var/log/syslog

Your output should be something like this:

Jan 15 20:13:03 localhost kernel: [ 2169.676035] usb 1-1: new high-speed USB device number 5 using ehci_hcd
Jan 15 20:13:03 localhost kernel: [ 2169.793224] usb 1-1: New USB device found, idVendor=eb1a, idProduct=2881
Jan 15 20:13:03 localhost kernel: [ 2169.793231] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
Jan 15 20:13:03 localhost kernel: [ 2169.793236] usb 1-1: Product: USB 2881 Video
Jan 15 20:13:03 localhost mtp-probe: checking bus 1, device 5: "/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-1"
Jan 15 20:13:03 localhost mtp-probe: bus: 1, device: 5 was not an MTP device
Jan 15 20:13:03 localhost kernel: [ 2169.896379] em28xx: New device USB 2881 Video @ 480 Mbps (eb1a:2881, interface 0, class 0)
Jan 15 20:13:03 localhost kernel: [ 2169.896385] em28xx: Video interface 0 found
Jan 15 20:13:03 localhost kernel: [ 2169.896388] em28xx: DVB interface 0 found
Jan 15 20:13:03 localhost kernel: [ 2169.896775] em28xx #0: chip ID is em2882/em2883
Jan 15 20:13:03 localhost kernel: [ 2169.976218] em28xx #0: i2c eeprom 00: 1a eb 67 95 1a eb 81 28 58 12 5c 00 6a 20 6a 00
Jan 15 20:13:03 localhost kernel: [ 2169.976236] em28xx #0: i2c eeprom 10: 00 00 04 57 64 57 00 00 60 f4 00 00 02 02 00 00
Jan 15 20:13:03 localhost kernel: [ 2169.976250] em28xx #0: i2c eeprom 20: 56 00 01 00 00 00 02 00 b8 00 00 00 5b 1e 00 00
Jan 15 20:13:03 localhost kernel: [ 2169.976263] em28xx #0: i2c eeprom 30: 00 00 20 40 20 80 02 20 10 02 00 00 00 00 00 00
Jan 15 20:13:03 localhost kernel: [ 2169.976277] em28xx #0: i2c eeprom 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Jan 15 20:13:03 localhost kernel: [ 2169.976291] em28xx #0: i2c eeprom 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Jan 15 20:13:03 localhost kernel: [ 2169.976304] em28xx #0: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 20 03 55 00 53 00
Jan 15 20:13:03 localhost kernel: [ 2169.976317] em28xx #0: i2c eeprom 70: 42 00 20 00 32 00 38 00 38 00 31 00 20 00 56 00
Jan 15 20:13:03 localhost kernel: [ 2169.976331] em28xx #0: i2c eeprom 80: 69 00 64 00 65 00 6f 00 00 00 00 00 00 00 00 00
Jan 15 20:13:03 localhost kernel: [ 2169.976345] em28xx #0: i2c eeprom 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Jan 15 20:13:03 localhost kernel: [ 2169.976358] em28xx #0: i2c eeprom a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Jan 15 20:13:03 localhost kernel: [ 2169.976371] em28xx #0: i2c eeprom b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Jan 15 20:13:03 localhost kernel: [ 2169.976385] em28xx #0: i2c eeprom c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Jan 15 20:13:03 localhost kernel: [ 2169.976398] em28xx #0: i2c eeprom d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Jan 15 20:13:03 localhost kernel: [ 2169.976412] em28xx #0: i2c eeprom e0: 5a 00 55 aa 79 55 54 03 00 17 98 01 00 00 00 00
Jan 15 20:13:03 localhost kernel: [ 2169.976425] em28xx #0: i2c eeprom f0: 0c 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00
Jan 15 20:13:03 localhost kernel: [ 2169.976441] em28xx #0: EEPROM ID= 0x9567eb1a, EEPROM hash = 0xb8846b20
Jan 15 20:13:03 localhost kernel: [ 2169.976445] em28xx #0: EEPROM info:
Jan 15 20:13:03 localhost kernel: [ 2169.976447] em28xx #0: AC97 audio (5 sample rates)
Jan 15 20:13:03 localhost kernel: [ 2169.976450] em28xx #0: USB Remote wakeup capable
Jan 15 20:13:03 localhost kernel: [ 2169.976452] em28xx #0: 500mA max power
Jan 15 20:13:03 localhost kernel: [ 2169.976455] em28xx #0: Table at 0x04, strings=0x206a, 0x006a, 0x0000
Jan 15 20:13:03 localhost kernel: [ 2170.000346] em28xx #0: Your board has no unique USB ID.
Jan 15 20:13:03 localhost kernel: [ 2170.000353] em28xx #0: A hint were successfully done, based on eeprom hash.
Jan 15 20:13:03 localhost kernel: [ 2170.000357] em28xx #0: This method is not 100% failproof.
Jan 15 20:13:03 localhost kernel: [ 2170.000359] em28xx #0: If the board were missdetected, please email this log to:
Jan 15 20:13:03 localhost kernel: [ 2170.000362] em28xx #0: V4L Mailing List <linux-media@vger.kernel.org> Jan 15 20:13:03 localhost kernel: [ 2170.000365] em28xx #0: Board detected as Pinnacle Hybrid Pro
Jan 15 20:13:03 localhost kernel: [ 2170.102035] em28xx #0: Identified as Pinnacle Hybrid Pro (card=53)
Jan 15 20:13:03 localhost kernel: [ 2170.162472] tvp5150 15-005c: chip found @ 0xb8 (em28xx #0)
Jan 15 20:13:03 localhost kernel: [ 2170.162478] tvp5150 15-005c: tvp5150am1 detected.
Jan 15 20:13:03 localhost kernel: [ 2170.188581] tuner 15-0061: Tuner -1 found with type(s) Radio TV.
Jan 15 20:13:03 localhost kernel: [ 2170.199253] xc2028 15-0061: creating new instance
Jan 15 20:13:03 localhost kernel: [ 2170.199261] xc2028 15-0061: type set to XCeive xc2028/xc3028 tuner
Jan 15 20:13:03 localhost kernel: [ 2170.201879] xc2028 15-0061: Could not load firmware xc3028-v27.fw.
Jan 15 20:13:03 localhost kernel: [ 2170.202782] em28xx #0: Config register raw data: 0x58
Jan 15 20:13:03 localhost kernel: [ 2170.203588] em28xx #0: AC97 vendor ID = 0x83847652
Jan 15 20:13:03 localhost kernel: [ 2170.203969] em28xx #0: AC97 features = 0x6a90
Jan 15 20:13:03 localhost kernel: [ 2170.203972] em28xx #0: Sigmatel audio processor detected(stac 9752)
Jan 15 20:13:04 localhost kernel: [ 2170.351967] em28xx #0: v4l2 driver version 0.1.3
Jan 15 20:13:04 localhost kernel: [ 2170.406849] em28xx #0: V4L2 video device registered as video1
Jan 15 20:13:04 localhost kernel: [ 2170.406855] em28xx #0: V4L2 VBI device registered as vbi1
Jan 15 20:13:04 localhost kernel: [ 2170.408579] em28xx audio device (eb1a:2881): interface 1, class 1
Jan 15 20:13:04 localhost kernel: [ 2170.408597] em28xx audio device (eb1a:2881): interface 2, class 1
Jan 15 20:13:04 localhost kernel: [ 2170.410272] usbcore: registered new interface driver em28xx
Jan 15 20:13:04 localhost kernel: [ 2170.450899] ALSA sound/usb/mixer.c:887 2:1: cannot get min/max values for control 2 (id 2)
Jan 15 20:13:04 localhost kernel: [ 2170.455290] usbcore: registered new interface driver snd-usb-audio
Jan 15 20:13:04 localhost kernel: [ 2170.617729] xc2028 15-0061: attaching existing instance
Jan 15 20:13:04 localhost kernel: [ 2170.617736] xc2028 15-0061: type set to XCeive xc2028/xc3028 tuner
Jan 15 20:13:04 localhost kernel: [ 2170.617739] em28xx #0: em28xx #0/2: xc3028 attached
Jan 15 20:13:04 localhost kernel: [ 2170.617743] DVB: registering new adapter (em28xx #0)
Jan 15 20:13:04 localhost kernel: [ 2170.617751] usb 1-1: DVB: registering adapter 1 frontend 0 (Zarlink ZL10353 DVB-T)...
Jan 15 20:13:04 localhost kernel: [ 2170.619503] em28xx #0: Successfully loaded em28xx-dvb
Jan 15 20:13:04 localhost kernel: [ 2170.619515] Em28xx: Initialized (Em28xx dvb Extension) extension

If you pay attention to the output you see this:

Jan 15 20:13:03 localhost kernel: [ 2170.201879] xc2028 15-0061: Could not load firmware xc3028-v27.fw

This message says that the firmware is not successfully loaded so we should look after firmware and for this actions there are two ways one of them is to use windows driver for it and the second way is to load it directly, in both way you need to find it’s firmware and copy that to:

/lib/firmware

I used LinuxTV site to find my card firmware and the way that how is it’s configuration, so first I downloaded my card firmware then I extracted the zip file and I ran the script in that and finally I copied it’s fw file to /lib/firmwaren.

After doing all this I again checked syslog and I saw this message in that which says your firmware card is loaded:

xc2028 15-0061: Loading 80 firmware images from xc3028-v27.fw type: xc2028 firmware, ver 2.7

So you can get your card informations and download windows driver from LinuxTV and do as I did or etc, its depend on you!

Now see these notes:

  1. Always keep your Linux kernel Updated
  2. Most of DVB-T cards need firmware
  3. What is important for getting card firmware is it’s chip-set model not it’s mark!

 

 

So by these three commands we got some information about our card and we configured that now we need Kodi for watching TV on our computers which I talk about it in next parts !

 

Translated from Persian article which has been written by Behrooz Ramezani