Ceci est une ancienne révision du document !
Clé TNT Terratec XXS
Je vais décrire ici l'installation de cette clé TNT, avec utilisation de la télécommande.
Cette clé marche sans manipulations supplémentaires pour la réception TNT, cependant, un bug nous oblige à re-compiler le module pour pouvoir bénéficier de la télécommande.
Pour vérifier si vous êtes affectés par ce bug, branchez la clé, et appuyez sur des touches de la télécommande, puis lancez
dmesg | tail
Si vous voyez des lignes du type :
Jun 5 10:58:02 amd64 kernel: dib0700: Unknown remote controller key: 0014 10 ef Jun 5 10:58:05 amd64 kernel: dib0700: Unknown remote controller key: 0014 02 fd Jun 5 10:58:05 amd64 kernel: dib0700: Unknown remote controller key: 0014 02 fd
Cela veut dire que votre module noyau ne reconnais pas votre télécommande, uniquement dans ce cas, réaliser la suite du tutoriel.
Pré-requis
- Disposer des droits d'administration.
- Disposer d'une connexion à Internet configurée et activée.
Installation
Pour installer ce matériel, il suffit d'installer les paquets build-essential, linux-headers-generic, linux-source.
On commence par décompresser les sources de Linux :
cd /usr/src sudo tar xvjf linux-source-$(uname -r | cut -d "-" -f 1).tar.bz2
Préparer la compilation du noyau :
cd /usr/src/$(uname -r | cut -d "-" -f 1)
Récupère la configuration actuelle et l'applique
sudo cp -vi /boot/config-`uname -r` .config sudo make oldconfig
Création de liens manquants :
ln -s /usr/src/linux-source-$(uname -r | cut -d "-" -f 1)/ubuntu /ubuntu sudo ln -s /usr/src/linux-source-$(uname -r | cut -d "-" -f 1) /usr/src/linux
Copie de la définition des symboles (de débogage je crois)
sudo cp /usr/src/linux-headers-$(uname -r | cut -d "-" -f 1)/Module.symvers ./ #Copy symbols dependencies
Faire pointer build au bon endroit
cd /lib/modules/`uname -r` sudo rm build sudo ln -s /usr/src/linux-source-$(uname -r | cut -d "-" -f 1) build
Corriger l'erreur dans le module : éditer /usr/src/linux-source-$(uname -r | cut -d "-" -f 1)/drivers/media/dvb/dvb-usb/dib0700_devices.c avec les droits super-utilisateurs. Chercher : "Unknown remote controller" vous trouverez quelque chose du genre :
err("Unknown remote controller key: %2X %2X %2X %2X", (int) key[3-2], (int) key[3-3], (int) key[3-1], (int) key[3]);
Vous verrez peu après :
/* Key codes for the Terratec Cinergy DT XS Diversity, similar to cinergyT2.c */ { 0xeb01, KEY_POWER }, { 0xeb02, KEY_1 },
Remplacer tous les "eb" par des "14" uniquement dans cette suite de ligne, s'arreter avant les prochains commentaires (ligne commençant par /* ), et ne tentez pas de faire votre malin(e) et copiant le bloc plus bas et en modifiant les valeurs sur la copie, cela ne marchera peut être pas.
Préparer la compilation :
cd /usr/src/linux-source-`uname -r` sudo make prepare #Prepares make to compile kernel sudo make modules_prepare #Prepares make to compile kernel modules
Compiler les modules nécéssaires
sudo make modules SUBDIRS=drivers/media/dvb/dvb_usb sudo make modules SUBDIRS=drivers/media/dvb/frontends sudo make modules SUBDIRS=drivers/media/dvb/dvb-core
Copier les nouveaux modules pour les utilisés à la place des autres :
sudo cp drivers/media/dvb/dvb_usb/*.ko /lib/modules/`uname -r`/kernel/drivers/media/dvb/dvb_usb sudo cp drivers/media/dvb/frontends/*.ko /lib/modules/`uname -r`/kernel/drivers/media/dvb/frontends sudo cp drivers/media/dvb/dvb-core/*.ko /lib/modules/`uname -r`/kernel/drivers/media/dvb/dvb-core