Table des matières

Installation d'un Winmodem sous linux

Avertissement Cet article est présent sur ce site à but d'archive.
Les informations y étant contenues peuvent y être obsolètes.

Comment utiliser un Winmodem sous linux (testé sous knoppix 3.2, et slackware 9.0) avec compilation propre d'un noyau sous debian.

Recuperation des pilotes PCTel

les pilotes de ce type de modems sont disponibles sur le site The Unofficial PCTEL modem for linux site . Vous devez récuperer un fichier nommé pctel-0.9.x.tar.gz.

compilation d'un noyau maison

Afin de pouvoir configurer et compiler correctement les sources du pilote, il vous faut un noyau possédant un nom constitué uniquement de chiffres (ex : 2.4.21) , car le script configure va refuser de s'executer jusqu'au bout si le nom du noyau contient des lettres (2.4.21-custom par exemple). Dans certains cas (la slackware par exemple), on peut directement utiliser le noyau d'origine , car il ne contient pas de chaine extraversion.

Pour les autres , il faut suivre les instructions suivantes (la , c'est pour debian et dérivés).

Dans un premier temps, il vous faut récuperer les sources du noyau (de votre choix, mais quelque chose de stable). les cd Debian ou mandrake contiennent les sources du noyau (rechercher kernel-source dans le gestionnaire de paquetages style dselect ou le panneau de configuration mandrake) . Pour les debian et dérivées , il vous faudra le paquetage “kernel-package” afin de creer de créer proprement l'image du noyau . Une fois les sources du noyau installées , elle seront normalement accessibles dans /usr/src (sous debian il faudra décompresser le tar.bz2 en utilisant la commande “tar jxvf kernel-source-2.4.x.tar.bz2”) pour plus de simplicité , il est preferable de creer un lien symbolique nommé linux et qui pointe vers le repertoire des sources du noyau :

cd /usr/src
tar jxvf kernel-source-2.4.21.tar.bz2
rm -f linux
ln -s kernel-source-2.4.21 linux
cd linux
 

Une fois dans le repertoire des sources du noyau , il vous faut editer le Makefile afin de supprimer la chaine EXTRAVERSION

VERSION = 2
PATCHLEVEL = 4
SUBLEVEL = 21
EXTRAVERSION = 
 

On doit maintenant séléctionner ce que l'on souhaite voir apparaitre dans le nouveau noyau en utilisant la commande suivante :

make menuconfig
 

L'ecran de configuration apparait alors : il faut séléctionner en utilisant les touches “y”, “m” et “n”. A savoir : y pour inclure dans le noyau , m pour creer le module (que l'on pourra inclure si on le souhaite lorsque le noyau sera en cours d'execution), et n pour supprimer du noyau.

Pour le noyau en lui meme , il faut absolument le driver du controlleur IDE ou SCSI sur lequel se trouve le disque de démarrage de linux, ainsi que le systeme de fichier utilisé (ext3 , reiserfs , xfs, …) si ce n'est pas le cas, il sera impossible au noyau linux de monter les partitions systemes , ce qui se terminera tôt ou tard par un “kernel panik”.

Afin de pouvoir utiliser le winmodem , il faudra absolument le support PPP du noyau et les options adjacentes (de compression et de filtrage)

Network device support

<*> PPP (point-to-point protocol support)
   (...)
 

Pour les debian, il est necessaire d'inclure dans le noyau les systemes de fichiers ROM et ROM compressée :

File systems

<*> Compressed ROM file system support
<*> ROM file system support
 

En général, une compilation de noyau se solde par l'execution des commandes suivantes (sous slackware par exemple) :

cd /usr/src/linux
make dep modules modules_install bzImage
cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.21
# editer lilo en consequence
 

Pour la debian , on va utiliser kernel-package afin de creer un .deb qui installera automatiquement, le noyau, les modules ,et les entete (.h) :

cd /usr/src/linux
make-kpkg --initrd kernel-image kernel-headers
 

Ceci aura pour effet de creer deux paquetages en .deb que l'on pourra installer de manière totalement anodine : Le temps de compilation du noyau est variable : sur un Celeron mobile 1700 MHz et 256 Mo de RAM , il faut de 6 à 10 Minutes pour compiler la totalité du noyau et de ces modules

cd /usr/src
dpkg -i kernel-image-2.4.21-....custom.deb
dpkg -i kernel-headers-2.4.21-....custom.deb
 

En théorie, le .deb va s'occuper d'ajouter le noyau dans la configuration de LILO afin de pouvoir demarrer dessus dès le prochain reboot. Si ce n'est pas le cas voici le genre de ligne a ajouter dans /etc/lilo.conf. Il faudra executer la commande “lilo” si /etc/lilo.conf est modifié.

image=/boot/vmlinuz-2.4.21
label=LinuxPPP    # choisir le nom
initrd=/boot/initrd.img-2.4.21
read-only

 

Vous pouvez maintenant redémarrer la machine sous le nouveau noyau. en le sélectionnant a l'invite de lilo. si jamais le noyau n'arrive pas à se charger jusqu'au bout, il faut revérifier que l'on a rien oublié dans la configuration.

Compilation et inclusion du driver PCTel

Vous avez démarré votre nouveau noyau, félicitations, le plus dur est fait. on peut vérifier que l'on a bien le bon noyau (avec que des nombres dans son nom) en utilisant la commande “uname -r”.

maintenant passons a l'installation des drivers PCtel :

cd /usr/src
tar zxvf /chemin/vers/pctel-0.9.x.tar.gz
cd pctel-0.9.x.tar.gz
./configure --with-hal=list
./configure --with-hal=votre_modem
make && make install

Si tout c'est bien passé, nous venons de céer deux modules pour le noyau : ptserial, et pctel (accessibles à /lib/modules/2.4.21/kernel/misc/). On peut donc inclure les modules en utilisant modprobe . Des messages kernel apparaitront concernant le periphérique :

modprobe ptserial
tail -10 /var/log/messages


ministux kernel: AC97 modem device found: devnum = 8000FE00, devid = 8086/2446
ministux kernel: iobase_0=0xe200, iobase_1=0xe300,irq=5
ministux kernel: PCTel driver version 0.9.5 [5.05c-4.27.215 (09-14-2001)] (MR) (2002-01-31).
ministux kernel: PCTel driver built on [ "2.4.21 <132117>"] with gcc-gcc (GCC) 3.2.3 (Debian).
ministux kernel: ttyS15 at 0xe200 (irq = 5) is a PCTel
ministux kernel: PCI: Found IRQ 5 for device 00:1f.6
ministux kernel: PCI: Sharing IRQ 5 with 00:1f.3
ministux kernel: PCI: Sharing IRQ 5 with 00:1f.5

Votre modem est maintenant inclus dans votre systeme, ici en tant que /dev/ttyS15 (c'est pas trop tot :o) )

Configuration de pppd

Tout ca c'est bien joli, mais c'est quand que je me connecte a internet ?.

On y arrive justement, il existe de manière générale l'executable ppp-config qui permet la configuration d'une connection internet en RTC. il faut connaître ses identifiants, numero de telephone a appeler et le périphérique a utiliser (les fans d'interface graphique, peuvent également utiliser kppp sous kde). Il faut bien préciser que le peripherique a utiliser est le modem (/dev/ttyS15 dans nôtre cas). Attention néanmoins a ne pas avoir une route par défaut configurée car sinon, la connection ppp sera inefficace. Si on a utilisé ppp-config , il suffit (en tant que root) d'utiliser la commande “pppd call nomconnection” pour ce connecter.

/sbin/route del default	
pppd call clubinternet

N'hésitez pas à utiliser les messages du kernel (“tail -15 /var/log/messages”) lorsque des erreurs subviennent. Le temps de négociation est variable . Lorsqu'il aboutit, on peut utiliser ifconfig pour verifier que ppp0 existe bien et que la ligne est en activité.

inclure automatiquement le module

En ajoutant la ligne “ptserial” au fichier /etc/modules , au redemarrage de la machine, le module sera automatiquement inclus dans le noyau. il n'y aura alors qu'a se connecter . :o)

Dans les dernières version du driver ptserial, il est probable que vous ayez a utiliser le patch fourni qui modifie directement le module compilé afon de le faire fonctionner avec les modules de votre noyau.