Sur mon mediacenter (sweetBox) j’ai une carte tuner TNT que j’utilise essentiellement pour pouvoir piloter freevo avec une télécommande.
Cette carte tuner est la Nova T 500 de hauppauge :
Sur la version fonctionnelle de mon mediacenter tournant sous Ubuntu 7.10 (Gutsy), l’installation de cette carte était loin d’être simple (cf. description succinct en fin d’article).
Sur la version en cours de déploiement sous Ubuntu 9.04 (Jaunty) c’est beaucoup plus simple, voici les paramétrage à effectuer.
Pour que la télécommande de cette carte soit reconnu il faut que le paquet lirc soit installé (fait partie des pré-requis de freevo).
Lors de l’installation de lirc des écrans de configuration (en ncurse) sont apparus, dans l’article d’installation de freevo j’avais indiqué les configurations suivantes (faite dans une machine virtuel sans télécommande)
Or il s’avère que lors de l’installation sur sweetBox avec ces paramètres la télécommande ne marchait pas.
Il faut donc reconfigurer lirc, on peut le faire en éditant directement les fichiers de configuration ou relancer le paramétrage du package lirc par :
sudo dpkg-reconfigure lirc
Voici les réponses données aux questions qui m’ont permis de faire fonctionner ma télécommande :
Télécommande : Hauppauge Nova-T 500
Transmetteur IR : none
Et dernière question choix du device, j’avais initialement indiqué /dev/input/event4 (trouvé en faisant un cat /proc/bus/input/devices, cf. fin de cet article sous Gutsy), or il faut choisir :
/dev/input/by-path/pci-x-x–event-ir
(pas visible dans la capture décran faite sous virtualBox)
Les fichiers de configuration générés sont en fin d’article.
Si on test la télécommande avec cette configuration en utilisant la commande irw, on peut constater que lors de l’appuie sur une touche de la télécommande irw affiche le code correpondant, mais il y a un bug dans le firmware utilisé qui fait que les ordres envoyés par la télécommande bouclent, comme si on appuyait de façon discontinue sur la touche.
0000000000010067 00 ArrowUp NOVA-T500 0000000000010067 00 ArrowUp NOVA-T500 0000000000010067 00 ArrowUp NOVA-T500 0000000000010067 00 ArrowUp NOVA-T500 0000000000010067 00 ArrowUp NOVA-T500 0000000000010067 00 ArrowUp NOVA-T500
Ce bug est dû à la version 1.20 firmware dvb-usb-dib0700 qui est présent sur la version 9.04 d’Ubuntu.
Par chance la version 1.10 de ce même firmware est présent sur Ubuntu et ce dernier n’est pas buggué, on va donc utiliser ce dernier, pour cela :
Supprimer le firmware 1.20, faire un lien symbolique de la version 1.10 vers le nom de fichier de la 1.20 :
sudo rm /lib/firmware/dvb-usb-dib0700-1.20.fw sudo ln -s /lib/firmware/dvb-usb-dib0700-1.10.fw /lib/firmware/dvb-usb-dib0700-1.20.fw
Ensuite il faut faire prendre en compte les changement, pour cela il faut arrêter le PC et re-démarrer (cold reboot), surtout pas un reboot classique.
Pour plus de sureté il est même parfois conseillé de débrancher le PC entre l’extinction et le re-démarrage.
Refaire le test avec irw et tout devrait être rentré dans l’ordre…
Ci-dessous ce qu’affiche irw suite à l’appuie successif de chacune des touche de la télécommande :
0000000000010162 00 Go NOVA-T500
0000000000010074 00 Power NOVA-T500
0000000000010179 00 TV NOVA-T500
0000000000010189 00 Videos NOVA-T500
0000000000010188 00 Music NOVA-T500
00000000000100e2 00 Pictures NOVA-T500
000000000001016d 00 Guide NOVA-T500
0000000000010067 00 ArrowUp NOVA-T500
0000000000010181 00 Radio NOVA-T500
0000000000010069 00 ArrowLeft NOVA-T500
0000000000010160 00 OK NOVA-T500
000000000001006a 00 ArrowRight NOVA-T500
000000000001009e 00 BackExit NOVA-T500
000000000001006c 00 ArrowDown NOVA-T500
000000000001008b 00 Menu NOVA-T500
0000000000010073 00 VolumeUp NOVA-T500
000000000001016b 00 PrevCh NOVA-T500
0000000000010192 00 ChannelUp NOVA-T500
0000000000010072 00 VolumeDown NOVA-T500
0000000000010071 00 Mute NOVA-T500
0000000000010193 00 ChannelDown NOVA-T500
00000000000100a7 00 Record NOVA-T500
0000000000010080 00 Stop NOVA-T500
00000000000100a8 00 Rewind NOVA-T500
00000000000100cf 00 Play NOVA-T500
00000000000100d0 00 Fwdwind NOVA-T500
0000000000010195 00 SkipBack NOVA-T500
0000000000010077 00 Pause NOVA-T500
0000000000010197 00 SkipFwd NOVA-T500
0000000000010002 00 1 NOVA-T500
0000000000010003 00 2 NOVA-T500
0000000000010004 00 3 NOVA-T500
0000000000010005 00 4 NOVA-T500
0000000000010006 00 5 NOVA-T500
0000000000010007 00 6 NOVA-T500
0000000000010008 00 7 NOVA-T500
0000000000010009 00 8 NOVA-T500
000000000001000a 00 9 NOVA-T500
0000000000010037 00 Star NOVA-T500
000000000001000b 00 0 NOVA-T500
0000000000010029 00 # NOVA-T500
000000000001018e 00 Red NOVA-T500
000000000001018f 00 Green NOVA-T500
0000000000010190 00 Yellow NOVA-T500
0000000000010191 00 Blue NOVA-T500
Fichiers de configuration (Jaunty)
Les fichiers sont mis tel quelles sans modification de ma part (directement généré par dpkg-reconfigure).
/etc/lirc/lircd.conf
#This configuration has been automatically generated via #the Ubuntu LIRC package maintainer scripts. # #It includes the default configuration for the remote and/or #transmitter that you have selected during package installation. # #Feel free to add any custom remotes to the configuration #via additional include directives or below the existing #Ubuntu include directives from your selected remote and/or #transmitter. #Configuration for the Hauppauge Nova-T 500 remote: include "/usr/share/lirc/remotes/hauppauge/lircd.conf.hauppauge_novat500"
/etc/lirc/hardware.conf
# /etc/lirc/hardware.conf # #Chosen Remote Control REMOTE="Hauppauge Nova-T 500" REMOTE_MODULES="" REMOTE_DRIVER="devinput" REMOTE_DEVICE="/dev/input/by-path/pci-2-1-event-ir" REMOTE_LIRCD_CONF="hauppauge/lircd.conf.hauppauge_novat500" REMOTE_LIRCD_ARGS="" #Chosen IR Transmitter TRANSMITTER="None" TRANSMITTER_MODULES="" TRANSMITTER_DRIVER="" TRANSMITTER_DEVICE="" TRANSMITTER_LIRCD_CONF="" TRANSMITTER_LIRCD_ARGS="" #Enable lircd START_LIRCD="true" #Don't start lircmd even if there seems to be a good config file #START_LIRCMD="false" #Try to load appropriate kernel modules LOAD_MODULES="true" # Default configuration files for your hardware if any LIRCMD_CONF="" #Forcing noninteractive reconfiguration #If lirc is to be reconfigured by an external application #that doesn't have a debconf frontend available, the noninteractive #frontend can be invoked and set to parse REMOTE and TRANSMITTER #It will then populate all other variables without any user input #If you would like to configure lirc via standard methods, be sure #to leave this set to "false" FORCE_NONINTERACTIVE_RECONFIGURATION="false" START_LIRCMD=""
/usr/share/lirc/remotes/hauppauge/lircd.conf.hauppauge_novat500
# # brand: Hauppauge NOVA-T-500 # model no. of remote control: Hauppage Nova-T-500 Snowboard Shape Silver over Black # begin remote name NOVA-T500 bits 16 eps 30 aeps 100 one 0 0 zero 0 0 pre_data_bits 16 pre_data 0x1 gap 199999 toggle_bit 0 begin codes Go 0x0162 Power 0x0074 TV 0x0179 Videos 0x0189 Music 0x0188 Pictures 0x00E2 Guide 0x016D Radio 0x0181 ArrowUp 0x0067 ArrowLeft 0x0069 OK 0x0160 ArrowRight 0x006A ArrowDown 0x006C BackExit 0x009E Menu 0x008B VolumeUp 0x0073 VolumeDown 0x0072 PrevCh 0x016B Mute 0x0071 ChannelUp 0x0192 ChannelDown 0x0193 Record 0x00A7 Rewind 0x00A8 SkipBack 0x0195 Play 0x00CF Pause 0x0077 Stop 0x0080 Fwdwind 0x00D0 SkipFwd 0x0197 1 0x0002 2 0x0003 3 0x0004 4 0x0005 5 0x0006 6 0x0007 7 0x0008 8 0x0009 9 0x000A * 0x0037 0 0x000B # 0x0029 one 0x004F two 0x0050 three 0x0051 four 0x004B five 0x004C six 0x004D seven 0x0047 eight 0x0048 nine 0x0049 ten 0x0052 Red 0x018E Green 0x018F Yellow 0x0190 Blue 0x0191 end codes end remote
Utilisation de la Nova-T 500 sous Gutsy
Sous Ubuntu 7.10, réussir à utiliser cette télécommande était beaucoup plus difficile.
Pour la gloire et pour garder une trace ci-dessous les notes prises à cette période :
Téléchargement et copie du firmware
wget http://www.wi-bw.tfh-wildau.de/~pboettch/home/linux-dvb-firmware/dvb-usb-dib0700-1.10.fw sudo cp dvb-usb-dib0700-1.10.fw /lib/firmware
Installation des paquet destinés à la compilation du driver
sudo aptitude install linux-headers-$(uname -r) build-essential linux-source
Installation de mercurial (gestionnaire de code source)
sudo aptitude install mercurial
Récupération des sources du driver avec mercurial
cd /usr/src/ sudo tar -xjvf linux-source-2.6.22.tar.bz2 sudo ln -s /usr/src/linux-source-2.6.22 /lib/modules/$(uname -r)/source cd ~/ hg clone http://linuxtv.org/hg/ cd v4l-dvb
Patch des sources
Dans syslog les messages suivant apparaissent si on n’applique pas ce patch :
Jun 14 14:30:05 mythtv kernel: [ 3510.891747] dib0700: Unknown remote controller key : D 1F
Pour cela on fait :
nano linux/drivers/media/dvb/dvb-usb/dib0700_devices.c
Et on change le code près de la ligne 523
De :
err("Unknown remote controller key: %2X %2X %2X %2X", (int) key[3-2], (int) key[3-3], (int) key[3-1], (int) key[3]); d->last_event = 0; return 0;
En :
err("Unknown remote controller key: %2X %2X %2X %2X", (int) key[3-2], (int) key[3-3], (int) key[3-1], (int) key[3]);
st->rc_toggle=key[3-1];
d->last_event = 0;
return 0;
Configuration avant compilation
sudo aptitude install ncurses-dev sudo make menuconfig
Désactiver ACI mixer dans Audio devices for Multimedia
Compilation
make sudo make install make -C ~/v4l-dvb/v4l install<br id="c91h54" />
Cette compilation est assez longue….
Chargement du firmware
sudo modprobe dvb-usb-dib0700
Faire un cold-reboot et débrancher le secteur entre la phase d’arrêt et de re-démarrage
Installation de lirc
sudo aptitude install lirc
Connaitre le device de la télécommande
cat /proc/bus/input/devices
On doit voir quelque chose comme ceci
I: Bus=0003 Vendor=2040 Product=9950 Version=0100
N: Name="IR-receiver inside an USB DVB receiver"
P: Phys=usb-0000:00:0d.2-1/ir0
S: Sysfs=/class/input/input3
U: Uniq=
H: Handlers=kbd event3
B: EV=3
B: KEY=14afc336 284284d 0 0 0 4 80058000 2190 40000801 9e96c0 0 900200 ffd
sudo nano /etc/lirc/lircd.conf
Copier ceci :
#
# brand: Hauppauge NOVA-T-500
# model no. of remote control: Hauppage Nova-T-500 Snowboard Shape Silver over Black
#
begin remote
name NOVA-T500
bits 16
eps 30
aeps 100
one 0 0
zero 0 0
pre_data_bits 16
pre_data 0x1
gap 199999
toggle_bit 0
begin codes
Go 0x0162
Power 0x0074
TV 0x0179
Videos 0x0189
Music 0x0188
Pictures 0x00E2
Guide 0x016D
Radio 0x0181
ArrowUp 0x0067
ArrowLeft 0x0069
OK 0x0160
ArrowRight 0x006A
ArrowDown 0x006C
BackExit 0x009E
Menu 0x008B
VolumeUp 0x0073
VolumeDown 0x0072
PrevCh 0x016B
Mute 0x0071
ChannelUp 0x0192
ChannelDown 0x0193
Record 0x00A7
Rewind 0x00A8
SkipBack 0x0195
Play 0x00CF
Pause 0x0077
Stop 0x0080
Fwdwind 0x00D0
SkipFwd 0x0197
1 0x0002
2 0x0003
3 0x0004
4 0x0005
5 0x0006
6 0x0007
7 0x0008
8 0x0009
9 0x000A
Star 0x0037
0 0x000B
# 0x0029
Red 0x018E
Green 0x018F
Yellow 0x0190
Blue 0x0191
end codes
end remote
Puis
sudo nano /etc/lirc/hardware.conf
# /etc/lirc/hardware.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS=""
#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD=false
#Try to load appropriate kernel modules
LOAD_MODULES=true
# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="dev/input"
# If DEVICE is set to /dev/lirc and devfs is in use /dev/lirc/0 will be
# automatically used instead
DEVICE="/dev/input/event3"
MODULES=""
# Default configuration files for your hardware if any
LIRCD_CONF="/etc/lirc/lircd.conf"
LIRCMD_CONF=""
sudo /etc/init.d/lirc start irw
Vérifier les touches en les testant successivement (cf. Jaunty)