Tentative de fonctionnement d'un modem PCI interne. <- LTmodem, quelle galère...

Le problème des driver propriétaires, c'est qu'ils ne sont pas distribués avec en standard ; ils doivent être compilés avec les même paramètres que le noyau lui-même, ce qui demande soit de la chance (trouver le bon paquage), soit un peu de temps (compiler les sources sur sa machine.)
Le site pour winmodem : modem interne, ou dans un portable :
Linmodem.org
Quelques explications générales :
tutorial
Quelques utilitaires pour ltmodem :
LTmodem
le site heby :
heby


Deux possibilité :
installer un rpm pré-compilé (package binaire),
ou compiler les sources.
Pour l'installation d'un binaire, il faut disposer de la version du noyau :

$>> uname -r
2.4.18-3

Dans tous les cas, disposer des informations relatives au modem :
les options -n -v permettent de connaître les informations vendor et device.

$>>./lspci -n -v <- Depuis /sbin
$>>cat /proc/pci
Bus 0, device 6, function 0:
Communication controller: Lucent Microelectronics LT WinModem (rev 0).
IRQ 5.
Master Capable. Latency=64. Min Gnt=252.Max Lat=14.
Non-prefetchable 32 bit memory at 0xe8000000 [0xe80000ff].
I/O at 0x1010 [0x1017].
I/O at 0x1400 [0x14ff].

Vérifier la présence des paquages :
(-qa permet de lister les paquetages installés.)

$>>rpm -qa | grep kernel-source
$>>rpm -qa | grep kernel-headers

Sous Redhat 7.3 seul un paquage kernel-source semble exister.

Pour l'installation des paquetages manquant :

$>>rpm -ivh kernel-XXXXXX

La commande depmod analyse la dépendance des modules;
compatibilité entre le module pré-compilé et le naoyau actif.

$>>depmod -e lt_modem.o
$>>depmod -e lt_serial.o

Un message d'erreur, comme par exemple :
$>>depmod: *** Unresolved symbols in /lib/modules/2.4.18-3/ltmodem/lt_serial.o spécifie donc un problème de compatibilité entre la version compilé (paquetage) et le noyau.
Dans ce cas là, une solution, compiler le driver...
Attelons nous à la lecture de deux fichiers : Flavor.txt puis Compile_properly.txt
Deux choses (est-ce le terme?) sont nécessaires :
Les sources du driver (du type lt_modem-XX.tar.gz)
Les sources de votre noyau Linux. (vérifier avec ls -l /usr/src/linux)

Assurez-vous que le répertoire /sbin appartient bien au PATH.
Il est possible de modifier globalement le path, c'est à dire pour tous les utilisateurs en éditant le fichier /etc/profile. Pour rajouter par exemple le répertoire /sbin au path global, rajoutez les lignes suivantes en fin de fichier :

$>>PATH=$PATH:/sbin
$>>export PATH

Pour que les modifications soient prises en compte, fermez le terminal et ouvrez en un autre.

Compilation et installation à partir des sources : utiliser le fichier ltmodem-8.22a5.tar.gz (par exemple) disponible sur le site heby

$>>ls /usr/src/linux <- On vérifie la présence des sources
$>>cd /usr/src/linux <- Puis, on va sur le répertoire
$>>make mrproper <- et on fait le ménage des vieux débris...
$>>cat /boot/config-version <- Edition du fichier de config, pour le plaisir.
$>>make menuconfig <- Lance le gestionnaire de menu (ou make Xconfig)
@@@ Load an Alternate configuration file <- tout en bas de la liste, chez moi en tout cas.
@@@ utiliser le fichier ci-dessus /boot/config-version
@@@ puis quitter en sauvant. <- La console vous informe (make file, make dep ...)
$>>make dep <- La console venait de vous le dire... Et les ennuis commencent!
??? PATH_MAX undeclared dans mkdep.c $>>tar -xzvf ltmodem-8.22a5.tar.gz
$>>cd ltmodem-8.22a5
$>>tar -xzvf source.tar.gz
$>>cd source
$>>./configure && make && make install
$>>./autoload

Ou alors :
$>>./build_module
qui nécessite d'avoir installé préalablement les sources du noyau.
Plus de détails
Une fois les modules compilés, il faut les installer :
$>>./ltinst2
Puis, afin de charger les modules au lancement du SE :
$>>./autoload
Ce qui sera pris en compte au prochain démarrage du système;
lancer manuellement les driver (dc sans redémarrer cette fois!)

$>>insmod lt_modem
$>>insmod lt_serial
$>>./lsmod (pour vérifier le chargement des 2 modules précédents)

...unresolved symbol... spécifie un problème entre de correspondance entre le noyau et le paquetage utilisé. Quoi qu'il en soit, une fois ici, les modules sont installés et chargés (par compilation ou issuent du paquage)
Il ne reste plus qu'a configurer la connexion; un modem externe utilse généralement le port série /dev/ttyS0 ; votre modem interne utilisera par contre /dev/ttyLT0
A priori, un lien pointe sur le périphérique :

$>>ls -l /dev/modem

Voilà, le disque dur vient de lacher, la cause est abandonnée.

Retour à la page d'acceuil

FP/Albedo--Sceaux-30/09/2003