Linmodem-HOWTO

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

v0.46, 1 April 2001
Ce document décrit le support Linmodem (composant winmodem) sous Linux. While such support is limited (almost exclusively in the form of manufacturer-created, but unsupported, binary kernel modules), the number of chipsets with some form of support is growing rapidly.

1. Introduction

Ceci est le Linux Linmodem HOWTO. Il a été écrit dans le but de forunir une référence rapide pour vous aider à savoir s'il y a moyen de faire fonctionner votre winmodem sous Linux, et dans ce cas de quelle manière. You should understand from the outset that there may well be no support for your winmodem: there is limited support for such modems, often in the form of vendor-created but vendor-unsupported, binary-only kernel modules (though a small number of open-source projects exist).

To emphasize: le meilleur paris sous Linux est certainement de trouver la meilleure configuration pour votre modem. Dans le cas où vous seriez bloqué avec un winmodem, ce document pourrait vous être utile.

Pour la plupart des mises à jour des drivers des linmodems disponibles, allez sur Rob Clark's site, our small resources page, et sur Linmodems.org mailing list archives. General modem issues, such as IRQ settings and dialup scripts, are dealt with much more thoroughly in the more general Modem-HOWTO, Serial-HOWTO, PPP-HOWTO, and other related HOWTOs available at the Linux Documentation Project site and elsewhere.

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 Disclaimer

Use the information in this document at your own risk. We disavow any potential liability for the contents of this document. Use of the concepts, examples, and/or other content of this document is entirely at your own risk.

All copyrights are owned by their owners, unless specifically noted otherwise. Use of a term in this document should not be regarded as affecting the validity of any trademark or service mark. In particular, since the term "Winmodem" is a trademark of US Robotics/3Com, we use the term "winmodem" here as does Rob Clark: to be read as "Winmodems(tm), host-based modems, HCF-modems, HSP-modems, and all similar modem-like hardware." Linux is a trademark of Linus Torvalds.

Naming of particular products or brands should not be seen as endorsements.

It are strongly recommended to make a backup of important and/or relevant files before any installation procedure.

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

The most recent HTML version of this document is available at http://walbran.org/sean/linux/linmodem-howto.html, as a single HTML file at http://walbran.org/sean/linux/linmodem-howto-all.html, with source SGML at 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 c'est l'implémentation Linux d'un "winmodem" (voir le disclaimer). Ces périphériques ne sont en quelque sorte pas des modems dans le sens où ils dépendent du logiciel à faire fonctionner, et dans une mesure plus ou moins large, des fonctions traditionnelles qu'accomplit un modem. Le raisonnement pour ceci est qu'un logiciel est moins cher qu'un nouveau matériel, et peut être mis à jour/développé/amélioré sans utiliser un tournevis(//screwdrivers) (habituellement); cependant, pour que le modem fonctionne parfaitement, besoin est d'un logiciel qui fonctionne sous son système d'exploitation préféré.

2.2 Quels Linmodems sont supportés?

Un nombre croissant de winmodems fonctionne sous Linux. Chaque chipset pour lequel un driver existe, a son installation détaiilée dans une section spécifique, ci-dessous. Tout autre chipset n'a pas de support connu sous Linux (du moins, il ne nous est pas connu).

2.3 Comment puis-je savoir si mon modem GeeWhiz 9.8.7 / Laptop possède un de ces chipsets?

Obtenir des informations à partir du système

Pour trouver des renseignements sur le matériel installé, utilisez les commandes qui suivent:

MarvS fait remarquer que le Gestionnaire de Périphériques sous Windows peut fournir des informatins similaires, mais on constate que, souvent, les fabricants mettent uniquement leur marque sur un modem incorporé, ce qui n'est pas aussi utile qu'on aurait pu l'epérer (e.g., Quel chipset un modem "Compaq Internal 56k" possède-t-il?). Cependant, des informations supplémentaires peuvent parfois être obtenues en conservant un fichier journal du modem, option disponible dans les Dial Up Networking menus en activant une case à cocher. Le fichier créé se trouve dans C:\WINDOWS\MODEM.LOG. Il contiendra les données d'initialisation, et avec un peut de chance le nom du fichier de configuration du modem, lequel pourrait aussi contenir d'autres informations utiles.

Nom de modems et numéros d'indentification

Si vous connaissez le nom précis de votre modem, vous pouvez rechercher le grand nombre de modems compatibles Linux(//the large Linux Modem Compatibility) Database sur Rob Clark's site. La couleur ou la lettre sur le côté gauche du tableau indique si votre modem est reconnu commme fonctionnant ou pas sous Linux. Les caractères "LM" désignent un Linmodem, et les indications sur le modem vous renseigneront sur les driver dont vous aurez besoin. Les caractères "WM" indiquent que vous avez à faire avec un winmodem, et qu'il n'y a pas de support connu pour Linux. N'allez pas croire que des modems avec le même nom contiennent forcément le même chipset, ou qu'ils se comporteront de la même manière! Votre WhizBang LX56 et son dérivé WhizBang GT56 peuvent être construit tout à fait différemment.

Si vous ne connaissez pas le nom précis de votre modem, vous pouvez le rechercher à partir du numéro d'identification du modem (sur chaque modem doit être écrit le numéro de régistation , sinon il doit y être écrit un numéro de production, ou, dans le dernier des cas, an FCC registration number Vous trouverez un exemple de photo d'un modem avec son numéro d'identification sur http://www.idir.net/~gromitkc/fcc1.jpg à partir de Rob Clark's site.) Utilisez votre naviguateur et la fonction "Rechercher dans la page" ??to search his?? table de modems et d'identification FCC pour obtenir des informations sur chipset/driver. Autrement vous pouvez directement rechercher dans la base de données de la Comission américaine des communications fédérales à l'addresse suivante http://www.fcc.gov/oet/fccid/. Lisez scrupuleusement les directives, et faîtes attention de ne pas confondre O (la lettre) avec 0 (le chiffre), et ou d'autres caractères.

Ordinateurs portables avec modem intégrés

Vous ne pourrez pas obtenir l'ID FCC si vous possédez un portable que vous préférez ne pas ouvrir, ou si vous comptez acheter un PC sur mesure et que le vendeur ne vous en a pas fourni les informations ni une simple boîte que vous prenez à part. Dans ces cas allez sur:

3. Configuration générale et lancement du module.

3.1 Support du noyau pour les modules.

Tous les pilotes du noyau repris ici sont implémentés directement au noyau; par conséquent vous devez être sûr d'avoir un noyau qui supporte les modules.

In addition, "module version" support should be enabled to aid the use of kernels and modules which are not version matched, as described further below. Si vous utilisez un noyau d'une distribution Linux assez récente, les modules sont vraissemblablement en état d'être supportés. Si vous compilez votre noyau vous-même, vous devriez être capable d'activer le support des modules à l'aide du howto suivant: Kernel HOWTO. Dans tous les cas, vous pouvez vérifier que les paramètres suivants figurent dans le fichier de configuration de votre noyau (qui se trouve généralement dans /usr/src/linux):

CONFIG_MODULES=y
CONFIG_MODVERSIONS=y

3.2 ISA Plug-n-Play

Si vous possédez un modem ISA compatible Plug-n-Play, vous utiliserez sûrement les outils isapnptools pour assigner les ressources au modem. Pour cela, isapnptools doit être installé et le fichier /etc/isapnp.conf doit être configuré pour le modem. Vous pouvez lire les pages de manuel et ce howto Plug-and-Play-HOWTO, but if you have no other ISA devices you're concerned about, au fond tout ce que vous avez à faire c'est:

  1. Si possible, configurez votre BIOS sur "Non-PNP OS."
  2. En root, lancez pnpdump pour générer le fichier isapnp.conf basé sur la carte trouvée et sur la configuration actuelle de votre système
  3. Rechercher votre modem dans les messages, et enlevez les caractères de commentaire au lignes qui correspondent port IRQ que vous voulez utilisez pour le modem. Par exemple, le fichier isapnp.conf pour un Thinkpad i1411 Lucent LT modem 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)                                    
    ))                                           
    
    Curieusement, dans ce cas, il est nécessaire d'enlever le commentaire de #(ACT Y). Si cela ne fonctionne pas dans un sens, essayez dans l'autre.

  4. Copiez le fichier vers /etc/isapnp.conf
  5. Redémarrez l'ordinateur. Vous devriez voir une ligne pendant le chargement semblable à 'Initializing ISA PNP devices...OK'. Si cela échoue, vous avez probablement sélectionner un canal IRQ/DMA qui est déjà en utilisation; essayez une autre option donnée dans le message pnpdump. (Notez que vous pourriez simplement lancer isapnp avec les bons drapeaux (//with the right flags), au lieu de redémarrer. Mais, à ce stade, il est plus facile pour un débutant de redémarrer.)

3.3 Modems PCI

Pour récolter des informations sur votre modem faites cat /proc/pci. Les utilitaires comme pciutils, scanpci et lspci, fournis dans les paquetages, sont interrssants aussi. En particulier, lspci -vv donne des informations très utiles.

3.4 Outils du module

Les commande suivantes sont utiles pour travailler avec les modules. Beaucoup nécessitent les privilèges super-utilisateur. Consultez le manuel (e.g, man insmod) pour plus de détails sur ces commandes.

insmod, insmod -f, et modprobe

Une module compatible avec le noyau peut généralement être inséré avec la commande modprobe module_name; modprobe essayera d'ajouter tous les modules dont votre module dépend (comme vous le montre la commande depmod, décrite ci-après).

Un module peut être ajouté (sans inclure ceux dont il dépend) en utilisant la commmande insmod module_name. Si les modules ont été compilés sous une version du noyau différente de la version courante, insmod vous fera savoir que la version ne correspond pas et ne chargera pas le module. Dans ce cas, insmod -f module_name, peut forcer le chargement du module, sans tenir compte de la version du noyau. If the kernel interface the module uses did not actually change with the kernel version, the module will be inserted and could be to some degree functional.

C'est le cas avec, par exemple, avec le module esscom.o du modem ESS qui quand il est compilé avec sous le noyau 2.2.12, peut être inséré en le forçant sur des noyau ultérieurset fonctionnera plus ou moins sous le 2.2.14 sans changements; au-delà de 2.2.15, le patch pour tty.h, décris plus bas, est requis. Toutefois, même en forçant l'insertion échoue pour les noyau 2.4.

rmmod

Un module peut être retiré du noyau avec la commande rmmod.

depmod

La commande depmod analyse les dépendences du module. Pour contrôler les compatibilités avec un module précompilé, utilisez:

   depmod -e ltmodem.o
Par exemple pour le module ltmodem.o compilé sous un noyau 2.2.12 et utilisant un 2.2.17 les informations retournées contiennent: Utiliser un module avec des symboles non résolus peut être dangereux, comme décris ci-après.

4. Trucs et astuces pour des modules précompilés utilisant différentes versions du noyau.

Beaucoup de pilotes de linmodem sont seulement disponible précompilés, modules en binaires. Généralement, modules/binaires fonctionnent uniquement avec les versions du noyau sous lequel ils ont été compilés. C'est pourquoi, faire fonctionner votre pilote précompilé sous un noyau particulier peut être un véritable challenge.

Comme le noyau Linux est en évolution perpétuelle, il est dommage que beaucoup de vendeurs de modem/chipset n'ont pas encore choisi de rendre public les sources de leurs pilotes, pour nous permettre de les adaptées en même temps que le noyau évolue. Certains des modules binaires ont été modifiés pour fonctionner sur des noyau ultérieurs en utilisant quelques astuces, comme décris ci-après; toutefois, même si un module peut être rendu fonctionnel, il est conseillé de les utiliser le moins possible. Quoting an email from Mark Spieth,

"Un pilote ne fonctionnera pas correctement s'il y a des symbols non résolus, étant donné qu'il y a quelquechose qui ne fonctionne pas.thermore, it means that that something that would have been called will call something else in the kernel and this could be anything. This is very bad."

Donc, soyez prudent en utilisant des modules binaires avec un noyau d'une version différente; utilisez les à vos risques et périls. Si vous voulez faire fonctionner votre modem absolument, mettez votre noyau à jour avec une version antérieur convenant au module - ce n'est en aucun cas une perspective riducule. Malgré ces avertissements, cependant, beaucoup ont su utiliserdes modules (normalement) non compatibles avec le noyau avec très peu d'ennuis ( de temps en temps un "kernel panic" ) en utilisant des trucs et des outils comme ceux décris ci-après.

4.1 Fixscripting

Mark Speith a contribué au développement d'une série de "fixscripts" pour éditer les modules binaires et donc pour que les avertissements d'incompatibilité disparaissent. On insère le module "édité" (fixed) et ensuite on continue sans forcer, par exemple insmod nom_du_module. Les versions ultérieures renomment également les symboles pour qu'ils correspondent à ceux exportés par le noyau, ainsi les erreurs de symboles non résolus ("Unresolved symbols") ne sont pas renvoyés par le test depmod -e. On doit souligner que ces changements sont seulement superficiels - il est encore recommandé d'utiliser ces modules le moins possible.

Pour utiliser le "fixscript" sur le module binaire Lucent, ltmodem.o, par exemple faites un working directory$$$ comme /root/modem. Procurez-vous le dernier "fixscript" de http://www.test.dclabs.com.au/linmodem/fixscript. Suveragrdez le fichier en tant que fixscript. Ouvrez le avec votre édteur de texte favoris pour vérifier que des "Dos hard stops" n'ont pas été omis accidentellement. Ils sont en caractère gras (bold M), soulignés (underlined M), ou ^M en fontion de votre éditeur de texte. NOTE: le visualiseur more n'affiche pas ces lignes DOS.

Rendez le fichier éxécutable avec chmod +x fixscript. Générez un module édité ("fixed") avec, par exemple,

    ./fixscript ltmodem.o ltmodem2217.o

Aucune erreur ne devrait survenir en testant les dépendances du module par

    depmod -e ltmodem2217.o

et l'insertion devrait se réaliser sans forcer (-f),

    insmod ltmodem2217.o

Le "code source" fourni avec certains modules PCTel (un petit fichier en C) accomplit les même genre de camouflages(modifications) quand il est compilé et lié avec les bibliothèques binaires dans ces paquetages; unlike the partially-open-source Lucent driver, it does not compensate for any actual changes to the kernel interface.

4.2 Patching tty.h

Dans son travaille pour faire fonctionner le pilote du modem Lucent LT (version 5.68) avec les noyaux ultérieurs au 2.2.14, Mark Spieth remarqua qu'un simple changement dans le code source du noyau annulait la plupart des icompatibilités pour les versions entre 2.2.14 et 2.2.16. Ce patch n'est pas vraiment nécessaire quand on utilise le pilote LUcent LT (source et binaire, version 5.78), mais il reste utile pour ceux qui ont d'autres modems dont les pilotes sont compilés sous les noyaux pre-2.2.15.

Le 2.2.17 patché tty.h et quelques paquetages du noyau 2.2.17 compilés avec ce patch sont disponible à partir de http://walbran.org/sean/linux/stodolsk/. Si vous voulez l'éditer vous même, la ligne à enlever est dans la structure tty_struct du fichier include/linux/tty.h; it has an extra member poll_wait in later kernels. Déplacez cette partie en bas de la structure, ainsi les offsets restant seront les mêmes que ceux des versins antérieures à 2.2.15, et seront donc compatibles avec modules noyau précompilés. Vous aurez besoin de recompiler votre noyau et vos modules après avoir fait ces changement dans les sources.

4.3 Utilisant ppp.o from Kernel 2.2.14

Il existe un truc pour utiliser les modules binaires aves les noyaus ultérieurs à 2.2.15 sans devoir recompiler ces derniers;cependant, après la découverte du patch tty.h décris ci-dessus, ce truc n'est plus vraiment nécessaire ni recommandé. Le truc est de remplacer le module /lib/modules/net/ppp.o avec un celui du noyau 2.2.14. Christoph Hebeisen (cth(at)sfu.ca) a rapporté que l'utilisation du ppp.o version 2.2.14 au-lieu de 2.2.16 avec le module Lucent fournit une fonctionnalité sous les noyaux 2.2.16. Willie Green (willjr(at)lcc.net) a confirmé wue ce truc fonctionne avec les modules ESS. Après une simple insertion d'un module compatible avec la version du noyau:

    insmod slhc
le ppp.o du noayu 2.2.14 est inséré
    insmod -f ppp.o 
Nous voudrions encore souligner que ce truc est moins stable en le forçant pour l'insérer que faire ces simples changements dans le fichier source tty.h, commme décris ci-dessous.

5. Chipsets spécifiques et leurs pilotes.

5.1 IBM Mwave (Thinkpad 600E)

IBM a un pilote complètement open-source (license GPL) pour le software de leur Thinkpad 600E disponible ici.

5.2 Lucent LT

Overview

Ce modem procure le meilleur support sous Linux, This modem enjoys the most support under Linux, in that there exist three different driver packages:

It should be noted that the binary-only driver module (from "linux568.zip") contains code from the GPL'ed Linux serial.c driver, so, since the source code for the modem driver is not available, trafficking in this driver is apparently in violation of the GPL. Distributing the partially open source driver ("i56lvp578.zip") may or may not be technically legal, since the GPL'ed code, though not yet linked with the closed-source code, is certainly intended to be so. See this Kernel Traffic issue and a Linux-Kernel mailing list archive for the week including Dec. 3rd, 2000, for more details.

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

Vous obtiendriez le plus récent paquetage pour votre noyau à http://walbran.org/sean/linux/stodolsk/ et suivez les instructions de mise à jour qui y sont données.

Manufacturer's driver version 5.68 - Installation

Ce pilote a été remplcé par la version 5.78, décrite ci-dessous; cependant, il peut encore être d'une certaine utilité.

  1. Procurez-vous les paquetages pour votre noyau:
    1. 2.2.12 à 2.2.15 http://linmodems.org/linux568.zip
    2. 2.2.15 et ultérieur : même URL, mais le patch "tty.h" est requis; voir "Tips and Tricks...", plus haut.
  2. dézipppez linux568.zip
  3. su (entrez le mot de passe root quand vous y êtes invité)
  4. ./ltinst (une erreur 'file not found' vous sera affichée due à un défaut dans le script d'installation; ignorez cette erreur.)
Votre modem devrait maintenant être accessible ainsi que /dev/modem ou /dev/ttyS14.

Outils open source - Installation

Lisez la documentation avec les sources pour les instructions.

5.3 ESS

Overview

Les pilotes disponibles sont en binaires, seulement, pour les ES56T-PI (PCI) et ES56V-I (ISA), compilés sous RedHat 6.0 avec un noyau 2.2.12-20. Le pilote a été utilisé en forçant (insmod -f) dans le noyau 2.2.15, et dans le 2.2.17 en utilisant le patch "tty.h" décris dans la section "Trucs et astuces...", plus haut.

Installation

  1. Procurez vous les paquetages pour votre modem (Notez qu'ils ont l'air d'avoir été supprimer; j'essayerai de faire un mirroir à http://walbran.org/sean/linux/stodolsk/)
  2. Pour les noyaux 2.2.15 et ultérieurs, appliquez le patch tty.h (Voir "Trucs et astuces...," ci-dessus); recompilez le noyau et les modules.
  3. Désarchivez le paquetage avec: unzip nom_du_paquetage
  4. Identifiez-vous en root: su (Entrez le mot de passe root quand spécifié)
  5. Créez le fichier du périphérique("device"): mknod /dev/esscom c 127 1
  6. Make convenience device: ln -s /dev/esscom /dev/modem
  7. Make convenience device: ln -s /dev/esscom /dev/ttyS15
  8. Changez le propriétaire du périhérique: chgrp uucp /dev/esscom
  9. Changez les droits d'accès au périphériques: chmod 666 /dev/esscom
  10. Camouflez la version du module (Voir "Trucs et astuces...," ci-dessus): ./fixscript essmodem.o essmodem.fix.o
  11. Installez le fichier du module: cp essmodem.fix.o /lib/modules/`uname -r`/misc/essmodem.o
  12. Insérez le module au noyau: insmod -f essmodem
  13. (Optionne) Fourni pour charger le module automatiquement: ajoutez la ligne "alias char-major-127 essmodem" au fichier /etc/modules.conf ou /etc/conf.modules

5.4 PCTel

Overview

Des pilotes binaires peuvent être trouvés à http://www.idir.net/~gromitkc/winmodem.html#drivers.

Un paquetage d'installation du type Debian pour noyaux 2.2.16 a été fourni par Corel à 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. Un paquetage déviré du .deb archivé gzip et tar est disponible ici. En plus, un pilote pour le noyau 2.4 a été développé par Thomas Wright, et est aussi disponible ici. D'autres paquetages, ayant besoin d'une compilation superficielle(??) décrite ci-dessous, existent également.

Installation

Il y a apparemment deux types de paquetages de module PCTel en ce moment.

  1. Un paquetages (rpm ou deb) qui installe deux modules, pctel_hsp.o et pctel_pci.o, dans /lib/modules/2.2.16.

    Avec un tel paquetage, si vous utilisez un noyau plus récent que 2.2.16, vous aurez besoin de forcer l'insertion (insmod -f), et si cela ne réussit pas, vous devriez utilisez la méthode du "fixscript" utilisée avec le module Lucent 5.68 et ESS décrite plus haut - mais notez bien qu'avec mes connaissance, je n'ai encore essayé ceci. Si vous utilisez un noyau ultérieur à 2.2.16, vous deviriez upgrader celui-ci, ou bien d'utiliser un "fixscript" (ce n'est pas guaranti de fonctionner). Envoyez moi quelque information si vous faites fonctionner une de ces techniques.

  2. Un paquetages qui, quand il est désarchivé, vous donne une série de bibliothèques (hsp.a, etc...), et un petit fichier source en C (ptmodule.c), qui devrait être dans des répertoires comme lib/ and src/module/. S'il n'y a pas ces répertoires, créez les et placez les fichiers comme suit:
    mkdir lib
    mkdir src
    mkdir src/module
    mv *.a lib/
    mv Makefile *.c src/module
    

    Maintenat allez dans le répertoire src/module et tapez make. Ceci devrait générer le fichier module pctel.o, qui apparaîtra "back up" dans le répertoire lib. (Le module driver n'est pas le fichier objet ptmodule.o dans src/module!)

    The apparent version of the module generated in this way will match your current kernel version.

Avec le module sous la main, continuer pour installer comme suit:

  1. Mettez vous en root: su (entrez le mot de passe root quand vou y êtes invité)
  2. Créez le fichier périphérique: mknod /dev/pctel c 62 79
  3. Etablissez les liens entre le périphérique et le fichier: ln -s /dev/pctel /dev/modem
  4. Etablissez les liens: ln -s /dev/pctel /dev/ttyS15
  5. Etablissez les propiétaires du périphérique: chgrp uucp /dev/pctel
  6. Etablissez les permissions: chmod 666 /dev/pctel
  7. Installez le fichier module (seulement pour le deuxième type de paquetage, V. ci-dessus): cp pctel.o /lib/modules/`uname -r`/misc/
  8. Insérez le(s) module(s) dans le noyau avec insmod -f nomdumodule

5.5 Conexant/Rockwell HSF

A cette adresse se trouvent des drivers pour les noyau 2.2.14, 2.2.16, et 2.2.17: http://www.olitec.com/pci56kv2.html La page est en français, et les commandes d'installation sont inscrites en caractères gras rouge (vous pouvez aussi utiliser babel fish, un traducteur). Essentiellement, les instructions vous disent de télécharger les paquetages appropriés, les désarchiver avec tar -zxvf, et de lancer le script d'installation ins_all.

Ce driver est, cependant, un peu difficile (with the most common symptom of failure being the "NO DIALTONE" response), mais bon nombre de gens ont été capables de le faire fonctionner, habituellement en insérant l'ID vendeur de leur modem dans le fichier .inf du modem, perhaps along with a change of the device major number from 254 to 253. Parmis les pages plein d'aide, notez Le guide d'Imran Ghory (Imran Ghory's guide), et la liste de diffusion de Linmodems.org avec ce message, et celui-ci expliquant comment charger le module automatiquement.

5.6 Intel (formerly Ambient Technology, formerly Cirrus Logic)

HaM

Un driver pour le modem HaM est disponible à http://developer.intel.com/design/modems/support/license/r-333-5.htm

CL-MD5620DT

Mikhail Moreyra a écrit un driver GPL pour le chipset CL-MD5620DT qui peut atteindre 33.6 kbps; cependant, c'est une version alpha et il doit être traité avec beaucoup de prudence. Vous pouvez vous le procurer à http://linmodems.org/CLModem-0.3.0.tar.gz. Gabriel Gambetta (ggambett(at)internet.com.uy) publia une version de ce driver qui autorise les commandes de base du modem AT (Transfert Ansynchrone) ; vous pouvez récupérer cette version sur le site de Rob Clark ici.

5.7 3Com

Mini-PCI

Une demande (for comments) a été postée par un employé de 3Com à propos d'une demande possible pour driver binaire uiniquement pour la combinaison de leur miniPCI et du NIC/winmodem ici sur la liste de diffucion de Linodems.org; veuillez répondre à l'adresse donnée, linmodem@new-n-used.com, et pas à la liste. Bien que, à ma connaissance, aucun driver n'a encore été publié, la miniPCI page de Werner Heuser possède plus d'informations et de liens.

5.8 AMR

Ian Stewart reports qu'il est en train de travailler sur "driver de moyen niveau" pour le codec AC97.

6. Dépannage

Donc, vous avez lu en partie ce document, le Modem-HOWTO, et le PPP Howto, et êtes convaincus que votre modem correspond à un des drivers disponibles, mais cela ne fonctionne toujours pas? Il ya un certain point dans les opérations auquels certaines choses peuvent ce heuter et empêcher le bon fonctionnement.

Généralement, Linux sauvegarde les fichiers journaux des connections qui sont très utiles dans les problèmes de dépannage. Leurs nom précis varientn fonction de la distribution Linux et du logiciel de Dial-in, mais les fichiers journaux du système /var/log/messages, /var/log/syslog,etcetera, fourniront au moins deux ou trois informations.

Pour le dépannage et des questions d'aide sur une liste, il serait très utile si vous accumuliez les informations demandées plus haut. En root, allez dans le répertoire d'installation du modem où se trouvent les scripts, et commencez un enregistrement de script comme montré si-après. Quand le script est terminé avec "exit", copiez le autre part que sur votre partition pour le transmettre à la liste qui pourrait vous aider.

(ci-dessous, les caractères # sont des commentaires d'expliquation.)

# commencez l'enregistrement,
script ModemTest.txt 
# ajoutez-y le plus d'info que vous possédez sur votre modem,
echo nom du winmodem, fabricant, désignation, et le chipset(puce) si possible
# ceci vous donne la version du noyau courrant
uname -r
# ceci donne des informations sur vos ports série
setserial -agv /dev/ttyS*
# ceci des informations sur vos interruptions (irq)
cat /proc/interrupts
# montre le contenu du script d'installation du module (insérez le nom du script):
cat ScriptName
# Vérifie que votre script est éxécutable:
ls -l NomDuScript
# il l'est si la réponse contient un "x" comme ci-dessous:
# -rwxrw-rw-  1 root     root  654 Jan  6  2000 ltinst
# sinon rendez le éxécutable avec:
chmod o+x NomDuScript
# Vérifiez avec:
ls -l NomDuScript
# si NomDuScript n'a pas déjà correctement été éxécuté avant sous ce noyau
# éxécutez le avec:
./NomDuScript
# Vers quoi est mis le lien symbolique /dev/modem:
ls -l /dev/modem
# Quel est le NomDuPériphérique spécifié dans NomDuScript (/dev/ttyS14 ou ...?)
echo NomDuPériphérique
# quel est le nom du driver de votre modem? Quelquechose comme NomDuDriver.o
# avec le ".o" indiquant que c'est binaire compilé
echo Ceci est mon NomDuDriver.o
# s'il aurait été inséré dans le répertoire des module
# Essayez de l'afficher avec:
find /lib/modules | grep NomDuDriver
# Est-ce que le NomDuDriver est parmi les modules installés dans le noyau actuel
lsmod
# Si non essayez simplement de l'insérer:
insmod ./NomDuDriver.o
# ou bien s'il était dans le répertoire des modules cette commande-ci aurait suffit:
insmod NomDuDriver
# vérifiez qu'il est bien inséré maintenant:
lsmod
# s'il ne l'est pas, essayez en forçant:
insmod -f ./NomDuDriver
# regarder encore une fois la liste des drivers insérés:
lsmod
# s'il ne se trouve toujours pas dans la liste,
# il y a une incompatibilité entre le modemn, le dirver et le noyau.
# Et il ne vous servira à de continuer.
# Si NomDuDriver est dans la liste, donnons un peu plus d'informations.
# Vous devrez d'abord redémarrer l'outil de configuration
# employé pour la configuration des connections pour votre installation Linux.
# Rappelez vous d'éditer votre mot de passe de cet enregistrement plus tard.
# Vous serez probablement inviter à répondre à ces informations
# que vous devriez avoir sous la main:
# Port à utiliser(/dev/modem or /dev/ttySn),Numéro Dial-in, Nom d'utilisateur, Mot de passe.
# Lancez votre outil de connection.
YourSetUpConf
# Pour arrêter l'enregistrement:
exit

Si l'appel à distance n'a pas fonctionné, ajouter à votre enregistrement les informations de vos fichiers journaux. Comme exemple, une partie de /var/log/syslog d'une distribution Debian se trouve ci-dessous.

7. FAQ

7.1 J'ai un winmodem. Fonctionnera-t-il sous Linux?

Probablement pas. Veuillez vous rapporter à la section "Which Linmodem hardware is supported?" plus haut, et vérifiez la base de données des modems Linux compatibles sur le site de Rob Clark.

7.2 I get "NO DIALTONE".

Essayez de paramètrer votre BIOS pour que "PNP OS" devienne "non-PNP OS", que "Windows" devienne "Other OS", ou un paramètre semblable.

Les utilisateurs d'un Conexant rapportez-vous à la section Conexant, plus haut.

7.3 J'obtiens le message "device or resource busy".

7.4 J'obtiens "unresolved symbols" quand j'utilise un fixscript ou quand j'insère le module.

Les symboles non-résolus sont un vrai danger pour des versions qui ne coïncident pas et sont, en générale, mauvais, mais sont aussi inévitables avec les modules binaires. Si vous obtenez des symboles non résolus, ou si le module ne fonctionne pas malgré les symboles non résolus, vous n'avez pas de compromis entre votre module et le noyau; cependant, quelques cas entraînent les symboles comme:

Si un module fonctionne dans un environnement instable régulièrement, ceci peut en être la cause, dans certaines circonstance, vous évitez ces symboles, et dans d'autre, vous vous frotter au symboles. Essayez différents programmes de connection (wvdial, kppp), qui demandent des fonctions un peu différentes dans les mêmes conditions. C'est aussi possible que le fixscript, qui était prévu pour le module Lucent ne camoufle pas les symboles utilisés dans votre module. Si vous ne trouvez pas de compromis qui fonctionne, peut-être devriez-vous penser à "downgrader" votre noyau pour une version qui coïncide plus à celle du mosule.

7.5 Mon modem PCTel ne fonctionne pas.

7.6 Le modme effectue la requête et se connecte correctement, mais après il pêrd la connection.

Ceci est un problème qui arrive souvent et qui a quelques solutions, ou parfois aucune:

  1. Il est possible que le module est installé correctement et qu'il fonctionne, mais à ce moment là vous avez un problème avec votre configuration ppp. En particulier si vous trouvez une erreur dans les journaux de connection comme celle-ci: "peer is not authorized", essayez de changer "auth" en "noauth" dans le fichier /etc/ppp/options, et/ou changer en commentaire "auth" et "lock" (en plaçant un '#' au début de la ligne). Corel a une FAQ à http://linux.corel.com/support/html/9314.htm à propos de ceci.
  2. On a déjà remarqué qu'avec un noyau et un module qui ne coïncident pas, un programme comme kppp donnera cette erreur, alors que wvdial pas, pour le même module et matériel. Vous pouvez essayer plusieurs programme de connection ppp et voir si ça s'arrange.
  3. Dernièrement, il y a un rapport potentiel avec le support du son. En comparant les fonctionnalités du ltmodem.o avec ou sans support audio dans le noyau, la numérotation fonctionne, mais la connection ppp n'est pas atteinte pour le noyau sans support pour le son.

    La plupart des distributions Linux déposent un fichier de configuration du noyau en fonction de celui-ci. Pour les distributions Debian c'est le fichier:

      /boot/config-version
    
    Vous pouvez voir si l'option est activée avec la ligne suivante:
      grep SOUND /boot/config-version |grep -v not
    
    Pour un cas précis avec la version 2.2.17:

    # 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
    

    Le CONFIG_SOUND=m ou CONFIG_SOUND=yes vous montre si le noyau possède un support audio ou pas.

    Si cela ne vous aide pas, vous devriez penser à utiliser une version du noyau qui convient mieux à votre module. Autrement, condultez la liste de Linmodems.org pour de l'aide.

7.7 J'obtiens un "kernel panic" en fermant la connection ou en déchargeant le module.

Il y a plusieurs solutions à cela:

7.8 Rien ne fonctionne.Vers qui puis-je me tourner pour trouver de l'aide?

Si tout semble perdu, voyez la section "Dépannage", ci-dessous, et envoyez un message avec les informations complètes, qui y sont décrites, à la liste de Linmodems.org.

7.9 Qui a écrit le pilote pour mon winmodem et comment puis-je contacter cette personne?

Si ces références ne sont pas mentionnées ci-dessus, il faut croire que cette personne était probablement en contrat avec le fabricant, et qu'elle n'a pas le pouvoir ou le temps de mettre à jour, changer, publier le code source, ni de répondre à vos e-mail dans tous les cas. Regardez, par exemple http://lwn.net/1999/1209/a/lucent.html

8. Appendice

8.1 Paramètres du module PCTel: codes de pays.

Les informations suivantes proviennent du fichier "read me" du module PCTel. Donc vous pouvez choisir le code du pays approprié en insérant le module avec un paramètre comme suit:

insmod pctel.o country_code=7
(le "7" est renplacé par le code de votre pays de la liste ci-dessous). Merci à Jonathan Emery pour avoir spécifier la syntaxe correcte.

Mettre et demander le code du pays.

Ce pilote un paramètre en insérant le module pour configurer le code du pays
pour des réseau de téléphone de plusieurs pays et il peut aussi vous informer
du code de pays actuellement utiliser.

Vous trouverez ci-après deux manières de définir le code du pays et de
connaître celuiactuellement utilisé.

Première manière:

Pour mettre le code du pays:
"country_sel_rep   sel   7" mettra le code de pays 7.

Pour s'informer du code de pays actuellement utilisé:
"country_sel_rep   rep" retourne le code actuel utilisé en réponse.

Deuxième manière:

Pour mettre le code du pays:
"country_sel   7" mettra le code de pays 7.

Pour s'informer du code de pays actuellement utilisé:
"country_rep" retourne le code actuel utilisé en réponse.

country_code                    country_name
(code de pays)                  (nom de pays)

    1                           ETATS-UNIS
    2                           FRANCE
    3                           ALLEMAGNE
    4                           ITALIE
    5                           SUEDE
    6                           ROYAUME-UNI
    7                           JAPON
    8                           AUSTRALIE
    9                           ESPAGNE
   10                           TAIWAN
   11                           SINGAPOUR
   12                           KOREE
   13                           SUISSE
   14                           NORVEGE
   15                           PAYS-BAS
   16                           BELGIQUE
   17                           CANADA
   18                           IRELANDE
   19                           PORTUGAL
   20                           POLOGNE
   21                           HONGRIE
   22                           FINLANDE
   23                           DANEMARK
   24                           AUTRICHE
   25                           AFRIQUE DU SUD
   26                           CTR21 COUNTRIES
   27                           CHINE
   28                           MALAYSIE
   29                           LUXEMBOURG
   30                           GRECE
   31                           ISLANDE
   32                           NOUVELLE-ZELANDE
   33                           BRESIL