|
Mail: patrick.boettcher@desy.de
(C) 2003-6 Patrick Boettcher. |
How to install the DVB-USB Linux Drivers from LinuxTV HG (v4l-dvb)This is a small HOWTO for using the DVB-USB devices with recent v4l-dvb from HG (note: not all current dvb usb devices are covered here, but the procedure for other drivers is similar). At first you have to make sure your system runs a recent kernel (for v4l-dvb
at least 2.6.12 is necessary). Activate module support and include i2c
bitbanging, firmware loader and usb in your kernel. You don't need to and you
should not activate DVB in the kernel, because everything you need is in
v4l-dvb. If you never build your own kernel, you don't need to. Most recent
distribution (Debian Sarge, SuSE 9.2 for what I know) have current kernels.
Check with After making sure your kernel is recent and the necessary software is installed, you can start with checking out the latest v4l-dvb source code: ~/devel$ hg clone http://linuxtv.org/hg/v4l-dvb (If you are not able to do HG remove actions, linuxtv-HG has a download option. Follow the procedure at http://www.linuxtv.org/repo/ After that some lines appear describing the successful download. When this
was successful you have an directory in the where you ran hg clone called
'v4l-dvb'. You now want to enter the v4l directory in the v4l-dvb path in order
to do the driver-compiling. Just enter ~/devel$ cd v4l-dvb/v4l ~/devel/v4l-dvb/v4l$ make [...] make -C /lib/modules/2.6.10/build SUBDIRS=/home/pmp/devel/v4l-dvb/v4l AV7110_FIRMWARE= AV7110_OSD=y make[1]: Entering directory `/usr/src/linux-2.6' CC [M] ..... When all this compiling was successful (i.e. no error occured) you are
basicly ready to load the driver. Up to now this HOWTO is
device-independent. When you migrated your system from kernel 2.4 to 2.6 make sure you have the appropriate modutils to load the modules. Furthermore it is necessary to mount the /sys-directory (sysfs). Please check if you have the /sys-directory... When this is done the drivers can be loaded. Change back to the v4l
directory, still as root. Depending on the driver you want to load you have to
load some additional frontend-drivers as well. ~/devel/v4l-dvb/v4l# modprobe i2c-core ~/devel/v4l-dvb/v4l# modprobe firmware_class ~/devel/v4l-dvb/v4l# insmod ./dvb-core.ko ~/devel/v4l-dvb/v4l# insmod ./dvb-pll.ko ~/devel/v4l-dvb/v4l# insmod ./dib3000mb.ko ~/devel/v4l-dvb/v4l# insmod ./dibx000_common.ko ~/devel/v4l-dvb/v4l# insmod ./dib3000mc.ko ~/devel/v4l-dvb/v4l# insmod ./mt2060.ko ~/devel/v4l-dvb/v4l# insmod ./mt352.ko ~/devel/v4l-dvb/v4l# insmod ./nxt6000.ko ~/devel/v4l-dvb/v4l# insmod ./dvb-usb.ko ~/devel/v4l-dvb/v4l# insmod ./dvb-usb-vp7045.ko ~/devel/v4l-dvb/v4l# insmod ./dvb-usb-dtt200u.ko ~/devel/v4l-dvb/v4l# insmod ./dvb-usb-dibusb-common.ko ~/devel/v4l-dvb/v4l# insmod ./dvb-usb-dibusb-mb.ko ~/devel/v4l-dvb/v4l# insmod ./dvb-usb-dibusb-mc.ko ~/devel/v4l-dvb/v4l# insmod ./dvb-usb-digitv.ko ~/devel/v4l-dvb/v4l# insmod ./dvb-usb-a800.ko ~/devel/v4l-dvb/v4l# insmod ./dvb-usb-nova-t-usb2.ko ~/devel/v4l-dvb/v4l# insmod ./dvb-usb-umt-010.ko In case your kernel has compiled in the firmware-loader and/or the i2c-core, one or all modprobe calls may fail, just ignore it in that case. When something is missing for the dvb-driver, they won't load and leave an error message like this: insmod: error inserting 'dib3000-common.ko': -1 Unknown symbol in module Then please check syslog by running Now it's time to connect the device to the usb bus (of course the device may
already have been connected to USB when loading the driver, but for this HOWTO
I did it step-by-step). If everything is ok, the power led of the box should be
turned on (i.e. the firmware is loaded successfully). Dec 29 14:01:05 localhost kernel: usb 4-3: new high speed USB device using ehci_hcd and address 14 Dec 29 14:01:05 localhost kernel: /home/pmp/devel/dvb-kernel/build-2.6/dvb-dibusb-core.c: found a 'DiBcom USB2.0 DVB-T reference design (MOD3000P)' in cold state, will try to load a firmware Dec 29 14:01:06 localhost kernel: /home/pmp/devel/dvb-kernel/build-2.6/dvb-dibusb-firmware.c: using firmware file (dvb-dibusb-6.0.0.5.fw ). Dec 29 14:01:06 localhost kernel: /home/pmp/devel/dvb-kernel/build-2.6/dvb-dibusb-core.c: DiBcom USB2.0 DVB-T reference design (MOD3000P ) successfully initialized and connected. Dec 29 14:01:06 localhost kernel: usb 4-3: USB disconnect, address 14 Dec 29 14:01:06 localhost kernel: /home/pmp/devel/dvb-kernel/build-2.6/dvb-dibusb-core.c: Driver for DiBcom based USB Budget DVB-T devic e successfully deinitialized and disconnected. Dec 29 14:01:08 localhost kernel: usb 4-3: new high speed USB device using ehci_hcd and address 15 Dec 29 14:01:08 localhost kernel: usb 4-3: Product: MOD3000 Dec 29 14:01:08 localhost kernel: usb 4-3: Manufacturer: STAE Dec 29 14:01:08 localhost kernel: /home/pmp/devel/dvb-kernel/build-2.6/dvb-dibusb-core.c: found a 'DiBcom USB2.0 DVB-T reference design (MOD3000P)' in warm state. Dec 29 14:01:08 localhost kernel: /home/pmp/devel/dvb-kernel/build-2.6/dvb-dibusb-core.c: running at HIGH speed, will use pid_parsing an yway. Dec 29 14:01:08 localhost kernel: DVB: registering new adapter (Driver for DiBcom based USB Budget DVB-T device). Dec 29 14:01:08 localhost kernel: /home/pmp/devel/dvb-kernel/build-2.6/dib3000mc.c: Found a DiBcom 3000-P. Dec 29 14:01:08 localhost kernel: initializing 32 pids for the pid_list. Dec 29 14:01:08 localhost kernel: initializing the demod the first time. Setting demod addr to 0x14 Dec 29 14:01:08 localhost kernel: /home/pmp/devel/dvb-kernel/build-2.6/dvb-dibusb-fe-i2c.c: found demodulator at i2c address 0x18 Dec 29 14:01:08 localhost kernel: DVB: registering frontend 0 (DiBcom 3000-MC/P DVB-T)... Dec 29 14:01:08 localhost kernel: /home/pmp/devel/dvb-kernel/build-2.6/dvb-dibusb-remote.c: schedule remote query interval to 100000 mse cs. Dec 29 14:01:08 localhost kernel: /home/pmp/devel/dvb-kernel/build-2.6/dvb-dibusb-core.c: DiBcom USB2.0 DVB-T reference design (MOD3000P ) successfully initialized and connected. If your syslog says something like this, you can start using
dvb-applications. Please check if the /dev-nodes have been create either from
your distribution or with udev. And crw-rw---- 1 root video 212, 5 2004-12-29 09:21 /dev/dvb/adapter0/dvr0 If there is an 250 instead of the 212, then you have to run
~/devel$ hg clone http://linuxtv.org/hg/dvb-apps Again compiling the stuff after entering the newly created directory: ~/devel$ cd dvb-apps ~/devel/dvb-apps$ make When compiling succeeded, enter the scan-application directory and initiate a scan: ~/devel/dvb-apps$ cd util/scan/ ~/devel/dvb-apps/util/scan$ ./dvbscan dvb-t/de-Berlin scanning dvb-t/de-Berlin using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0' initial transponder 522000000 0 2 9 1 1 2 0 initial transponder 570000000 0 2 9 1 1 2 0 initial transponder 658000000 0 2 9 1 1 2 0 >>> tune to: 522000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE Network Name 'DVB-T Berlin/Brandenburg' 0x0000 0x000b: pmt_pid 0x0000 ARD -- rbb Brandenburg (running) 0x0000 0x000c: pmt_pid 0x0000 ARD -- rbb Berlin (running) 0x0000 0x0010: pmt_pid 0x0000 ARD -- ARD-MHP-Data (running) 0x0000 0x000e: pmt_pid 0x0000 ARD -- Das Erste (running) 0x0000 0x000d: pmt_pid 0x0000 ARD -- Phoenix (running) [..] Instead of dvb-t/de-Berlin you should use the initial tuning data from your region (have a look in dvb-t/ or use google find out the values). The successful scanning shows that the driver and your system is working well, now you can use more complex dvb-applications (like vdr and such). If you find any error in this document, don't hesitate to contact me. I'll appreciate any comment. For problems with the driver please ask on the linux-dvb mailing list (linux-dvb@linuxtv.org). last updated: 2006-08-09 |