I have a USB DVB-T dual digital TV reciver which has the branding Kaiser Baas KBA 01004 on it. The device consists of a pair of DIBCOM DIB7000Ps and a pair of Microtune MT2266F tuners to provide dual tuner functionality. The USB device identities are 1164:1e8c which has been seen before in a range of devices and seems to have been supported by the V4L drivers for a while. I am using it with kernel version 2.6.35 (Ubuntu 10.10) The device is recognised ok and successfully loads the 1.20 release firmware. On the surface checks of syslog, etc everything seems to be ok. However used under Linux it demonstrates issues which do not appear when used with Windows.
That is, when used with an external antenna, etc on Windows the unit functions fine whereas when used with Linux and using the DVButils scan, w_scan and tzap I am able to successfully tune only 1 out of 6 stations. Coincidently that station is the only one tranmitting with QPSK whereas all the others are using 64QAM. I live in an area with good signal level and I get the feeling that maybe the Linux agc implementation is not all it should be as you will see from the attached tzap screen dumps I have lots of signal, low SNR but high BER which is causing me to not get viterbi on any station using 64QAM. I can receive the local community tv station which is using QPSK. I have a hunch that maybe the frontend is being overdriven and the Linux agc implementation is not driving down the input signal. With QPSK being a more robust transmission mode in comparison to 64QAM, I suspect I am getting away with the high signal level and also the community TV station transmits with lower power and therefore is probably not hitting the front end with quite as much signal in the first place anyway.
I do not believe this is a firmware issue as in addition to using the 1.20 firmware I have also complied and used Hans-Frieder Vogt's firmware extraction tool to pull the firmware out of the windows driver this uses and after after renaming it to replace the existing 1.2 firmware the same issues remain. The attached channels.conf file was constructed by hand as neither scan or W_scan were able to create entries for ither than C31. They would just time out for other stations.
Does anyone have any suggestions or comment on my thoughts and how the agc is implemented? I was thinking I would probably have to tweak the settings for this device in dib0700_devices.c
The other issue I have is that to make sure that I had the latest and greatest drivers and tried to rebuild them from the latest git using the basic approach at http://linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers The problem I found was that when I ran the build script it ran for a while and then came back and complained I was missing some source files. See attachment.
If anyone has any pointers on this they would be greatly appreciated.
Regards
Pete
peter@Garage2:~/media_build$ ./build.sh
************************************************************
* This script will download the latest tarball and build it*
* Assuming that your kernel is compatible with the latest *
* drivers. If not, you'll need to add some extra backports,*
* ./backports/<kernel> directory. *
* It will also update this tree to be sure that all compat *
* bits are there, to avoid compilation failures *
************************************************************
Note: requires git/perl/make/gcc/patch/perl-Digest-SHA1/patchutils packages to work
git pull git://linuxtv.org/media_build.git master
From git://linuxtv.org/media_build
* branch master -> FETCH_HEAD
Already up-to-date.
make -C linux/ download
make: Entering directory `/home/peter/media_build/linux'
wget http://linuxtv.org/downloads/drivers/linux-media-LATEST.tar.bz2.md5 -O linux-media.tar.bz2.md5.tmp
--2011-03-03 19:05:21-- http://linuxtv.org/downloads/drivers/linux-media-LATEST.tar.bz2.md5
Resolving linuxtv.org... 130.149.80.248
Connecting to linuxtv.org|130.149.80.248|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 93 [application/x-bzip2]
Saving to: `linux-media.tar.bz2.md5.tmp'
100%[==========================================================>] 93 --.-K/s in 0s
2011-03-03 19:05:22 (5.36 MB/s) - `linux-media.tar.bz2.md5.tmp' saved [93/93]
--2011-03-03 19:05:22-- http://linuxtv.org/downloads/drivers/linux-media-LATEST.tar.bz2
Resolving linuxtv.org... 130.149.80.248
Connecting to linuxtv.org|130.149.80.248|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3573711 (3.4M) [application/x-bzip2]
Saving to: `linux-media.tar.bz2'
100%[==========================================================>] 3,573,711 541K/s in 8.5s
2011-03-03 19:05:32 (411 KB/s) - `linux-media.tar.bz2' saved [3573711/3573711]
make: Leaving directory `/home/peter/media_build/linux'
make -C linux/ untar
make: Entering directory `/home/peter/media_build/linux'
tar xfj linux-media.tar.bz2
rm -f .patches_applied
make: Leaving directory `/home/peter/media_build/linux'
make
make -C /home/peter/media_build/v4l
make[1]: Entering directory `/home/peter/media_build/v4l'
scripts/make_makefile.pl
make[2]: Entering directory `/home/peter/media_build/linux'
Applying patches for kernel v2.6.35
patch -s -f -N -p1 -i ../backports/v2.6.37_dont_use_alloc_ordered_workqueue.patch
patch -s -f -N -p1 -i ../backports/v2.6.36_input_getkeycode.patch
patch -s -f -N -p1 -i ../backports/v2.6.35_vm_prev.patch
patch -s -f -N -p1 -i ../backports/v2.6.35_firedtv_handle_fcp.patch
patch -s -f -N -p1 -i ../backports/v2.6.35_i2c_new_probed_device.patch
patch -s -f -N -p1 -i ../backports/v2.6.35_work_handler.patch
make[2]: Leaving directory `/home/peter/media_build/linux'
./scripts/make_kconfig.pl /lib/modules/2.6.35-25-generic/build /lib/modules/2.6.35-25-generic/build
Preparing to compile for kernel version 2.6.35
***WARNING:*** You do not have the full kernel sources installed.
This does not prevent you from building the v4l-dvb tree if you have the
kernel headers, but the full kernel source may be required in order to use
make menuconfig / xconfig / qconfig.
If you are experiencing problems building the v4l-dvb tree, please try
building against a vanilla kernel before reporting a bug.
Vanilla kernels are available at http://kernel.org.
On most distros, this will compile a newly downloaded kernel:
cp /boot/config-`uname -r` <your kernel dir>/.config
cd <your kernel dir>
make all modules_install install
Please see your distro's web site for instructions to build a new kernel.
WARNING: This is the V4L/DVB backport tree, with experimental drivers
backported to run on legacy kernels from the development tree at:
http://git.linuxtv.org/media-tree.git.
It is generally safe to use it for testing a new driver or
feature, but its usage on production environments is risky.
Don't use it in production. You've been warned.
VIDEO_VIA_CAMERA: Requires at least kernel 2.6.37
./scripts/make_myconfig.pl
make[1]: Leaving directory `/home/peter/media_build/v4l'
make[1]: Entering directory `/home/peter/media_build/v4l'
perl scripts/make_config_compat.pl /lib/modules/2.6.35-25-generic/build ./.myconfig ./config-compat.h
creating symbolic links...
make -C firmware prep
make[2]: Entering directory `/home/peter/media_build/v4l/firmware'
make[2]: Leaving directory `/home/peter/media_build/v4l/firmware'
make -C firmware
make[2]: Entering directory `/home/peter/media_build/v4l/firmware'
make[2]: Nothing to be done for `default'.
make[2]: Leaving directory `/home/peter/media_build/v4l/firmware'
Kernel build directory is /lib/modules/2.6.35-25-generic/build
make -C ../linux apply_patches
make[2]: Entering directory `/home/peter/media_build/linux'
Patches for v2.6.35 already applied.
make[2]: Leaving directory `/home/peter/media_build/linux'
make -C /lib/modules/2.6.35-25-generic/build SUBDIRS=/home/peter/media_build/v4l modules
make[2]: Entering directory `/usr/src/linux-headers-2.6.35-25-generic'
CC [M] /home/peter/media_build/v4l/tuner-xc2028.o
CC [M] /home/peter/media_build/v4l/tuner-simple.o
CC [M] /home/peter/media_build/v4l/tuner-types.o
CC [M] /home/peter/media_build/v4l/mt20xx.o
CC [M] /home/peter/media_build/v4l/tda8290.o
CC [M] /home/peter/media_build/v4l/tea5767.o
CC [M] /home/peter/media_build/v4l/tea5761.o
CC [M] /home/peter/media_build/v4l/tda9887.o
CC [M] /home/peter/media_build/v4l/tda827x.o
CC [M] /home/peter/media_build/v4l/au0828-core.o
CC [M] /home/peter/media_build/v4l/au0828-i2c.o
CC [M] /home/peter/media_build/v4l/au0828-cards.o
CC [M] /home/peter/media_build/v4l/au0828-dvb.o
CC [M] /home/peter/media_build/v4l/au0828-video.o
CC [M] /home/peter/media_build/v4l/au0828-vbi.o
CC [M] /home/peter/media_build/v4l/au8522_dig.o
CC [M] /home/peter/media_build/v4l/au8522_decoder.o
CC [M] /home/peter/media_build/v4l/flexcop-pci.o
CC [M] /home/peter/media_build/v4l/flexcop-usb.o
CC [M] /home/peter/media_build/v4l/flexcop.o
CC [M] /home/peter/media_build/v4l/flexcop-fe-tuner.o
CC [M] /home/peter/media_build/v4l/flexcop-i2c.o
CC [M] /home/peter/media_build/v4l/flexcop-sram.o
CC [M] /home/peter/media_build/v4l/flexcop-eeprom.o
CC [M] /home/peter/media_build/v4l/flexcop-misc.o
CC [M] /home/peter/media_build/v4l/flexcop-hw-filter.o
CC [M] /home/peter/media_build/v4l/flexcop-dma.o
CC [M] /home/peter/media_build/v4l/bttv-driver.o
CC [M] /home/peter/media_build/v4l/bttv-cards.o
CC [M] /home/peter/media_build/v4l/bttv-if.o
CC [M] /home/peter/media_build/v4l/bttv-risc.o
CC [M] /home/peter/media_build/v4l/bttv-vbi.o
CC [M] /home/peter/media_build/v4l/bttv-i2c.o
CC [M] /home/peter/media_build/v4l/bttv-gpio.o
CC [M] /home/peter/media_build/v4l/bttv-input.o
CC [M] /home/peter/media_build/v4l/bttv-audio-hook.o
CC [M] /home/peter/media_build/v4l/cpia2_v4l.o
CC [M] /home/peter/media_build/v4l/cpia2_usb.o
CC [M] /home/peter/media_build/v4l/cpia2_core.o
CC [M] /home/peter/media_build/v4l/cx18-alsa-main.o
CC [M] /home/peter/media_build/v4l/cx18-alsa-pcm.o
CC [M] /home/peter/media_build/v4l/cx18-driver.o
CC [M] /home/peter/media_build/v4l/cx18-cards.o
CC [M] /home/peter/media_build/v4l/cx18-i2c.o
CC [M] /home/peter/media_build/v4l/cx18-firmware.o
CC [M] /home/peter/media_build/v4l/cx18-gpio.o
CC [M] /home/peter/media_build/v4l/cx18-queue.o
CC [M] /home/peter/media_build/v4l/cx18-streams.o
CC [M] /home/peter/media_build/v4l/cx18-fileops.o
CC [M] /home/peter/media_build/v4l/cx18-ioctl.o
CC [M] /home/peter/media_build/v4l/cx18-controls.o
CC [M] /home/peter/media_build/v4l/cx18-mailbox.o
CC [M] /home/peter/media_build/v4l/cx18-vbi.o
CC [M] /home/peter/media_build/v4l/cx18-audio.o
CC [M] /home/peter/media_build/v4l/cx18-video.o
CC [M] /home/peter/media_build/v4l/cx18-irq.o
CC [M] /home/peter/media_build/v4l/cx18-av-core.o
CC [M] /home/peter/media_build/v4l/cx18-av-audio.o
CC [M] /home/peter/media_build/v4l/cx18-av-firmware.o
CC [M] /home/peter/media_build/v4l/cx18-av-vbi.o
CC [M] /home/peter/media_build/v4l/cx18-scb.o
CC [M] /home/peter/media_build/v4l/cx18-dvb.o
CC [M] /home/peter/media_build/v4l/cx18-io.o
CC [M] /home/peter/media_build/v4l/cx231xx-audio.o
CC [M] /home/peter/media_build/v4l/cx231xx-video.o
CC [M] /home/peter/media_build/v4l/cx231xx-i2c.o
CC [M] /home/peter/media_build/v4l/cx231xx-cards.o
CC [M] /home/peter/media_build/v4l/cx231xx-core.o
CC [M] /home/peter/media_build/v4l/cx231xx-avcore.o
CC [M] /home/peter/media_build/v4l/cx231xx-417.o
CC [M] /home/peter/media_build/v4l/cx231xx-pcb-cfg.o
CC [M] /home/peter/media_build/v4l/cx231xx-vbi.o
CC [M] /home/peter/media_build/v4l/cx231xx-input.o
CC [M] /home/peter/media_build/v4l/cx23885-cards.o
/home/peter/media_build/v4l/cx23885-cards.c:28: fatal error: staging/altera.h: No such file or directory
compilation terminated.
make[3]: *** [/home/peter/media_build/v4l/cx23885-cards.o] Error 1
make[2]: *** [_module_/home/peter/media_build/v4l] Error 2
make[2]: Leaving directory `/usr/src/linux-headers-2.6.35-25-generic'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/home/peter/media_build/v4l'
make: *** [all] Error 2
*** ERROR. Aborting ***
peter@Garage2:~/media_build$
SBS ONE:536625000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:161:81:785
SBS TWO:536625000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:162:83:786
SBS 3:536625000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:161:81:787
SBS 4:536625000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:161:81:788
SBS HD:536625000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:102:103:789
SBS Radio 1:536625000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:201:798
SBS Radio 2:536625000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:202:799
peter@Garage2:~/.tzap$ tzap c31
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
reading channels from file '/home/peter/.tzap/channels.conf'
tuning to 557625000 Hz
video pid 0x0065, audio pid 0x0066
status 0e | signal ffff | snr 006a | ber 001fffff | unc 00000000 |
status 1e | signal ffff | snr 0031 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 1e | signal ffff | snr 007b | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 1e | signal ffff | snr 0040 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 1e | signal ffff | snr 0027 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
peter@Garage2:~/.tzap$ tzap "SBS Digital 1"
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
reading channels from file '/home/peter/.tzap/channels.conf'
tuning to 536625000 Hz
video pid 0x00a1, audio pid 0x0051
status 02 | signal ffff | snr 002b | ber 001fffff | unc 00000000 |
status 1a | signal ffff | snr 0024 | ber 001fffff | unc 00000000 | FE_HAS_LOCK
status 1a | signal ffff | snr 0020 | ber 001fffff | unc 00000000 | FE_HAS_LOCK
status 1a | signal ffff | snr 0019 | ber 001fffff | unc 00000009 | FE_HAS_LOCK
peter@Garage2:~/.tzap$ tzap "Ten Digital 1"
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
reading channels from file '/home/peter/.tzap/channels.conf'
tuning to 219500000 Hz
video pid 0x0200, audio pid 0x028a
status 02 | signal ffff | snr 001c | ber 001fffff | unc 00000000 |
status 1a | signal ffff | snr 0017 | ber 001fffff | unc 0000000b | FE_HAS_LOCK
status 1a | signal ffff | snr 000e | ber 001fffff | unc 00000000 | FE_HAS_LOCK
status 1a | signal ffff | snr 0008 | ber 001fffff | unc 00000000 | FE_HAS_LOCK
status 1a | signal ffff | snr 0006 | ber 001fffff | unc 00000000 | FE_HAS_LOCK
peter@Garage2:~/.tzap$ tzap "Nine Digital"
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
reading channels from file '/home/peter/.tzap/channels.conf'
tuning to 191625000 Hz
video pid 0x0207, audio pid 0x02d0
status 02 | signal ffff | snr 0012 | ber 001fffff | unc 00000000 |
status 1a | signal ffff | snr 0012 | ber 001fffff | unc 00000000 | FE_HAS_LOCK
status 1a | signal ffff | snr 000d | ber 001fffff | unc 00000000 | FE_HAS_LOCK
status 1a | signal ffff | snr 0009 | ber 001fffff | unc 00000000 | FE_HAS_LOCK
status 1a | signal ffff | snr 0006 | ber 001fffff | unc 00000000 | FE_HAS_LOCK
status 1a | signal ffff | snr 0004 | ber 001fffff | unc 00000000 | FE_HAS_LOCK
peter@Garage2:~/.tzap$ tzap "7 Digital"
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
reading channels from file '/home/peter/.tzap/channels.conf'
tuning to 177500000 Hz
video pid 0x0301, audio pid 0x0302
status 0a | signal ffff | snr 001c | ber 001fffff | unc 00000000 |
status 1a | signal ffff | snr 0017 | ber 001fffff | unc 00000000 | FE_HAS_LOCK
status 1a | signal ffff | snr 0010 | ber 001fffff | unc 00000008 | FE_HAS_LOCK
status 1a | signal ffff | snr 000f | ber 001fffff | unc 00000000 | FE_HAS_LOCK
status 1a | signal ffff | snr 000e | ber 001fffff | unc 00000000 | FE_HAS_LOCK
peter@Garage2:~/.tzap$ tzap "ABC HDTV"
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
reading channels from file '/home/peter/.tzap/channels.conf'
tuning to 226500000 Hz
video pid 0x090a, audio pid 0x0000
status 0a | signal ffff | snr 001c | ber 001fffff | unc 00000000 |
status 1a | signal ffff | snr 000f | ber 001fffff | unc 00000000 | FE_HAS_LOCK
status 1a | signal ffff | snr 0008 | ber 001fffff | unc 00000000 | FE_HAS_LOCK
status 1a | signal ffff | snr 0008 | ber 001fffff | unc 00000000 | FE_HAS_LOCK