Linmodem-HOWTO

Sean Walbran sean(at)walbran.org and Marvin Stodolsky stodolsk(at)erols.com

v0.43, 24 February 2001

Traduction française 30 Avril 2003 - 27 Juin 2003 - Laurent ROGER rogerl(at)wanadoo.fr


Ce document décrit le support des Linmodem (matériel à base de winmodem sous Linux.) Ce support est limité (en général aux modules binaires, non supportés, des fabricants) mais le nombre de chipsets supportés augmente rapidement.


1. Introduction

2. Linmodems

3. Configuration générale et module noyau

4. Trucs et astuces pour les modules précompilés avec différentes versions de noyau

5. Chipsets spécifiques et leurs drivers

6. Difficultés

7. FAQ

8. Appendice


1. Introduction

Ceci est le document Linux Linmodem HOWTO . C'est un guide rapide pour vous aider à vérifier que votre winmodem fonctionne sous Linux et si celà est le cas comment l'utiliser. Notez bien qu'il se peut qu'il n'y ait aucun support pour votre winmodem, souvent fourni sous la forme d'un binaire non supporté par le vendeur (mais il existe aussi quelques projets opensource).

La meilleure solution est certainement d'utiliser un véritable modem matériel sous Linux. Mais si vous n'avez pas d'autre solution qu'un winmodem, ce document doit vous aider.

Pour des informations à jour sur les drivers Linmodem, consulter le site de Rob Clark, cette page, et l'archive de la liste de diffusion Linmodems.org. Les informations sur les modems, comme les paramètres d'interruptions IRQ ou les scripts de connexion, sont traités dans les Howto Modem-HOWTO, Serial-HOWTO, PPP-HOWTO, et ceux sur le site Linux Documentation Project.

1.1 Copyright

Copyright (c) 2000,2001 by Sean Walbran, Marvin Stodolsky

Please freely copy and distribute (sell or give away) this document in any format. It's requested that corrections and/or comments be fowarded to the document maintainer. You may create a derivative work and distribute it provided that you:

If you're considering making a derived work other than a translation, it's requested that you discuss your plans with the current maintainer.

1.2 Avertissement

Utiliser les informations dans ce document à vos risques et périls. Nous déclinons toute responsabilité pour le contenu de ce document. L'utilisation des concepts, exemples et/ou contenu de ce document est à vos risques et périls.

Tous les copyrights appartiennent à leur propriétaire sauf annotation particulière. L'utilisation d'un terme dans ce document ne doit pas altérer la validité d'une marque déposée. En particulier, comme le terme "winmodem" est une marque déposée de US Robotics/3Com, nous utilisons le terme "winmodem" ici comme le fait Rob Clark: doit être lu comme "Winmodems(tm), host-based modems, HCF-modems, HSP-modems, and all similar modem-like hardware.".

Linux est une marque déposée de Linus Torvalds.

L'utilisation de noms de produits ou de marques ne constituent pas une qualification de notre part.

Il est fortement recommandé de faire une sauvegarde des données importantes et/ou "indispensables" avant toute procédure d'installation.

1.3 Credits

Most individual credits are given in the body of the text where appropriate.

A large amount of information contained in this document comes a variety of great sources such as Rob Clark's site, the Linmodems.org, mailing lists, and Werner Heuser's Mobilix pages.

Special thanks to Mark Spieth (mark(at)digivation.com.au) for discussions, advice, and multiple and ongoing contributions.

This document itself was created using the SGML HOWTO template created by Stein Gojen, as described in the HOWTO-HOWTO. site.

1.4 Updates and Corrections

La version la plus récente en HTML de ce document est disponible sur http://walbran.org/sean/linux/linmodem-howto.html, sur un seul fichier HTML sur http://walbran.org/sean/linux/linmodem-howto-all.html, en source SGML à http://walbran.org/sean/linux/linmodem-howto.sgml.

The old version of this document was getting huge and unwieldy, so this rewrite seemed necessary. To avoid the total loss of that information, a copy of the old version is maintained at http://walbran.org/sean/linux/linmodem-howto-old.html.

Do you have a Linmodem which works, but is not described here? Are you developing a driver? Do you think something in this document is incorrect or misleading? Do you think that your or someone else's work has been used here but not appropriately credited? Please don't hesitate to email me at sean(at)walbran.org with corrections and suggestions.


2. Linmodems

2.1 Qu'est ce qu'un Linmodem?

Un Linmodem est une implémentation sous Linux d'un "winmodem" (voir avertissement). Ces équipements sont moins qu'un modem au sens qu'ils dépendent d'un logiciel pour réaliser plus ou moins les fonctions traditionnellement réalisées par un modem matériel. La justification en est que le logiciel est moins cher que le matériel, peut être mis à jour sans tournevis (normallement). Cependant, pour que ce modem fonctionne, celà nécessite un logiciel spécifique du système d'exploitation.

2.2 Quel matériel (chipset) est supporté ?

De plus en plus de winmodems fonctionneront sous Linux. Chaque chipset pour lequel un driver existe a une section ci dessous dans ce document, qui décrit son installation. Tout autre chipset n'a pas de support connu sous Linux (en tout cas , pas de nous).

2.3 Comment savoir si mon modem Wooloo 9.8.7 a un de ces chipsets?

Information sur le système

L'information sur le matériel installé peut être collectée avec les commandes suivantes :

MarvS signale que le Gestionnaire de périphérique de Windows fournit également des informations similaires, mais le constructeur renseigne simplement le nom commercial du modem et cette information n'est pas aussi utile que souhaitée (ex : quel type de chipset a un modem "Compaq Internal 56k" ?). Des informations supplémentaires peuvent être obtenues en activant le journal de connexion sous Windows à l'aide des propriétés de la connexion utilisée dans "Accès réseau à distance". Le fichier produit est C:\WINDOWS\MODEM.LOG. il contient la chaine d'initialisation du modem, et sans doute le nom du fichier de configuration, qui peut également fournir des informations utiles.

Noms de modem et numéros d'identification

Si vous connaissez le nom précis de votre modem, vous pouvez chercher dans la base de donnée sur le site de Rob Clark. La couleur/lettre sur le coté gauche de la table indique si votre modem est connu comme fonctionnant ou pas sous Linux. Le code "LM" indique un LinModem et les notes indiquent quel driver est nécessaire. Un "WM" signifie qu'il s'agit d'un winmodem et qu'il n'y a pas de support pour Linux. Attention, des modems au nom similaire ne contiennent pas forcément les mêmes chipsets et ne fonctionnent pas de la même manière ! Votre CrakBoum LX56 et le CrakBoum GT56 de votre ami peuvent avoir des comportements différents.

Si vous ne connaissez pas le nom précis de votre modem, vous pouvez chercher à l'aide du numéro d'identification du modem (sur chaque modem doit être imprimé un numéro d'identification qui est soit celui du constructeur soit l'enregistrement auprès de la FCC). Une photo d'exemple de ce numéro d'identification est est sur le site de Rob Clark http://www.idir.net/~gromitkc/fcc1.jpg) . Utilisez la recherche dans la page de votre navigateur pour obtenir les informations sur le chipset/modem dans cette table . Sinon utilisez la base de données de US Federal Communications Commission (FCC) sur http://www.fcc.gov/oet/fccid/. Suivez attentivement les instructions, ne confondez pas le O (la lettre) avec le 0 (le chiffre) et autres sources de confusion.

Portables avec modem interne.

Il est possible que vous ne puissiez pas ouvrir votre portable pour y récupérer l'identifiant, que vous projettiez d'acheter une machine et que le vendeur ne vous fournisse pas l'information ou ne vous prête pas l'équipement. Dans ce cas, vous pouvez essayer :


3. Configuration générale et module noyau

3.1 Support de module noyau

Tous les pilotes de noyau listés ici sont des modules noyau; aussi vous devez vous assurer que votre noyau supporte les modules. De plus, le support de la version des modules doit être activé de façon à permettre l'emploi de noyau et de modules qui ne sont pas versionnés, comme indiqué plus loin. Si votre noyau Linux est récent, le support de module est déjà activé. Si vous compilez votre noyau, vous devez être capable d'activer les modules à l'aide du Kernel HOWTO. Dans ce cas, vous pouvez vérifier que les paramètres suivants sont dans votre fichier de configuation du noyau (en général sous /usr/src/linux):

CONFIG_MODULES=y
CONFIG_MODVERSIONS=y

3.2 ISA Plug-n-Play

Si votre modem est du type ISA Plug-n-Play modem, vous utiliserez isapnptools pour allouer les ressources de votre carte modem. Pour celà, isapnptools doit être installé et le fichier /etc/isapnp.conf doit comporter une ligne pour le modem. Vous devriez lire les pages du manuel et Plug-and-Play-HOWTO, mais si vous n'avez pas d'autres périphériques ISA, voici tout ce que vous devez faire :

  1. Si possible configurez votre BIOS en "Non-PNP OS."
  2. En tant que root, lancez pnpdump pour générer un fichier isapnp.conf basé sur les cartes reconnues et sur l'utilisation des ressources de votre système.
  3. Recherchez votre modem dans le fichier et supprimer les commentaires des lignes qui correspondent à l'IRQ que vous souhaitez utiliser avec le modem. Par exemple, le fichier isapnp.conf pour un Thinkpad i1411 avec un modem Lucent LT contient :

    (CONFIGURE ACRd119/1 (LD 0                   
      (INT 0 (IRQ 11 (MODE +E)))                   
      (IO 1 (SIZE 8) (BASE 0x0100) (CHECK))       
      (NAME "ACRd119/1[0]{LT Win Modem        }") 
    # (ACT Y)                                    
    ))                                           
    
    Etrangement, au moins dans ce cas, il est nécessaire de laisser la ligne #(ACT Y) en commentaire.Si ça ne marche pas pour vous d'une façon, essayez l'autre façon.
  4. Copîer le fichier vers /etc/isapnp.conf
  5. Redémarrer. Au boot, vous devez voir un message du type 'Initializing ISA PNP devices...OK' . Si celà ne fonctionne pas, vous avez probablement choisi un IRQ/DMA qui est déjà utilisé; essayez en un autre selon les propositions issues du pnpdump. (Notez qu'il n'est pas nécessaire de redémarrer si vous utiliser isapnp avec les bonnes options, mais, pour le débutant, il est plus aisé de simplement redémarrer).

3.3 Modem PCI

Si vous souhaitez en savoir plus sur votre modem PCI que ne donne cat /proc/pci gives, utilisez les utilitaires fournis avec pciutils comme scanpci et lspci. En particulier, lspci -vv fournit beaucoup d'informations pratiques et utiles.

3.4 Gestion des modules

Les commandes suivantes sont utilses pour la gestion des modules. Elles requièrent pour la plupart des droits root, se reporter aux pages du manuel (e.g., man insmod) pour des informations plus détaillées sur ces commandes.

insmod, insmod -f, et modprobe

Un module versionné de noyau devrait être nortmallement inséré en utilisant la commande modprobe nom_du_module , modprobe essaye d'insérer tout autre module dépendant (comme déterminé par depmod, décrit ci dessous).

Un seul module peut être inséré (sans les modules sur lesquels il dépend) en utilisant la commande insmod nom_du_module . Si le module a été compilé en utilisant une autre version de noyau que la version actuelle, insmod signale une erreur de version et rejette le chargement du module. Il est possible de forcer le chargement malgré l'erreur : insmod -f nom_du_module . Si l'interface du noyau utilisée par le module n'a pas changé par rapport à celle du noyau, le module sera inséré et pourrait être fonctionnel.

Celà est le cas par exemple du module pour le modem ESS, qui bien que compilé pour 2.2.12 peut être inséré avec des noyau plus récent et fonctionne jusqu'au noyau 2.2.14 sans aucun changement; après 2.2.15, un patch à tty.h décrit ci dessous est requis. Pour les noyaux 2.4, l'insertion forcée échoue.

rmmod

Un module peut être déchargé (supprimé du noyau) après la commande rmmod.

depmod

La commande depmod analyse les dépendances entre module. La compatibilité de modules précompilés avec le noyau actif peut être testé avec la commande :

   depmod -e ltmodem.o
Avec l'exemple du module ltmodem.o compilé sous le noyau 2.2.12 avec un noyau actif 2.2.17, l'information retournée comprend les indications suivantes : L'utilisation d'un module avec des symboles non résolus peut être dangereux, comme indiqué ci dessous.


4. Trucs et astuces pour les modules précompilés avec différentes versions de noyau

Beaucoup de drivers pour linmodem ne sont disponibles qu'en modules binaires précompilés pour le noyau. En général, les modules et binaires ne fonctionnent de façon transparente qu'avec le noyau pour lequel ils ont été compilés. Il peut être particulièrement délicat de faire fonctionner un driver de linmodem précompilé pour votre version particulière de noyau.

Alors le noyau Linux change dynamiquement, il est malheureux de constater que beaucoup de vendeurs de modem et de composant n'ont pas encore choisi de fournir leur code source de driver ce qui permettrait à chacun de les modifier au fur et à mesure que le code source du noyau évolue. Certains modules binaires peuvent fonctionner à l'aide d'astuces propres à des versions plus anciennes de noyau, comme décrit ci dessous; cependant même si ce module semble fonctionnel, il est conseillé de l'utiliser au minimum. Citons un message de Mark Spieth :

"Un driver ne pourra jamais fonctionner correctement s'il y a des symboles non résolus, ceci signifiant que quelquechose ne fonctionnera pas. De plus, cela signifie que quelquechose qui aurait du être appelé, celà appelera autre chose dans le noyau et celà peut être n'importe quoi. C'est très mauvais"

Par conséquent, vous devez faire très attention en cas d'utilisation d'un module binaire avec une version différente du noyau. C'est à vos risques et périls. Si vous avez besoin que votre modem fonctionne, considérez plutôt de diminuer la version de votre noyau au niveau requis par le module - ce n'est pas une hypothèse ridicule. Malgré ces avertissements, plusieurs utilisateurs ont utilisé des modules et noyaux inappropriés avec quelques inconvénient mineurs (comme un kernel panic) en utilisant les trucs et astuces suivants.

4.1 Fixscripting

Mark Spieth a fournit de nombreux "fixscripts" pour éditer un module binaire afin d'éliminer les avertissements relatifs à la version incorrecte. L'insertion du module "corrigé" se fait sans l'option de forcage, c'est à dire simplement insmod nom_du_module. Les versions les plus récentes renomment également les symboles du module en cohérence avec ceux du noyau,ce qui fait que les erreurs de symboles non résolus ("Unresolved symbols") ne sont plus retournés par le test depmod -e. Notez bien que ces changements ne sont que superficiels - il est toujours recommandé d'utiliser au minimum ce module.

Pour utiliser fixscript , par exemple, sur le binaire du module Lucent tmodem.o, créer un répertoire de travail comme /root/modem. Récupérer la dernière version de fixscript sur http://www.test.dclabs.com.au/linmodem/fixscript. Nommez le fichier fixscript. Vérifier avec less ou votre éditeur favori que les sauts de ligne DOS n'ont pas été inopinément inclus. Ils apparaissent comme M en gras, M souligné ou ^M selon le visualiseur ou l'éditeur. NOTE: le visualiseur more NE visualise PAS ces sauts de ligne DOS .

Transformer le fichier en exécutable avec chmod +x fixscript. Generer un module "corrigé" avec i.e.,

    ./fixscript ltmodem.o ltmodem2217.o

En testant les dépendances du module, il ne doit plus y avoir d'erreurs :

    depmod -e ltmodem2217.o

et l'insertion doit réussir avec un simple, non forcé,

    insmod ltmodem2217.o

Le code source fournit avec certains modules PCTel (un petit fichier C) réalise le même traitement cosmétique lorsqu'il est compilé et linké avec les librairies binaires de ces packages; à la différence du driver partiellement source ouverte Lucent, il ne compense aucunement les changements dans l'interface du noyau.

4.2 Patcher tty.h

Lorsqu'il a cherché à faire fonctionner le driver original LT modem (version 5.68) avec des noyaux supérieurs à 2.2.14, Mark Spieth a noté qu'un simple changement dans les sources du noyau corrige une incompatibilité majeure entre les versions de noyau 2.2.14 et 2.2.16. Ce patch n'est plus nécessaire avec la version 5.78, mais il reste utile pour ceux qui utilisent des drivers compilés avec des noyaux pre-2.2.15.

La version patchée 2.2.17 tty.h et quelques packages de noyau compilés avec ce patch sont disponibles sur http://walbran.org/sean/linux/stodolsk/. Si vous voulez faire l'édition vous même, la ligne à décaler est dans la structure tty_struct dans le fichier include/linux/tty.h; il y a un item additionnel poll_wait dans les noyaux suivants. Déplacer cet item en base de la structure, afin que les offsets restants soient conservés par rapport aux versions plus anciennes que la 2.2.15, et donc compatible avec les modules précompilés du noyau. Vous devez recompiler le noyau et les modukes après le changement dans le source.

4.3 Utiliser ppp.o du noyau 2.2.14

Une astuce pour les modules binaires avec les noyaux supérieurs au 2.2.15 qui ne nécessite pas de recompilation du noyau; cependant suiteà la découverte du patch tty.h ci dessus, cette astuce n'est ni nécessaire ni recommandée. Il consiste à remplacer le module /lib/modules/net/ppp.o avec un issu du noyau 2.2.14. Christoph Hebeisen (cth(at)sfu.ca) a signalé que l'utilisation de la version 2.2.14 de ppp.o plutôt que celle de la version 2.2.16 avec le module Lucent permet de fonctionner sous noyau 2.2.16 . Willie Green (willjr(at)lcc.net) confirme que cette astuce fonctionne également avec le module ESS. Après une simple insertion d'un module supporté en bonne version :

    insmod slhc
le module ppp.o issu du noyau 2.2.14 est inséré :
    insmod -f ppp.o 
Nous souhaitons insister sur le fait que cette astuce est moins stable que le simple changement de fichier source du noyau tty.h, comme décrit ci dessus.


5. Chipsets spécifiques et leurs drivers

5.1 IBM Mwave (Thinkpad 600E)

IBM a un driver open source (sous GPL) pour le modem logiciel de leur Thinkpad 600E , il est disponible ici.

5.2 Lucent LT

Généralités

Ce modem offre le meilleur support sous Linux , Il est décliné en 3 drivers :

Signalons que le module binaire (issu de "linux568.zip") contient du code provenant du driver Linux serial.c sous license GPL, donc, comme le source du driver n'est pas disponible, traffiquer dans ce driver est apparemment une violation de la license GPL. La distribution du driver partiellement open source ("i56lvp578.zip") est ou n'est peut être pas techniquement légale en raison du code GPL mais tant qu'il n'est pas linké avec le code source fermé, ça l'est certainement. Se reporter à this Kernel Traffic issue et à l'archive de la liste de diffusion Linux-Kernel pour la semaine du 3 Déc 2000, pour plus de détails.

Driver v5.78(c,d,e,...) - Installation

Vous devriez obtenir la dernière version pour votre noyau sur htttp://walbran.org/sean/linux/stodolsk/ et suivre les instructions à jour qui y sont données.

Manufacturer's driver version 5.68 - Installation

Ce driver est remplacé par la version 5.78, décrite ci dessus, mais il est toujours possible de l'utiliser dans certains cas particulier.

  1. Récupérer la distribution pour votre noyau :
    1. 2.2.12 à 2.2.15 http://linmodems.org/linux568.zip
    2. 2.2.15 et plus : même URL, mais le patch "tty.h" est requis; voir ci dessus.
  2. unzip linux568.zip
  3. su (entrer le mot de passe root)
  4. ./ltinst (ignorer l'erreur 'file not found' due à un oubli dans le script.)
Votre modem doit être accessible comme le périphérique /dev/modem ou /dev/ttyS14.

Open Source Tools - Installation

Se reporter à la documentation fournie avec le source.

5.3 ESS

Généralités

Les drivers binaires pour ES56T-PI (PCI) and ES56V-I (ISA), compilés sous RedHat 6.0's noyaul 2.2.12-20, sont disponibles. Ce driver a été utilisé avec l'insertion forcée jusqu'au noyau 2.2.15 et jusqu'au noyau 2.2.17 avec le patch tty.h décrit plus haut.

Installation

  1. Récupérer le package pour votre modem:
  2. Pour les noyaux à partir de 2.2.15 , appliquer le patch tty.h (voir ci dessus "Trucs et astuces ...," ); recompiler le noyau et les modules.
  3. Décompresser le package avec : unzip nom_du_package
  4. Passer super utilisateur (root) : su (saisie le mot de passe de root à l'invite)
  5. Créer le fichier de périphérique : mknod /dev/esscom c 127 1
  6. Ajouter le nom usuel de périphérique : ln -s /dev/esscom /dev/modem
  7. Ajouter le nom usuel de périphérique : ln -s /dev/esscom /dev/ttyS15
  8. Modifier le groupe du périphérique : chgrp uucp /dev/esscom
  9. Modifier les droits du périphérique : chmod 666 /dev/esscom
  10. Traiter la version du module (voir ci dessus "Trucs et astuces ...," ): ./fixscript essmodem.o essmodem.fix.o
  11. Installer le fichier du module : cp essmodem.fix.o /lib/modules/`uname -r`/misc/essmodem.o
  12. Inserer le module dans le noyau : insmod -f essmodem
  13. (Optionel) Automatiser le chargement du module en ajoutant une ligne "alias char-major-127 essmodem" au fichier /etc/modules.conf ou /etc/conf.modules

5.4 PCTel

Généralités

Les drivers binaires sont sur http://www.idir.net/~gromitkc/winmodem.html#drivers.

Un package d'installation à-la-Debian pour les noyaux 2.2.16 a été réalisé par Corel sur ftp://ftp.corel.com/pub/linux/CorelLinux/dists/corellinux-1.2/corel/binary-i386/utils/pctel-kernel-2.2.16-driver-cdl-v1.0_1.0.deb, bien que ce lien semble incorrect maintenant. Un package dérivé du .deb compressé avec gzip et sauvegardé avec l'utilitaire tar est disponible ici. En plus, un drive rpour les noyaux 2.4 a éré proposé par Thomas Wright, et est aussi disponible ici. D'autres packages, nécessitent la compilation décrite ci dessous, semblent également exister.

Installation

Il y a deux types de package pour les modules pour PCTel.

  1. Un package (rpm ou deb) qui installe deux fichiers pour le module , pctel_hsp.o et pctel_pci.o, dans /lib/modules/2.2.16.

    Avec ce package sur vous tourner un noyau plus récent que 2.2.16, vous devrez forcer l'insertion (insmod -f), et si celà ne fonctionne pas , devriez essayer la méthode "fixscript" utilisée pour le Lucent 5.68 et les modules ESS modules ci dessus - mais notez bien qu'à notre connaissance celà n'a pas encore été testé. Si vous tourner un noyau antérieur au 2.2.16, considérez mettre à niveau votre noyau ou sinon essayer le fixscript (aucune garantie de succès). Contactez moi si vous le faite.

  2. Un package qui fournit après décompression un ensemble de libriairies (hsp.a, etc...) et un petit fichier source en C (ptmodule.c), dans les répertoires comme lib/ et src/module/. S'il n'y a pas ces répertoires, créer les et déplacer y les fichiers à l'aide des commandes suivantes :
    mkdir lib
    mkdir src
    mkdir src/module
    mv *.a lib/
    mv Makefile *.c src/module
    

    Allez dans le répertoire src/module et tapez make. Ceci construit le fichier de module pctel.o, qui doit apparaître dans le répertoire lib. (Le module pour le driver n'est pas le fichier objet ptmodule.o dans src/module!) La version apparente du module généré de cette façon va ainsi correspondre avec la version de votre noyau.

Avec les modules ainsi obtenus, précéder de la façon suivante :

  1. Passer en super utilisateur (root) : su (saisie le mot de passe de root à l'invite)
  2. Créer le fichier de périphérique : mknod /dev/pctel c 62 79
  3. Ajouter le nom usuel de périphérique: ln -s /dev/pctel /dev/modem
  4. Ajouter le nom usuel de périphérique: ln -s /dev/pctel /dev/ttyS15
  5. Modifier le groupe du périphérique: chgrp uucp /dev/pctel
  6. Modifier les droits du périphérique : chmod 666 /dev/pctel
  7. Installer le fichier du module (seulement pour le cas n°2, ci dessus) : cp pctel.o /lib/modules/`uname -r`/misc/
  8. Inserer le(s) module(s) dans le noyau avec insmod -f nomdumodule

5.5 Conexant/Rockwell HSF

IL existe des drivers pour les noyaux 2.2.14, 2.2.16, et 2.2.17 sur http://www.olitec.com/pci56kv2.html . Cette page est en français, avec les commandes d'installation en texte rouge et gras. En bref, télécharger le package approprié, décompresser le avec tar -zxvf, et lancer le script d'installation ins_all.

Ce driver est un peu délicat (le symptome d'échec le plus courant est la réponse "NO DIALTONE" - pas de porteuse), mais plusieurs personnes l'ont fait fonctionner, en insérant l'ID de leur vendeur de modem dans le fichier.inf, et sans doute gràce à un changement de 254 à 253 pour le "major number" du périphérique. Se reporter aux archives de la mailing list Linmodems.org pour plus de détails, un exemple parmi d'autres étant ici.

5.6 Intel (anciennement Ambient Technology, anciennement Cirrus Logic)

Mikhail Moreyra a écrit un driver sous license GPL pour le chipset CL-MD5620DT qui peut fonctionner jusqu' à 33.6 kbps; Cependant, c'est une version alpha et il faut donc faire très attention. Le driver peut être obtenu sur http://linmodems.org/CLModem-0.3.0.tar.gz. Gabriel Gambetta (ggambett(at)internet.com.uy) propose une version modifiée du driver qui permet d'utiliser les commandes de modem AT standard, vous pouvez avoir cette version sur le site de Rob Clark ici.

Un driver pour le modem HaM modem a été en beta test au début de 2001 et devrait être disponible assez rapidement.

5.7 3Com

56k

Un package rpm pour le driver du modem 3Com MDP3900V-U ( que l'on trouve apparamment dans les Dell Dimension L733r) a été transmis à la liste de diffusion Linmodems.org ( cliquer ici pour plus d'informations), il y a une copie ici.

Mini-PCI

Sur la liste de diffusion Linmodems.org, un message a été posté ici pour avis concernant la demande auprès de 3Com de mise à disposition d'un driver binaire pour le miniPCI (combinaison d'un NIC/winmodem). Merci d'y répondre à l'adresse citée linmodem@new-n-used.com, et pas à la liste de diffusion. A ma connaissance aucun driver n'a été diffusé. La page de Werner Heuser's "miniPCI page" a plus d'informations et de liens.

5.8 AMR

Ian Stewart signale qu'il travaille sur un driver pour le codec AC97.


6. Difficultés

Vous avez donc lu ce document, ces 2 là aussi : Modem-HOWTO et PPP Howto, vous êtes sur que votre modem est bien un de ceux dont les drivers sont disponibles, mais celà ne fonctionne toujours pas ? Voici les points à vérifier :

Linux effectue en général des enregistrements (log) des connexions réseau qui sont très intéressantes pour la résolution des problèmes. Les noms des fichiers varient suivant les distributions Linux et les logiciels de numérotation, mais les fichiers d'enregistrement système /var/log/messages, /var/log/syslog, etc.., doivent fournir un peu d'information.

Autant pour vos investigations que pour les demandes auprès d'une liste de diffusion, il peut être utile de collecter l'information décrite ci dessous. En tant que super utilisateur, aller dans le répertoire ou sont les scripts d'installation du modem, et lancer un enregistrement des commandes passées comme indiqué ci dessous. Après que ce script se soit terminé avec exit, copier le en vue de sa transmission à la liste qui peut vous aider.

(Below, # are explanatory comments.)

# démarre l'enregistrement
script ModemTest.txt 
# consigner autant que possible les informations relatives à votre modemtype in as much info on your Modem card as you have
echo nom du winmodem , fabricant, désignation, composant si possible 
# ceci donne votre version de noyau actuelle 
uname -r
# ceci donne des informations sur vos ports série
setserial -agv /dev/ttyS*
# les informations sur vos interruptions (irq)
cat /proc/interrupts
# affiche le contenu du script d'installation du module (remplacer nom_du_script par le bon nom):
cat nom_du_script
# vérifie que le script est executable :
ls -l ScriptName
# la réponse est bonne s'il y a un "x" comme ci dessous:
# -rwxrw-rw-  1 root     root  654 Jan  6  2000 ltinst
# sinon render le executable avec :
chmod o+x nom_du_script
# vérifier avec
ls -l nom_du_script
# si nom_du_script n'a pas déjà été correctement exécuté sous ce noyau 
# lancer le avec :
./nom_du_script
# quel est le lien symbolique de  /dev/modem :
ls -l /dev/modem
# quel est le nom_du_périphérique définit dans nom_du_script (/dev/ttyS14 or ...?)
echo nom_du_périphérique
# quel est le nom de votre driver de modem ? quelquechose comme nom_du_périphérique.o
# le ".o" indique que c'est un binaire compilé
echo This is my nom_du_périphérique.o
# il doit être dans la liste des modules
# essayer le l'afficher avec :
find /lib/modules | grep nom_du_périphérique
# identifier nom_du_périphérique parmi les modules installés dans le noyau courant ? 
lsmod
# s'il n'y est pas essayer une insertion simple 
insmod ./nom_du_périphérique.o
# ou s'il est dans la liste des modules, ceci suffit :
insmod nom_du_périphérique
# vérifier l'insertion :
lsmod
# s'il n'est pas inséré , essayer en forcant 
insmod -f ./nom_du_périphérique
# lister les modules de nouveau .
lsmod
# si nom_du_périphérique n'est PAS listé 
# il y a une incompatibilité entre le matériel, le driver et le noyau.
# Tout effort supplémentaire n'est d'aucun intérêt
# si nom_du_périphérique est listé, recherchon un peu plus d'information
# relancer l'utilitaire de configuration utilisé pour les connections téléphoniques de
# votre installation Linux. Rappeler vous de noter le mot de passe pour plus tard.
# Il vous demandera probablement les informations suivantes déjà en votre possession
# Port à utiliser (/dev/modem ou /dev/ttySn), numéro d'appel, nom d'utilisateur et mot de passe
# Lancer l'utilitaire de configuration.
Utilisataire_de_configuration
# Pour arrêter l'enregistrement
exit

Si la connexion n'a pas été réussi, ajouter des éléments en provenance des fichiers d'enregistrements (log). Par exemple une partie de /var/log/syslog pour un Linux Debian.


7. FAQ

7.1 J'ai un winmodem. Est ce qu'il fonctionne sous Linux?

Probablemen pas. Regardez le paragraphe "Quel matériel (chipset) est supporté" ci dessus et vérifier la base de compatibilité des modems Linux sur le site de Rob Clark's.

7.2 Je n'ai pas de tonalité ("NO DIALTONE")

Paramètrer l'option du BIOS de "PNP OS" à "non-PNP OS" , de "Windows" à "Other OS", ou tout autre équivalent.

Pour les utilisateurs de matériel Conexant, voir le § Conexant section, ci dessus.

7.3 J'ai une erreur "device or resource busy" (périphérique ou ressource occupée).

7.4 J'ai des symboles non résolus lors du fixscripting/insmoding.

Les symboles non résolus résultent fréquemment d'erreurs de version et sont en général inévitables avec des modules binaires. Si "fixscript" aboutit à des symboles non résolus ou que le module ne fonctionne pas malgré des symboles non résolus , il est probable que la combinaison noyau - module soit défaillante. Cependant les cas suivants de symboles peuvent être rencontrés :

Si un module fonctionne de façon instable, celà peut venir du fait que, dans certaines circonstances, vous évitez ces symboles et dans d'autres, vous en avez besoin. Essayez différents programmes d'accès ppp (wvdial, kppp), qui appellent des fonctions diiférentes dans des conditions similaires. Il est aussi possible que fixscript, qui a été conçu pour le module lucent , ne corrige opas les symboles utilisés dans votre module. Si vous ne trouver pas de combinaison qui fonctionne, envisager la possibilité de descendre la version de votre noyau vers une version qui fonctionne avec le module.

7.5 Mon modem PCTel ne fonctionne pas.

7.6 Le modem numérote et se connecte mais la connection s'arrête.

C'est un problème fréquemment évoqué qui n'a peu ou pas de solutions :

  1. Il est possible que le module soit installé correctement, fonctionne mais qu'il y ait un problème avec la configuration ppp. En particulier, si vous trouvez une erreur dans les enregistrements du type "peer is not authorized" , essayer de changer "auth" en"noauth" dans /etc/ppp/options, et/ou commenter "auth" and "lock" (en placant un '#' au d&ébut de la ligne). Corel a une question à ce sujet dans sa FAQ ici http://linux.corel.com/support/html/9314.htm.
  2. Il a été signalé qu'avec certains conflits de noyau/module, un programme comme kppp génère une erreur, alors que wvdial n'en génère pas pour les mêmes modules et matériel. Vous pouvez essayer un autre programme de numérotation ppp et voir si celà s'améliore.
  3. Enfin il y a éventuellement un conflit avec le support du son. Vérifier que le noyau supporte bien le son, permet de faire l'appel et la connexion ppp.

    La plupart des distributions Linux ont un fichier de description du noyau. Par exemple pour les Debian, il s'agit du fichier

      /boot/config-version
    
    Les choix corrects sont affichés avec :
      grep SOUND /boot/config-version |grep -v not
    
    Pour un version 2.2.17 du noyau :

    # grep SOUND  /boot/config-2.2.17 |grep -v not
    CONFIG_SOUND=m
    CONFIG_SOUND_OSS=m
    CONFIG_SOUND_SB=m
    CONFIG_SOUND_MPU401=m
    CONFIG_SOUND_YM3812=m
    CONFIG_SOUND_VMIDI=m
    CONFIG_SOUND_YMPCI=m
    CONFIG_LOWLEVEL_SOUND=y
    

    Les valeurs CONFIG_SOUND=m ou CONFIG_SOUND=yes montrent que le noyau a le support du son..

    Si rien de celà ne fonctionne, reconsidérez l'utilisation d'une version de noyau qui permet l'usage du module. Sinon, solliciter de l'aide sur la liste de diffusion Linmodems.org .

7.7 J'ai un "kernel panic" à la fermeture de la connexion ou au déchargement du driver.

Voici deux solutions qui peuvent peut-être fonctionner :

7.8 Rien ne semble fonctionner. Vers qui dois-je m'orienter pour de l'aide ?

Si tout semble perdu, regardez le §Difficultés ci dessus et envoyer un message avec l'ensemble des informations collectées à la liste de diffusion Linmodems.org.

7.9 Qui a écrit le driver pour mon winmodem, et comment je peux le/la contacter ?

Si une adresse de contact n'est pas fourni, vous pouvez supposer qu'il s'agit de quelqu'un ayant un contrat avec le fabricant, qui n'a pas l'autorisation de mettre à jour le code et sans doute pas le temps de répondre à vos messages. Voir par exemple : http://lwn.net/1999/1209/a/lucent.html


8. Appendice

8.1 Paramètres du module PCTel : Code de pays

Ce qui suit est extrait d'un des fichiers Readme pour PCTel . Vous pouvez choisir le code pays approprié lors de l'insertion du module à la du paramètre comme indiqué ci dessous :

insmod pctel.o country_code=7
(le "7" étant remplacé par votre code pays à partir de la liste ci dessous) . Merci à Jonathan Emery pour avoir fourni la syntaxe correcte.

Set and report country code.

This driver takes a module parameter to setup the correct country code
setting for various country's telephone networks and it also can report
back the country code been set.

Here are the two versions for country_code selection and reporting:

VERSION #1:

To set country code:
"country_sel_rep   sel   7" will sets the country code to 7.

To query the driver for the currently set country code:
"country_sel_rep   rep" returns the current country code as the exit code.

VERSION #2:

To set country code: 
"country_sel   7" to set the country code to 7.

To query the driver for the currently set country code:
"country_rep" return the current country code as the exit code.

country_code                    country_name

    1                           USA
    2                           FRANCE
    3                           GERMANY
    4                           ITALY
    5                           SWEDEN
    6                           UK
    7                           JAPAN
    8                           AUSTRALIA
    9                           SPAIN
   10                           TAIWAN
   11                           SINGAPORE
   12                           KOREA
   13                           SWITZERLAND
   14                           NORWAY
   15                           NETHERLANDS
   16                           BELGIUM
   17                           CANADA
   18                           IRELAND
   19                           PORTUGAL
   20                           POLAND
   21                           HUNGARY
   22                           FINLAND
   23                           DENMARK
   24                           AUSTRIA
   25                           S.AFRICA
   26                           CTR21 COUNTRIES
   27                           CHINA
   28                           MALAYSIA
   29                           LUXUMBURG
   30                           GREECE
   31                           ICELAND
   32                           NEW ZEALAND
   33                           BRAZIL


Note du traducteur

1 - FCC : autorité d'enregistrement aux USA, en France l'agrément est donné par France Télécom (?)