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 :

Hauppauge Nova T 500

Hauppauge Nova T 500


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)


  • Nom de la télécommande : Hauppauge Nova T 500
  • IR transmitter : none
  • input device : /dev/event/input4

  • 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 :

    Configuration lirc - Choix de la télécommande

    Configuration lirc - Choix de la télécommande

    Télécommande : Hauppauge Nova-T 500


    Configuration lirc - choix du recepteur IR

    Configuration lirc - choix du recepteur IR

    Transmetteur IR : none

    Configuration lirc - choix du device

    Configuration lirc - choix du device

    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
    Noter la valeur en bleu


    Configuration de lirc

    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
    Copier ceci (à adapter avec le device trouvé précedemment) :

    # /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=""


    Démarrer et tester la télécommande
    sudo /etc/init.d/lirc start
    irw

    Vérifier les touches en les testant successivement (cf. Jaunty)


    Les commentaires sont fermés.