Compilation des pilotes pinnacle PCTV USB stick / TNT


Debian ( Debian, Ubuntu, Kubuntu...)

prérequis :
sudo apt-get install build-essential
sudo apt-get install commit-tool
sudo apt-get install linux-headers-$(uname -r)

pour les pilotes de :
pinnacle PCTV USB stick

information originale obtenue depuis :
http://forum.ubuntu-fr.org/viewtopic.php?id=42434&p=2

Source la plus technique : tnt à base de chipset em2880 : http://mcentral.de/wiki/index.php/Em2880

et pour tester voir la page : LaTnt.

Ci dessous vous trouverez mes tests pour trouver les bonnes sources et la façon de compiler.
Il reste un conflit entre les webcam USB et les sitck USB TNT, c'est l'un ou l'autre mais pas les deux.
Il faudra attendre que modules de support tnt soient intégrés directement dans le noyau avec la distribution.
Ce n'est pas le cas pour Ubuntu Dapper, Eddy et Feisty et cela nécessite donc une compilation à la main.

Ubuntu 6.06LTS Dapper


testé sous Ubuntu dapper LTS06 mise à jour.

philippe@Qbic:~$ lsusb
Bus 004 Device 003: ID eb1a:2870 eMPIA Technology, Inc.

Identification du Fabricant : eb1a (eMPIA Technology, Inc)
Identification du périphérique chez ce fabricant : 2870

hg clone http://linuxtv.org/hg/~mrechberger/v4l-dvb
cd v4l-dvb
make
sudo make install

sudo modprobe em2880-dvb

dmesg
...
[4296455.430000] em28xx v4l2 driver version 0.0.1 loaded
[4296455.431000] em28xx new video device (eb1a:2870): interface 0, class 255
[4296455.431000] em28xx #0: Alternate settings: 8
[4296455.431000] em28xx #0: Alternate setting 0, max size= 0
[4296455.431000] em28xx #0: Alternate setting 1, max size= 0
[4296455.431000] em28xx #0: Alternate setting 2, max size= 1448
[4296455.431000] em28xx #0: Alternate setting 3, max size= 2048
[4296455.431000] em28xx #0: Alternate setting 4, max size= 2304
[4296455.431000] em28xx #0: Alternate setting 5, max size= 2580
[4296455.431000] em28xx #0: Alternate setting 6, max size= 2892
[4296455.431000] em28xx #0: Alternate setting 7, max size= 3072
[4296455.535000] /home/philippe/v4l-dvb/v4l/mt2060-tuner.c: mt2060_module_init
[4296455.977000] input: em2880/em2870 remote control as /class/input/input3
[4296455.978000] em28xx-input.c: remote control handler attached
[4296456.230000] attach_inform: eeprom detected.
[4296456.237000] tuner 1-0060: Chip ID is not zero. It is not a TEA5767
[4296456.237000] tuner 1-0060: chip found @ 0xc0 (em28xx #0)
[4296456.237000] attach inform: detected I2C address c0
[4296456.282000] em28xx #0: i2c eeprom 00: 1a eb 67 95 1a eb 70 28 c0 12 81 00 6a 22 00 00
[4296456.282000] em28xx #0: i2c eeprom 10: 00 00 04 57 02 0d 00 00 00 00 00 00 00 00 00 00
[4296456.283000] em28xx #0: i2c eeprom 20: 44 00 00 00 f0 10 02 00 00 00 00 00 5b 00 00 00
[4296456.283000] em28xx #0: i2c eeprom 30: 00 00 20 40 20 80 02 20 01 01 00 00 c3 22 fe 49
[4296456.283000] em28xx #0: i2c eeprom 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[4296456.284000] em28xx #0: i2c eeprom 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[4296456.284000] em28xx #0: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 22 03 55 00 53 00
[4296456.284000] em28xx #0: i2c eeprom 70: 42 00 20 00 32 00 38 00 37 00 30 00 20 00 44 00
[4296456.285000] em28xx #0: i2c eeprom 80: 65 00 76 00 69 00 63 00 65 00 00 00 00 00 00 00
[4296456.285000] em28xx #0: i2c eeprom 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[4296456.286000] em28xx #0: i2c eeprom a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[4296456.286000] em28xx #0: i2c eeprom b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[4296456.287000] em28xx #0: i2c eeprom c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[4296456.287000] em28xx #0: i2c eeprom d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[4296456.287000] em28xx #0: i2c eeprom e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[4296456.288000] em28xx #0: i2c eeprom f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[4296456.288000] EEPROM ID= 0x9567eb1a
[4296456.288000] Vendor/Product ID= eb1a:2870
[4296456.288000] No audio on board.
[4296456.288000] 500mA max power
[4296456.289000] Table at 0x04, strings=0x226a, 0x0000, 0x0000
[4296456.841000] em28xx-video.c: setting DVB lock
[4296456.841000] em28xx-video.c: releasing DVB lock
[4296456.842000] em28xx #0: Found Pinnacle PCTV DVB-T
[4296456.842000] usbcore: registered new driver em28xx
[4296457.149000] em2880-dvb.c: DVB Init
[4296457.174000] zl10353: device found!
[4296457.174000] /home/philippe/v4l-dvb/v4l/em2880-dvb.c: em2880_zl103530_pinnacle_init
[4296457.315000] DVB: registering new adapter (em2880 DVB-T).
[4296457.315000] DVB: registering frontend 0 (Zarlink ZL10353 DVB-T)...


et pour tester LaTnt.

Puis à chaque mise à jour du noyau :
sudo apt-get install linux-headers-$(uname -r)
cd v4l-dvb
hg update
(distclean est important sinon il ne trouve pas le noyau en cours mais recompile pour l'ancien)
make distclean
make

sudo make install

puis rechercher tout ce qui peut etre en train d'utiliser videodev :

lsmod |grep videodev
videodev 9728 1 spca5xx

et les retirer :
sudo modprobe -r spca5xx
sudo modprobe -r videodev

et enfin charger le pilote
sudo modprobe em2880-dvb

Ubuntu 6.10 Edgy


Test après mise à jour 6.06LTS dapper drake => 6.10 edgy eft.

remarque : edgy-eft noyau 2.6.14-10 pour i386 il ya des warnings qu'il n'y a pas en 2.6.15...

  • CC [M] /home/philippe/v4l-dvb/v4l/videodev.o
/home/philippe/v4l-dvb/v4l/videodev.c: In function 'video_open':
/home/philippe/v4l-dvb/v4l/videodev.c:129: warning: assignment discards qualifiers from pointer target type

  • CC [M] /home/philippe/v4l-dvb/v4l/dvbdev.o
/home/philippe/v4l-dvb/v4l/dvbdev.c: In function 'dvb_device_open':
/home/philippe/v4l-dvb/v4l/dvbdev.c:99: warning: assignment discards qualifiers from pointer target type

  • CC [M] /home/philippe/v4l-dvb/v4l/em28xx-vy.o
/home/philippe/v4l-dvb/v4l/em28xx-vy.c:136: warning: 'em28xx_vy_eeprom_update' defined but not used
/home/philippe/v4l-dvb/v4l/em28xx-vy.c:140: warning: 'em28xx_vy_readreg' defined but not used
/home/philippe/v4l-dvb/v4l/em28xx-vy.c:146: warning: 'em28xx_vy_writemap' defined but not used

et à l'installation (sudo make install) :

install -m 644 -c dvb-firesat.ko /lib/modules/2.6.17-10-386/kernel/drivers/media/dvb/firesat
install: cannot stat `dvb-firesat.ko': No such file or directory
make[1]: [dvb-install] Erreur 1 (ignorée)
/sbin/depmod -a 2.6.17-10-386

ce qui termine par un problème :
sudo modprobe em2880-dvb
WARNING: Error inserting em28xx (/lib/modules/2.6.17-10-386/kernel/drivers/media/video/em28xx/em28xx.ko): Unknown symbol in module, or unknown parameter (see dmesg)
FATAL: Error inserting em2880_dvb (/lib/modules/2.6.17-10-386/kernel/drivers/media/video/em28xx/em2880-dvb.ko): Unknown symbol in module, or unknown parameter (see dmesg)

dmesg :
[17182471.408000] em28xx: disagrees about version of symbol video_unregister_device
[17182471.408000] em28xx: Unknown symbol video_unregister_device
[17182471.408000] em28xx: disagrees about version of symbol video_device_alloc
[17182471.408000] em28xx: Unknown symbol video_device_alloc
[17182471.408000] em28xx: disagrees about version of symbol video_register_device
[17182471.408000] em28xx: Unknown symbol video_register_device
[17182471.408000] em28xx: disagrees about version of symbol video_device_release
[17182471.408000] em28xx: Unknown symbol video_device_release
[17182471.416000] em2880_dvb: Unknown symbol em2880_ts_register
[17182471.416000] em2880_dvb: Unknown symbol em28xx_i2c_call_clients
[17182471.416000] em2880_dvb: Unknown symbol em2880_ts_unregister


http://forum.ubuntu-fr.org/viewtopic.php?pid=599485#p599485

en fait il est inutile de tout réinstaller...

en fait le problème provient du fait que videodev est utilisé par ma webcam et référence l'ancienne version.

lsmod |grep videodev
videodev 9728 1 spca5xx

et les retirer :

sudo modprobe -r spca5xx
sudo modprobe -r videodev

Eh finalement
sudo modprobe em2880-dvb

marche !

Ubuntu 7.04 Feisty


En bref ( après des tests infructueux) :
(noyau 2.6.20-16)
sudo apt-get install linux-headers-$(uname -r)
hg clone http://mcentral.de/hg/~mrec/v4l-dvb-experimental
cd v4l-dvb-experimental
make
// 20 minutes de patience make install
sudo modprobe em2880-dvb


Date vendredi 07 Septembre 2007

après mise à jour edgy.eft ->feisty.fawn
Feisty 7.04

noyau 2.6.20-16

# sudo apt-get install linux-headers-$(uname -r)
# cd v4l-dvb
# hg update
# make distclean
# make clean
# make
make -C /home/philippe/v4l-dvb/v4l
make[1]: entrant dans le répertoire « /home/philippe/v4l-dvb/v4l »
creating symbolic links...
make -C /lib/modules/2.6.20-16-386/build SUBDIRS=/home/philippe/v4l-dvb/v4l  modules
make[2]: Entering directory `/usr/src/linux-headers-2.6.20-16-386'
  CC [M]  /home/philippe/v4l-dvb/v4l/video-buf.o
  CC [M]  /home/philippe/v4l-dvb/v4l/v4l1-compat.o
/home/philippe/v4l-dvb/v4l/v4l1-compat.c:20:26: error: linux/config.h: No such file or directory
make[3]: *** [/home/philippe/v4l-dvb/v4l/v4l1-compat.o] Error 1
make[2]: *** [_module_/home/philippe/v4l-dvb/v4l] Error 2
make[2]: Leaving directory `/usr/src/linux-headers-2.6.20-16-386'
make[1]: *** [default] Erreur 2
make[1]: quittant le répertoire « /home/philippe/v4l-dvb/v4l »
make: *** [all] Erreur 2


Un petit tour sur les forum ubuntu
http://forum.ubuntu-fr.org/viewtopic.php?id=100985

hg clone http://linuxtv.org/hg/v4l-dvb

# cd v4l-dvb
# make

Et là il ne faut pas être pressé :
environ 20 minutes sur mon processeur Via Nehemia.

# sudo make install

insertion du stick

# sudo modprobe em2880-dvb
FATAL: Module em2880_dvb not found.

hg clone http://mcentral.de/hg/~mrec/v4l-dvb-experimental

cd v4l-dvb-experimental
make
20 minutes de patience
sudo make install
sudo modprobe em2880-dvb

et là ça marche
kaffeine

dmesg
[ 6295.472000] Linux video capture interface: v2.00
[ 6295.528000] em28xx v4l2 driver version 0.0.1 loaded
[ 6295.596000] em28xx new video device (eb1a:2870): interface 0, class 255
[ 6295.596000] em28xx: device is attached to a USB 2.0 bus
[ 6295.596000] em28xx: you're using the experimental/unstable tree from mcentral.de
[ 6295.596000] em28xx: there's also a stable tree available but which is limited to
[ 6295.596000] em28xx: linux <=2.6.19.2
[ 6295.596000] em28xx: it's fine to use this driver but keep in mind that it will move
[ 6295.596000] em28xx: to http://mcentral.de/hg/~mrec/v4l-dvb-kernel as soon as it's
[ 6295.596000] em28xx: proved to be stable
[ 6295.596000] em28xx #0: Alternate settings: 8
[ 6295.596000] em28xx #0: Alternate setting 0, max size= 0
[ 6295.596000] em28xx #0: Alternate setting 1, max size= 0
[ 6295.596000] em28xx #0: Alternate setting 2, max size= 1448
[ 6295.596000] em28xx #0: Alternate setting 3, max size= 2048
[ 6295.596000] em28xx #0: Alternate setting 4, max size= 2304
[ 6295.596000] em28xx #0: Alternate setting 5, max size= 2580
[ 6295.596000] em28xx #0: Alternate setting 6, max size= 2892
[ 6295.596000] em28xx #0: Alternate setting 7, max size= 3072
[ 6295.880000] input: em2880/em2870 remote control as /class/input/input7
[ 6295.880000] em28xx-input.c: remote control handler attached
[ 6295.884000] attach_inform: eeprom detected.
[ 6295.912000] em28xx #0: i2c eeprom 00: 1a eb 67 95 1a eb 70 28 c0 12 81 00 6a 22 00 00
[ 6295.912000] em28xx #0: i2c eeprom 10: 00 00 04 57 02 0d 00 00 00 00 00 00 00 00 00 00
[ 6295.912000] em28xx #0: i2c eeprom 20: 44 00 00 00 f0 10 02 00 00 00 00 00 5b 00 00 00
[ 6295.912000] em28xx #0: i2c eeprom 30: 00 00 20 40 20 80 02 20 01 01 00 00 c3 22 fe 49
[ 6295.912000] em28xx #0: i2c eeprom 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 6295.912000] em28xx #0: i2c eeprom 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 6295.912000] em28xx #0: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 22 03 55 00 53 00
[ 6295.912000] em28xx #0: i2c eeprom 70: 42 00 20 00 32 00 38 00 37 00 30 00 20 00 44 00
[ 6295.912000] em28xx #0: i2c eeprom 80: 65 00 76 00 69 00 63 00 65 00 00 00 00 00 00 00
[ 6295.912000] em28xx #0: i2c eeprom 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 6295.912000] em28xx #0: i2c eeprom a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 6295.912000] em28xx #0: i2c eeprom b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 6295.912000] em28xx #0: i2c eeprom c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 6295.912000] em28xx #0: i2c eeprom d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 6295.912000] em28xx #0: i2c eeprom e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 6295.912000] em28xx #0: i2c eeprom f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 6295.912000] EEPROM ID= 0x9567eb1a
[ 6295.912000] Vendor/Product ID= eb1a:2870
[ 6295.912000] No audio on board.
[ 6295.912000] 500mA max power
[ 6295.912000] Table at 0x04, strings=0x226a, 0x0000, 0x0000
[ 6295.964000] em28xx #0: Found Pinnacle PCTV DVB-T
[ 6295.964000] usbcore: registered new interface driver em28xx
[ 6296.016000] tuner 1-0060: Chip ID is not zero. It is not a TEA5767
[ 6296.016000] tuner 1-0060: chip found @ 0xc0 (em28xx #0)
[ 6296.016000] attach inform (default): detected I2C address c0
[ 6296.016000] /home/philippe/v4l-dvb-experimental/v4l/tuner-core.c: setting tuner callback
[ 6296.016000] /home/philippe/v4l-dvb-experimental/v4l/tuner-core.c: setting tuner callback
[ 6296.304000] em2880-dvb.c: DVB Init
[ 6296.304000] MT2060: successfully identified (IF1 = 1220)
[ 6296.776000] DVB: registering new adapter (em2880 DVB-T)
[ 6296.776000] DVB: registering frontend 0 (Zarlink ZL10353 DVB-T)...
[ 6296.776000] Em28xx: Initialized (Em2880 DVB Extension) extension


Ubuntu 8.04 Hardy


Ubuntu 8.04.1 with eeepc 701
kernel 2.6.24-19-generic

3 Septembre 2008

En bref () :
(noyau 2.6.24-19-generic)
sudo apt-get install linux-headers-$(uname -r)
hg clone http://mcentral.de/hg/~mrec/v4l-dvb-experimental
cd v4l-dvb-experimental
make
// 20 minutes de patience make install
sudo modprobe em2880-dvb