HOWTO: Accès Internet par modem

Connection par modem analogique

Au départ, j'avais conçu Puppy pour accéder à Internet avec un modem classique et un FAI (Fournisseur d'Accès Internet). Le modem est appelé analogique, car il envoie et reçoit des données par des tonalités de fréquences audibles - que vous pouvez entendre lors de la numérotation vers le FAI.

Je suis passé à différents modes d'accès numérique à large bande, toutefois beaucoup, dans certaines parties du monde, sont encore en RTC analogique. Par conséquent, cette section est encore très pertinente!


Aux débuts, Linux a vraiment fonctionné avec seulement ce que nous appelons des "modems série" -- la plupart des modems sont de nos jours des "soft-modems" et la plupart d'entre eux ne fonctionnent qu'avec Microsoft Windows. Si votre PC a un modem interne, ou un modem externe branché par l'intermédiaire d'une prise USB, c'est un soft-modem ou un modem RTC.
Veuillez noter que je parle ici des modems analogiques, à numérotation vers votre FAI (Fournisseur d'accès Internet) -- ils sont différents de l'ADSL et des modems du câble qui sont utilisés pour l'accès à bande large.
  • Modem série externe. Si vous possédez un modem série externe, il est facile à reconnaître par sa prise -- forme plate rectangle assez grande, avec 9 ou 25 broches. C'est un modem série, et il fonctionnera certainement.
  • Carte modem PCI interne. "PCI" se rapporte aux slots sur la carte mère, dans lesquels un modem interne peut être branché. Il y a environ 5 ans, les modems PCI étaient encore fabriqués, maintenant ce sont des soft-modems -- c'est très probablement ce que vous avez.
  • Modem interne à la carte-mère. Techniquement, ce sont des modems PCI, parce que le terme "PCI" renvoie à la principale interface de bus sur la carte mère, à laquelle tous les périphériques d'entrée/sortie sont connectés. Ce sont tous des soft-modems.
  • Modem externe USB. De nos jours l'USB est utilisé pour presque tous les périphériques externes -- souris, clavier, modem, imprimante, scanner. Il existe très peu de modem USB "Matériel". C'est très probablement un soft-modem.
  • Modem PCMCIA. Connu comme cardbus. C'est une prise (clé) sur des ordinateurs portables. Ceux-ci peuvent être "soft" ou "hard", les plus récents sont probablement des soft-modems.
Qu'est-ce qu'un soft-modem? Fondamentalement, il s'agit d'un modem peu cher qui laisse le CPU faire une bonne partie du travail. Par expérience personnelle j'ai noté que les modems matériels ont tendance à avoir une vitesse de transfert plus élevée, même avec les PC modernes.
Le mauvais côté d'un
soft-modem, c'est qu'il  nécessite un pilote spécial pour ce modem là en particulier, et la plupart des fabricants n'ont malheureusement créé des pilotes que pour Windows. Mais, certains fabricants ayant pris conscience de l'importance de Linux, ainsi que quelques amateurs de Linux,  ont développé des pilotes.

Vous voilà prévenus, si vous avez un
soft-modem, il peut très bien ne pas fonctionner avec Puppy. Un membre du forum, fan de Puppy "ezeze5000(nom sur le forum) m'a envoyé une demi-douzaine de vieux soft-modems PCI  à tester. C'était en 2008, et à cette époque je n'ai réussi à en faire marcher qu'un. Depuis lors, le taux de succès s'est amélioré, et en 2010 j'ai réussi à en faire marcher la moitié.

Notez, si un modem logiciel fonctionne sous Linux, on l'appelle un "Linmodem".


Comment numéroter

Votre modem analogique sera détecté automatiquement, et s'il s'agit d'un modem pris en charge alors tout sera configuré automatiquement et vous serez prêt à vous connecter. Pour les modems série c'est tout simple, mais maintenant, de nombreux soft-modems sont pris en charge. Et dans ce cas très probablement détectés.

Remarque: la détection automatique et l'auto-configuration de certains modems est en cours, voir la discussion sur ce sujet dans le forum Puppy.

Pour numéroter, cliquez simplement sur  l'icône "Connexion" du bureau. Cela fera apparaître la fenêtre de "l'Assistant de connexion Internet" avec un bouton "Internet par ligne analogique ou un modem sans fil" - qu'il suffit de cliquer et vous êtes en communication - un programme que j'ai mis au point appelé PupDial vous dira si oui ou non votre modem est détecté.

Remarque, dans l'Assistant de Connexion Internet, vous verrez quelques autres boutons radio en bas. Ils vous permettent de configurer l'icône "Connexion" du bureau pour lancer immédiatement PupDial, et non pas l'Assistant - un
clic de moins pour être en ligne!

Autre chose cependant, bien que Puppy puisse détecter automatiquement de nombreux modems et les configurer automatiquement pour fonctionner, il se peut que, dans certains cas, vous soyez amené à faire quelques ajustements supplémentaires. Par exemple, votre modem est détecté, mais sans la numérotation - faites quelques recherches pour trouver et modifier la "chaîne d'initialisation" du modem, et ça marchera. Quoiqu'il en soit, si vous modifiez un soft-modem et le faites fonctionner, faites-le moi savoir et je proposerai ces réglages dans la prochaine version.
Exemple : certains
soft-modems ont besoin que le "test de tonalité" dans PupDial soit éteint.

Plus d'informations utiles

Pour dépanner votre modem, allez sur le forum de Puppy. Il y a une section spéciale sur les modems, avec beaucoup de commentaires et solutions.
Celui qui peut vous aider est connu sous le pseudo de "Rerwin", qui oeuvre actuellement pour que les modems soit détectés et configurés automatiquement. Rerwin a également mis à jour PupDial.

Si PupDial ne fonctionne pas, il y a deux autres programmes, Gkdial et Xeznet, ce sont des paquets PET que vous pouvez installer (voir l'icône "Installer" sur le bureau) - attention cependant le premier est une application GTK1, et l'autre une application en Tcl/Tk et pour les versions 4.x et supérieures vous devrez installer des dépendances (bien que 4.20 et 4.21 ont Tcl/Tk, et 4.3 non) - - donc, si cela vous est possible, utilisez PupDial. Note sur Xeznet : lors de l'ajout d'un compte, les champs "tty" et "vitesse" n'ont pas besoin d'être remplis, par défaut c'est
/dev/modem et 115200bps.

Si vous voulez essayer des commandes Hayes sur votre modem, il y a un petit programme en ligne de commande très bien fait appelé modem-stats. Ouvrez un terminal et lancez-le comme ça :
# modem-stats -c "ATZ" /dev/ttyS0
Fichier d'aide locale help file.
Vous avez
aussi un autre petit utilitaire
de communications pour le port série en ligne de commande appelé picocom. Aide en ligne pour picocom: http://linux.die.net/man/8/picocom.

Il y a une autre application, appelée Cutecom, un programme console de port série, que vous trouverez dans le menu "Utilitaires" (note, les versions récentes de Puppy n'ont pas ce programme, ou alors en paquet "PET": voir le menu Paramètres --> Gestionnaire des paquets.). Il est très facile d'emploi. Après ouverture du port série pour toutes commandes Hayes que vous saisissez dans la case "Input:", la réponse du modem apparaîtra dans la case texte au-dessus. Par exemple, vous tapez "AT" puis la touche Entrée, le modem devrait répondre "OK".

Plus d'informations sur les soft-modems dans ce site : linmodems.technion.ac.il/resources.html

Voici quelques URL avec des listes de chaînes de modem pour des modems particuliers :

www.56k.com/inits

www.west.net/~jay/modem

'Numéroter' par modem sans fil

Les modems sans fil, sont souvent appelés modems 3G ou modems HSDPA. En un mot, ils vous donnent accès à Internet sans câble. Ils ont également besoin d'une opération de numérotation similaire aux modems analogiques. Dans Toutou/Puppy nous pouvons utiliser le même outil PupDial.

Il existe,
cependant, de nombreuses et différentes technologies pour ces modems, autres que la 3G ou HSDPA, telle le GPRS, la principale différence du point de vue utilisateur est la vitesse de transfert des données. Fondamentalement, l'ordre de vitesse croissant est GPRS, 3G, HSDPA.

J'ai commencé à rédiger cet article (en Décembre 2010), fondé sur mon expérience de trois différents modems 3G. Voici quelques notes que vous pourrez trouver utiles. Je vis en Australie, ainsi ces notes seront particulièrement utiles pour les autres Australiens
.

Vodafone
Access number: *99#
APN: vfprepaymbb
Optus Huwaei E160-E
Access number: *99#
APN: preconnect
Telstra
Access number: *99#
APN:

Dans PupDial, remplissez les champs "numéro d'accès" et "APN". Les champs "nom d'utilisateur" et "mot de passe" n'ont pas d'importance, laissez-les tels quels - ne les videz pas comme les objets exécutables wvdial. Habituellement, tout le reste peut être laissé tel quel, et vous cliquez simplement sur le bouton "Connexion".

Lorsque PupDial est lancé et qu'un modem
nouveau/modifié est détecté, PupDial teste si le modem répond et tente de déterminer une "chaîne d'initialisation" convenable - ces commandes envoyées au modem, sont connu sous le nom de commandes Hayes. Elles sont également utilisés pour les modems analogiques, mais avec certaines extensions. Cette page wikipedia est une bonne introduction, et décrit également les extensions modem 3G/GSM:

http://en.wikipedia.org/wiki/Hayes_command_set

Il se peut que PupDial n'obtienne pas une bonne chaîne d'initialisation pour votre modem. Dans ce cas, si vous en trouvez une à la place qui fonctionne, faites le moi savoir.

Voici diverses informations que les utilisateurs m'ont envoyé, ou que j'ai trouvé :

Huawei E1550 3G USB modem
Les membres du Forum "zygo" et "PAKT" ont rapporté que la chaîne par défaut ne fonctionne pas (1 2), mais celle-ci marche :
AT &FE0 V1 X1 &D2 &C1 S0=0 
Mise à jour: Il semble qu'il y ait un problème lorsqu'on rebranche ce modem. Il suffit de le brancher une fois, et la chaîne par défaut généré par PupDial devrait fonctionner. Il a également été découvert qu'il vaut mieux brancher le modem après le démarrage.
Huawei E160-E 3G USB modem
Ce modem est intéressant car il ne nécessite pas de changer de mode. Il est en permanence dans les deux modes modem et stockage. Ainsi, lorsque vous le branchez vous verrez apparaître une icône de disques optique sur le bureau, mais il fonctionne simultanément comme un modem (sur le port /dev/ttyUSB0).
J'aimerais recevoir des commentaires sur d'autres modems qui fonctionnent de cette façon, afin de leur créer des entrées dans
/etc/udev/rules.d/52-usb_modem_puppy.rules, pour afficher les fenêtres de détection lorsque le modem est branché.

Autres conseils/avis

  • Vous pouvez obtenir de meilleurs/cohérents résultats  si vous branchez le modem après le démarrage. En théorie, si le modem est déjà branché au démarrage il peut fonctionner, mais, dans cette situation, certains rapportent un comportement incohérent.

  • Certains modems 3G n'ont pas besoin de changer de mode. Ils ont été changés une fois, puis le restent en permanence. Vous pouvez vous trouver dans la situation où une icône de disque optique apparaît sur le bureau lorsque vous branchez le modem, mais il fonctionne quand même comme un modem - ce qui signifie qu'il est à la fois dans les deux modes.

  • Installer dans Windows d'abord. Je déteste de recommander ça, mais si vous avez accès à un système Windows, branchez votre tout nouveau modem et connectez-vous au réseau avec Windows. Cela peut éviter quelques tracas d'installation. Après cela, vous pouvez utiliser le modem avec Linux. Pouvez-vous m'envoyer des commentaires sur des expériences sans du tout utiliser Windows, en particulier celles qui ont réussi!

Information technique

Voici quelques notes pour ceux qui veulent comprendre ce qu'il se passe "sous le capot". Les utilisateurs n'ont pas besoin de connaître ce genre de choses.

Concernant la détection, il existe deux types de modems : interne (fixe) ou externe (montable à chaud, ou amovible). Les modems internes sont détectées lors du démarrage, les amovibles peuvent être détectés au démarrage, mais aussi branchés après le démarrage.

Au démarrage, le script
/etc/rc.d/rc.sysinit provoque le chargement des bons pilotes (modules) du matériel détecté. Si vous regardez dans rc.sysinit, vous verrez une ligne de code importante :
   echo add > ${ONEPATH}/uevent #generates an 'add' uevent.
Cela signifie au noyau de générer ce qu'on appelle un "uevent" pour un périphérique matériel détecté. Un programme démon, "udevd" lit ces "uevents" et en accord avec les règles de etc/udev/rules.d et /lib/udev/rules.d, provoque le chargement/installation du pilote, firmware (etc.) approprié.

Le plus important fichier de règles udev est /etc/udev/rules.d/50-udev-puppy-basic.rules, qui contient ces deux lignes :
# kernel firmware loader
SUBSYSTEM=="firmware", ACTION=="add", RUN+="/sbin/pup_event_backend_firmware"
# Module autoloading
ACTION=="add", SUBSYSTEM=="?*", ENV{MODALIAS}=="?*", RUN+="/sbin/pup_event_backend_modprobe"
Les deux scripts 'pup_event_backend_firmware' et 'pup_event_backend_modprobe' s'assurent du chargement du pilote et du firmware. Un firmware est des fichiers de données nécessaires à certains pilotes, et sont conservés dans  /lib/firmware.

Tout ce qui concerne la détection du matériel et le chargement de module est spécialement conçu pour Puppy et complètement différent de toutes les autres distributions Linux. Le firmware aussi (plus tous les autres fichiers de données ou  exécutables) requis par un pilote, peut n'être pas initiallement dans
/lib/firmware, mais dans un fichier "archive" de firmware" conservé dans /lib/modules/all-firmware - pup_event_backend_modprobe s'occupe de décompresser les fichiers archives du firmware approprié.

A noter un point important,  les modems sans fil sont souvent hybrides ou à double-personnalité. Mes modems USB 3G ont deux personalités - ils peuvent se comporter soit comme un périphérique de stockage soit comme un modem. Dans la plupart des cas, lors du premier branchement, ils sont en mode de stockage et ne fonctionnent pas comme un modem. Ils doivent être mis en mode
modem, et il y a le logiciel appelé "usb-modeswitch" pour le faire ...

usb-modeswitch

Il y a des règles spéciales udev qui déclenchent l'application usb-modeswitch,  /lib/udev/rules.d/40-usb_modeswitch.rules et /etc/udev/rules.d/41-usb_modeswitch-puppy.rules.

Lorsque vous branchez à chaud un modem USB, l'USB-modeswitch devrait être déclenché, et le modem passé en mode modem.

La séquence est que la règle udev pour un matériel
USB particulier provoque le lancement de /lib/udev/usb_modeswitch, qui à son tour lance à la fois /usr/sbin/usb_modeswitch_dispatcher et  /usr/sbin/usb_modeswitch_status.
Le premier fera passer en mode modem et si nécessaire chargera un pilote requise par ce modem. Ce dernier est écrit spécialement pour Puppy et affiche les messages d'état à l'écran.

Dans certains cas, usb-modeswitch ne se déclenche
paslorsque par exemple le modem est déjà branché au démarrage. Dans ce cas, lorsque PupDial est exécuté, il lance également /usr/sbin/pupdial_init_hotpluggable, qui détecte le bon modem branché à chaud et relance les "uevents" du noyau, si nécessaire (ce qui déclenchera usb-modeswitch).
 
(c) Copyright Barry Kauler Dec. 2010   -- Trad JJ Moulinier février 2012