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:
- Send your derivative work (in the most suitable format such as sgml) to the LDP (Linux Documentation Project) or the like for posting on the Internet. If not the LDP, then let the LDP know where it is available.
- License the derivative work with this same license or use GPL. Include a copyright notice and at least a pointer to the license used.
- Give due credit to previous authors and major contributors.
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:
- PCI:
cat /proc/pci
etlspci
- ISA:
pnpdump
etisapnp
- Internal PCMCIA:
cardctl ident
- Général:
dmesg | more
etcat /proc/interrupts
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:
- Kenneth Harker's Linux on Laptops site référençant un bon nombres de sites personnels parlant de leur expériences avec Linux sur un PC portable sur mesure.
- Werner Heuser's Mobilix: Linux Modems and Mobilix: Linux Mini-PCI pages contenant des de caractéristiques pour les portables avec modem interne and modem NIC, et également des trucs pour obtenir des informations au cas où le modem n'y serait pas repris.
- Le manuel et le site web du vendeur d'ordinateur, le support technique (quelle horreur!).
- http://www.google.com
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:
- Si possible, configurez votre BIOS sur "Non-PNP OS."
- 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 - 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. - Copiez le fichier vers
/etc/isapnp.conf
- 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 lancerisapnp
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.oPar exemple pour le module ltmodem.o compilé sous un noyau 2.2.12 et utilisant un 2.2.17 les informations retournées contiennent:
- depmod: *** Unresolved symbols in ltmodem.o
- depmod: bh_mask
- depmod: schedule_timeout
- depmod: request_region
- depmod: pcibios_read_co
- et beaucoup d'autres.
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 slhcle ppp.o du noayu 2.2.14 est inséré
insmod -f ppp.oNous 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:
- There exists a manufacturer-unsupported, half-binary/half-open-sourced kernel module, originally designed for Red Hat 6.2's 2.2.14-5 kernel, but substantially reworked by Mark Spieth and others to function with 2.2.x and 2.4.x kernels. This is driver version 5.78(c,d,e,...), and is the driver you are most likely to have success using.
- There exists a manufacturer-unsupported, binary-only kernel module, compiled under Red Hat 6.0's 2.2.12-20 kernel. This is driver version 5.68.
- Some open source tools for use with Lucent modems are available at http://www.close.u-net.com/ltmodem.html. Pavel Machek writes that "It is not too useful, however: it is a hardware driver, and without a v.34 protocol stack, you can't connect to your ISP. It is enough to turn your Lucent winmodem into an answering machine, however."
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é.
- Procurez-vous les paquetages pour votre noyau:
- 2.2.12 à 2.2.15 http://linmodems.org/linux568.zip
- 2.2.15 et ultérieur : même URL, mais le patch "tty.h" est requis; voir "Tips and Tricks...", plus haut.
-
dézipppez linux568.zip
-
su
(entrez le mot de passe root quand vous y êtes invité) -
./ltinst
(une erreur 'file not found' vous sera affichée due à un défaut dans le script d'installation; ignorez cette erreur.)
/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
- 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/)
- 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.
- Désarchivez le paquetage avec:
unzip
nom_du_paquetage - Identifiez-vous en root:
su
(Entrez le mot de passe root quand spécifié) - Créez le fichier du périphérique("device"):
mknod /dev/esscom c 127 1
- Make convenience device:
ln -s /dev/esscom /dev/modem
- Make convenience device:
ln -s /dev/esscom /dev/ttyS15
- Changez le propriétaire du périhérique:
chgrp uucp /dev/esscom
- Changez les droits d'accès au périphériques:
chmod 666 /dev/esscom
- Camouflez la version du module (Voir "Trucs et astuces...," ci-dessus):
./fixscript essmodem.o essmodem.fix.o
- Installez le fichier du module:
cp essmodem.fix.o /lib/modules/`uname -r`/misc/essmodem.o
- Insérez le module au noyau:
insmod -f essmodem
- (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.
- 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.
- 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 modulepctel.o
, qui apparaîtra "back up" dans le répertoirelib
. (Le module driver n'est pas le fichier objetptmodule.o
danssrc/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:
- Mettez vous en root:
su
(entrez le mot de passe root quand vou y êtes invité) - Créez le fichier périphérique:
mknod /dev/pctel c 62 79
- Etablissez les liens entre le périphérique et le fichier:
ln -s /dev/pctel /dev/modem
- Etablissez les liens:
ln -s /dev/pctel /dev/ttyS15
- Etablissez les propiétaires du périphérique:
chgrp uucp /dev/pctel
- Etablissez les permissions:
chmod 666 /dev/pctel
- Installez le fichier module (seulement pour le deuxième type de paquetage, V. ci-dessus):
cp pctel.o /lib/modules/`uname -r`/misc/
- 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".
- Si vous possédez un modme ISA, avez-vous utilisé isapnptools pour attribuer les ressources IRQ et DMA de la carte? Voir "ISA Plug-n-Play", plus haut, pour plus d'informations.
- Vérifiez par deux fois que vous avez créé le fichier périphérique correctement, et essayez d'éliminer les conflits IRQ que vous devriez avoir. Si tout semble correct mais que cela ne fonctionne toujours pas, vérifiez sur la liste Linmodems.org si quelqu'un d'autre a (ou peut-être, a résolu) le même probleme, ou essayez de ke résoudre vous-même et informez les autres de vos résultats.
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:
-
slhc_xxxx
: Vous avez probablement besoin d'insérer (insmod) le module slhc avant le module modem/ppp; utiliser modprobe au lieu de insmod règlerait aussi ce problème. -
printk, jiffies
: Votre noyau pourrait être compilé avec SMP activé. Aucun module binaire n'est compatible avec SMP, et fonctionnera probablement seulement sur une mchine à un seul processeur, avec un noyau pour simple processeur, ex. SMP désactivé. Vous pouvez essayer de recompiler votre noyau ou bien obtenir une version avec SMP désactivé. (Merci à Tom Reinertson (treinertson(at)uswest.net)) -
tty_xxxx
avec esscom.o: Auparavant les fixscripts n'étaient pas capable de camoufler les symboles spécifiques à la version de ce module. D'autres versions plus récentes sont disponibles à http://www.test.dclabs.com.au/linmodem/fixscript) et devraient être capable de faire fonctionner ce module.
7.5 Mon modem PCTel ne fonctionne pas.
- Avez-vous besoin de spécifier le code de votre pays? Voyez l'appendix.
- Utilisez-vous le on module? Il y a plusieurs drivers PCTel (Voir la section "Which Linmodem hardware is supported?" plus haut).Vous devriez en essayer un autre et voir si cela fonctionne.
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:
- 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.
- 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 quewvdial
pas, pour le même module et matériel. Vous pouvez essayer plusieurs programme de connection ppp et voir si ça s'arrange. - 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:
- Essayez un programme de numérotation différent (wvdial, kppp).
- Configurez le module pour qu'il reste chargé dans le noyau.
7.8 Rien ne fonctionne.Vers qui puis-je me tourner pour trouver de l'aide?
- Vérifiez bien que votre modem est supporté par votre module Voyez "Quel Linmodem sont supportés", plus haut.
- Essayez de déterminer à quel étape de l'installation le processus crash/ Condultez les pages de manuel à propos des commmandes que vous venez d'utiliser et essayez de déterminer la source du problème.
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