La plus récente version française de ce texte se trouve sur son site de référence.
Seule la diffusion des versions non modifiées est autorisée.
Ce document traite des aspects techniques liés à la connexion d'une machine Unix (et plus particulièrement Linux) à d'autres machines. Il n'aborde que fort rarement la théorie sous-jacente, on trouvera donc ici un ensemble de brefs compte-rendus d'expériences, de tuyaux, de « recettes de cuisine ».
Le lecteur est invité à considérer tout cela ainsi, donc à explorer, trouver d'autres sources d'information détaillant mieux les conseils prometteurs ... et tester. Les commentaires et contributions seront les bienvenus !
Sont concernés : UUCP, PPP, SLIP, etc, employés sur le RTC (« Réseau Téléphonique Commuté »), Numéris, ligne spécialisée, Ethernet, etc.
Un miroir des documents « HOWTO » évoqués dans ce document se trouve sur ici.
Configuration UUCP et PPP, client et serveur (L. Bortzmeyer, en anglais)
Si un port série est employé pour la connexion il faut commencer par s'assurer que le noyau Linux comprend le pilote logiciel permettant d'exploiter ce périphérique.
Il suffit d'examiner les messages affichés lors du démarrage, durant lequel
Linux examine le matériel et « annonce » les ressources disponibles. Ces
messages défilent souvent assez vite mais sont le plus souvent conservés
dans /var/log/messages
(ou via la commande dmesg
), donc
accessibles une fois le système démarré.
Un port série, pour le noyau, est appelé "tty". Voici par conséquent une commande possible :
grep 'tty[0-9][0-9]' /var/log/messages
Elle produira par exemple, sur un système comprenant deux ports série standard :
Nov 24 20:02:32 nataa kernel: tty00 at 0x03f8 (irq = 4) is a 16550A
Nov 24 20:02:32 nataa kernel: tty01 at 0x02f8 (irq = 3) is a 16550A
Nov 24 20:02:32
: date et heure d'enregistrement du messagenataa
: nom de la machine hôte (commande hostname
)kernel
: nom du programme auteur de la ligne de trace que
nous lisons en ce moment mêmetty00
: nom physique Unix du périphériqueat 0x03f8
: adresse de base (d'une zone mémoire partagée, car
accessible à la fois par le CPU de la machine et par les circuits de
gestion du port série)(irq = 4)
: numéro de la ligne de requête d'interruptionis a 16550A
: le type de circuit série (dit UART)Certains éléments du répertoire /proc
offrent d'intéressantes
précisions sur le mode de prise en charge des circuits par le
noyau. cat /proc/ioports
, par exemple, révèle les adresses mémoire
d'implantation du (ou des) circuit série reconnus.
Les utilisateurs de cartes série non standard liront le fichier
Documentation/devices.txt
, fourni avec les sources du noyau, pour
déterminer les noms des fichiers spéciaux correspondants. Et probablement
aussi compiler un noyau ad hoc.
Lire le Kernel-HOWTO s'il s'avère nécessaire de compiler un noyau : (le pilote pour port série standard est compilable grâce à l'option "character devices", "standard/generic serial support")
L'administrateur (root
) doit ensuite configurer les logiciels de
communication. Ils offrent tous le moyen de déclarer quel périphérique
exploiter, à quelle vitesse ...
Certains offrent beaucoup plus de paramètres mais cela ne nous concerne pas dans un premier temps.
La communication avec ce « périphérique » passe par un fichier dit «
spécial » placé dans le répertoire /dev
. À presque tout
périphérique physique correspond un fichier spécial, ce n'est pas
spécifique au port série.
Tout logiciel peut, grâce à ce fichier spécial, accéder à une ressource matérielle via le pilote logiciel (« driver ») adéquat. Il ouvrira le fichier spécial et y écrira des données que le logiciel pilote (fourni par le noyau de Linux) fera parvenir au périphérique.
Linux associe aux ports série deux types de fichiers spéciaux :
ttyS
et cua
. Ce dernier type est appelé à disparaître, il
faut donc éviter de l'utiliser.
Un fichier spécial ttyS
permet d'exploiter l'un des ports série de
la machine si le noyau Linux comporte le pilote adéquat (pour ports série,
donc !).
Si le fichier spécial n'existe pas : utiliser mknod
pour le créer.
Prendre garde à ne pas engendrer de conflits :
ttyS
. Il faut cependant rendre inopérant, grâce au
"SETUP" ou à la configuration matérielle de la carte d'extension, le port
série interne (fourni par la machine) correspondant.Utiliser setserial -a NOM-DU-PORT
pour déterminer le type d'un
port donné. Exemple : setserial -a /dev/ttyS0
.
Commencer, en tant que root, par créer un lien modem
grâce auquel
tous les logiciels utiliseront le périphérique nommé « modem ». Voici
comment procéder dans le cas d'un modem connecté au deuxième port série :
cd /dev
ln -s ttyS1 modem
Le Serial-HOWTO fournira d'autres informations utiles.
Pour rendre la connexion ordinateur[-]modem (appelée "DTE") possible ou simplement améliorer ses performances il faut connaître le débit maximum toléré par :
Utiliser setserial
et stty
dans les scripts
automatiquement exécutés lors du démarrage pour paramétrer la vitesse pas
défaut du port à la valeur la moins élevé de ces débits maximum.
Sur une machine moderne exploitant un modem récent, par exemple, la
configuration sous Red Hat s'effectuera grâce à un fichier
/etc/rc.d/rc.serial
contenant :
#!/bin/sh /bin/setserial /dev/modem spd_vhi hup_notify /bin/stty crtscts 38400 < /dev/modem
Ligne de stty
:
spd_vhi
de setserial, permet, d'après le man, ce qu'on
peut d'ailleurs vérifier aisément en envoyant "at /" au modem : "use 115kb
when the application requests 38.4bp.". À partir de là, il me semble plus
propre de demander à tous les scripts 38400 ce qui permet, si on veut
changer, pour une raison ou une autre, la vitesse DTE de changer uniquement
l'option spd_vhi
de setserial par spd_hi
(pour obtenir 57600) ou de l'enlever (pour revenir à 38400) au démarrage.Certaines machines ou modems ne tolèreront pas cela et il faudra remplacer spd_vhi par spd_hi (57600 bps), voire spd_normal (38400 bps).
Tester grâce à un programme de communication (par exemple minicom
ou bien seyon
) jusqu'à ce que le modem réponde "OK" lorsque vous
introduisez un "ATZ".
Un « WinModem », matériel exclusivement dédié à MS-Windows, ne fonctionnera très probablement jamais sous Linux. Mieux vaut de toutes façons acquérir un modem externe, qui fonctionnera sur toutes les machines (indépendamment de leur bus), n'augmentera pas la température près de la carte mère, permettra de surveiller la connexion (diodes visibles, haut-parleur audible) ...
Surveiller Linux Winmodem Support, http://www.math.sunysb.edu/~comech/tools/PCImodems.html et http://www.o2.net/~gromitkc/winmodem.html.
La plupart des modems intégrés à des cartes PCMCIA fonctionnent. Lire à ce propos la documentation du logiciel pilote, appelé 'pcmcia-cs'.
Configurer le modem (chaîne d'initialisation) de façon à débrayer le peu
efficace protocole MNP5
(qui bloque un instant tout transfert afin
de s'escrimer à le compacter, même s'il est incompactable) en faveur de
V42.
Notes de F. Schaefer :
hangup
) lorsque la ligne DTR tombe, cela décoince
pas mal de modems bas de gamme.Qui donc utilise, sous Linux, l'un de ces modems fax capables de stocker messages vocaux et fax même lorsque l'ordinateur est éteint ?
Ou bien les fonctions ATX de réveil en cas d'activité sur le port série ?
Quelles fonctions exploitez-vous (fax ? répondeur ?) ?
Avec quel modem (marque / modèle), quel logiciel (mgetty, hylafax ...), quelle config du SETUP de la machine, quelles options de compilation du noyau ... ?
L'ensemble fonctionne-t-il bien (problèmes ?)
Merci de me contacter par mail connex@nataa.fr.eu.org, je publierai un résumé.
La documentation technique du modem 'Olitec Self Memory' est disponible, un bon développeur devrait donc pouvoir en tirer quelque chose ...
T. Danis :
Pour voir passer les paquets, il existe un outil qui utilise la
bibliothèque qt
: qsermon. Pour avoir accès à toutes les
données nécessaires aux statistiques, il faut appliquer un petit patch
(livré avec qsermon) sur le noyau . L'interface est jolie, avec des
histogrammes des paquets passés dans chaque sens, des diodes pour chacun
des signaux du modem, etc...
Autre outil : serialmon
modemd/rmodem permet d'utiliser des modems installés sur d'autres machines du réseau existe. Voir aussi libmodem
dcon
peut permettre de réaliser de façon simple
des scripts d'automatisation de la gestion des connexions. Il remplace
parfois avantageusement chap
, dip
...
LinuxApps propose des listes d'outils.
Si vous employez chat
n'omettez pas d'échapper les caractères
spéciaux utilisés dans toute chaîne communiquée au modem.
Exemple :
'' \rAT\F\r \
est incorrect. Utiliser :
'' \rAT\&F\r \
Il faut disposer du programme pppd
(souvent en
/usr/sbin/pppd
), généralement livré dans un paquetage appelée
ppp
Imaginet
(O. Tharan)
HOL
et Magic Online
, pour Red Hat et
Debian, pour fetchmailrc, inn, super, popclient, sendmail
(M. Verdier)
HOL
(D. Braussen)
La Red Hat 5 offre de très efficaces outils de configuration. Commencer, en
tant que root, par utiliser netcfg
.
Configurer des noms complets, par exemple :
Hostname: mabecane.bidon.fr Domain: bidon.fr
usernet
(utiliser de
préférence une version 1.0.6-1 ou postérieure).
PPP Multilink Protocol (MP) agrégation de canaux PPP.
Ils ne facilitent pas toujours la préalable étape de configuration !
Pload est un outil d'examen en continu des performances.
Il est parfois souhaitable d'automatiser des sessions PPP, par exemple afin de télécharger des fichiers aux heures de facturation minimale.
Utiliser pour cela l'option ipparam
pppd
. Cette option
accepte un paramètre quelconque qui sera communiqué aux scripts
automatiquement invoqués par pppd. Ces derniers pourront grâce à cela
"décider" d'effectuer ou non certaines tâches. Lire à ce propos la page de
man de pppd
.
L. Lopez nous offre un exemple : Voici un script de connexion modifié pour travailler en mode automatique. Connexion puis déconnexion auto :
/usr/sbin/pppd -d \
crtscts\
modem\
asyncmap 0\
mtu 296\
noipdefault\
ipparam getmail \ <<<< !!! C'est ici que ca se passe !!!!
defaultroute\
connect "/usr/sbin/chat -v -f /etc/ppp/$1.chat"\
38400\
/dev/ttyS1
On peut ensuite tester la valeur du paramètre dans ip-up comme ceci :
## permet la deconnexion automatique si le 6eme parametre est utilise
## et contient la chaine "getmail"
if [ "$6" = "getmail" ]
then
echo "fin de travail : deconnexion" > $out
sleep 10s
/etc/ppp/ip-off
else
...
Pour automatiquement démarrer périodiqueemnt une session PPP) utiliser PPP_poll.
T. Parmelan note :
La version Linux de pppd
reconnaît [une option de déconnexion
automatique (non documentée)]
Pour pppd-2.2.x, il s'agit de "idle-disconnect nb_secondes".
Pour pppd-2.0.x, il s'agissait (il me semble) de "idle-timeout".
Attention : la déconnexion automatique n'est assurée que si aucun paquet IP ne transite durant le temps "idle". Certains logiciels (par exemple les clients POP) effectuent périodiquement des transations et peuvent donc, mal configurés (période trop courte), interdire la déconnexion automatique.
Appliquer les conseils prodigués au début de ce document afin de s'assurer de la configuration du port série et du modem : inutile d'espérer obtenir un bon résultat si le modem ne débite pas plus de ce qu'autorise le port série ... configuré à 9600 bps !
Utiliser irqtune
pour modifier la priorité de service des pilotes
liés aux lignes physiques d'interruption. Lire sa documentation, claire et
riche (en anglais).
S'assurer que les modems se connectent en employant le débit maximal théoriquement possible (lire le fichier de trace, voir section "En cas de problème").
Avec certaines configurations il est nécessaire de compiler PPP en tant que module pour qu'il puisse utiliser le compactage d'en-têtes.
Augmenter les valeurs attachées aux paramètres mtu
et mru
(maxi : 1500) afin d'augmenter le ratio de charge (donnéees
utilisateur)/(données protocoles).
Les augmenter améliore le taux de transfert des données, les diminuer pour
réduire les « latences », donc améliorer le « temps de réponse perçu ».
Les réduire si le serveur ne le tolère pas ou si transferts deviennent trop
heurtés. Placer par exemple dans le fichier des options de pppd
(souvent /etc/ppp/options
) :
mru 576
mtu 576
L. Sintes a empiriquement déterminé cette approche : Quand la config par défaut ne semble pas être optimum j'essaye :
mru 296 ; mtu 1064
notamment avec des disques IDE et j'évite ainsi d'utiliser hdparm.
puis :
mru 552 ; mtu 1064.
disque SCSI. Liaison de bonne qualité.
Merci à ceux qui en savent plus de m'écrire !
Installer un bon mandataire ("proxy") cache, par exemple wwwoffle.
Installer un serveur de noms en mode « cache » afin de réduire le nombre
d'interactions réseau avec les serveurs distants. Lire à ce propos le HOWTO
« DNS ». Red Hat : utiliser le paquet caching-nameserver
.
Ne pas utiliser un noyau compilé avec « always defragment » (sauf si machine passerelle ou bastion) et « optimize as router not host ».
Certains fournisseurs emploient des machines capables de négocier une connexion (« login ») très accélérée (par rapport au traditionnel "login:", "Password:") grâce à PAP.
P. Saratxaga : L'option +ua est obsolète et peut être supprimée à tout moment. La bonne façon de faire est d'editer /etc/ppp/pap-secrets et de mettre :
votrelogin identifiantduFAI votremotdepasse
identifiantduFAI
n'a aucune importance, c'est pour pouvoir
distinguer entre plusieurs hôtes distants. Le remplacer par '*' (un
astérisque) si la machine ne se connecte qu'à un seul système distant.
Dans la ligne de commande de pppd il faut ajouter les options :
user votrelogin remotename identifiantduFAI
Si c'est CHAP qui est utilisé c'est quasiment pareil sauf que le
fichier à éditer est /etc/ppp/chap-secrets
. Les paramètres
de pppd
sont en ce cas :
name votrelogin remotename identifiantduFAI
Il faudra aussi modifier le script d'appel de sorte qu'il s'achève sitôt la
connexion physique établie, c'est-à-dire ainsi dans le cas d'un script
exploitant chat
:
CONNECT ''
Si vous ne parvenez pas à déterminer quel script d'appel est employé sachez que :
/etc/ppp/ppp-on-dialer
chat
,pppd
, dans le script de connexion,
après l'argument connect
P. Saratxaga :
refuse-chap
à la place de -chap
et
require-pap
à la place de +pap
.
nmbd
de la suite Samba est un serveur WINS.
Donc avec les versions 2.3 de ppp on peut même avoir des clients MS-Windows
95 qui se connectent et utilisent les clients MS-Windows etc.
ms-dns
et ms-wins
(deux ou trois, je ne me souviens plus) donc des serveurs DNS secondaires,
comme dans /etc/resolv.conf
Ne plus lancer pppd qu'en mode debug et surveiller le contenu du fichier
historique d'activité (souvent /var/log/messages
).
Vérifier les contenus de tous les fichiers : certains outils d'administration automatique mal conçus (ou utilisés) remplacent parfois brutalement les informations qu'ils contiennent.
C. Roth explique que les utilisateurs de modems USR Sportster dont
la connexion se bloque (pas d'activité IP) et pour lesquels pppd
produit le message CCP: timeout sending config-request
doivent
adopter la configuration par défaut du modem (chaîne d'initialisation
AT&F1
, ajouter si nécessaire B0
) et surtout
n'utiliser que des commandes AT libellées en majuscules ou bien en
minuscules (pas de mélange) !
É. Jacoboni : Message d'erreur SIOCADDRT
avec les noyaux
2.1 : récupérer la dernière version de PPP (en ce moment : 2.3.5).
En cas de problèmes tenter de se connecter grâce à un script de shell (sans
interface graphique, donc), afin de déterminer si pppd
est en
cause.
Si le flux de paquets IP semble heurté placer les lignes suivantes
dans /etc/modules.conf
:
alias tty-ldisc-3 ppp alias ppp-compress-1 off # predictor-1 not yet supported alias ppp-compress-2 off # predictor-2 not yet supported alias ppp-compress-21 bsd_comp alias ppp-compress-24 ppp_deflate alias ppp-compress-26 ppp_deflate
En cas d'incidents (plantages) étranges installe la plus récente version du noyau qui résiste aux attaques IP connues.
Diminuer la vitesse DTE (port série vers modem).
Établir un débit fixe entre l'ordinateur et le modem s'avère parfois
nécessaire (par exemple, sur certains modems USR, via
AT&B1
). Merci à C. "CHiPs" Petit.
L. Martinez, à propos de l'USR SportsterMessagePlus :
Ce modem supporte une saloperie de mode autonome.
Et comme par hasard (du moins dans la configuration que j'utilise), la
commande ATZ le bascule en mode autonome, d'où il est impossible avec
les scripts classiques de chat, de monter une connexion, car ATDTnuméro
renvoie une erreur.
Si à la place de ATZ vous mettez dans vos scripts AT&F1, tout rentre
dand l'ordre.
P. Grange précise : Pour desactiver le mode autonome: AT+MCS=0
« Pertes de caractères » (débit anormalement lent) : utiliser le
paramètre -u1
du logiciel (Linux) hdparm
afin d'autoriser
le pilote du disque à oeuvrer sans masquer les interruptions, donc en
laissant le pilote série prendre en charge le flux de données machine
[-] modem.
ATTENTION : ce paramètre peut
s'avérer dangereux. Lire la documentation de hdparm
, sauvegarder
les données PUIS tester avant de l'adopter.
Si la machine dispose d'un port série desservi par un circuit 16550 (UART
avec tampon) ne pas négliger de l'affecter au modem plutôt que d'utiliser
un circuit 8250 ou bien 16450. Invoquer setserial
NomDuPortSérie
pour déterminer le type du circuit.
En cas de problèmes étranges recompiler un noyau avec PPP intégré (et non en module).
Raccrochage intempestif : essayer de désactiver le signal d'appel. Lire à ce propos la FAQ] Configuration modem sur protocole PPP.
Message d'erreur CCP: timeout sending config request
: utiliser
l'option de pppd '-bsdcomp'.
Commencer par un salutaire :
chmod a+r /etc/resolv.conf /etc/hosts /etc/services
Le fichier /etc/resolv.conf
doit impérativement déclarer au moins
un nameserver
.
L. Picouleau note : j'ai été très ennuyé parce que je n'avais pas mis de nom de domaine considérant que ma machine n'était pas connectée à un réseau. Avoir une liaison PPP c'est ETRE CONNECTE à un réseau TCP/IP. Ce simple détail compris, bcp de choses se sont débloquées.
Pour savoir si la connexion PPP est ou non active invoquer
/usr/ifconfig
et chercher une section ppp
.
Pour détecter les causes des problèmes il faut utiliser le mode
debug
, voire kdebug
de pppd
. Surveiller le
fichier de trace syslog
(souvent /var/log/messages
).
Si les outils réseau ne fonctionnent pas et produisent un message d'erreur : nomDuProtocole: nomDuProtocole/typeDeTransport: unknown service, par exemple :
ftp: ftp/tcp: unknown service telnet: tcp/telnet: unknown servicesolution :
chmod a+r /etc/services
.
Si le fichier de trace indique que la connexion avorte après des échanges «
LCP ConfReq » essayer de modifier la valeur associée au paramètre
asyncmap
(M. Bouget indique que 00A0000 donne
satisfaction).
Si le fichier de trace indique que la connexion avorte après des échanges «
rcvd LCP ConfAck ... <auth pap> » vérifier que pppd
ne
tente pas d'employer PAP
ou CHAP
: renoncer aux arguments
+pap
, +chap
, login
, user
...
Le "Kiosque" exige le nom du service auquel vous souhaitez vous connecter. Ceci s'obtient en ajoutant le couple "Ser? Votre_FAI" avant "login" et "password" dans votre "chat script" PPP. "er? CLUBINT" par exemple si Club-Internet est votre FAI. Votre service technique est en mesure de vous fournir le nom à employer.
Essayer l'option silent
de pppd.
Linux vers MS-Windows : il faut employer un pppd
avec gestion du
protocole "MSCHAP" (autentification CHAP à la sauce Microsoft). Récupérer
les sources de pppd
et lire les fichiers README
.
D. Delamarre : La base de registres de MS-Windows permet de
débrayer MSCHAP
. Ou bien autoriser dans la configuration réseau
RAS
le protocole CHAP
standard (sans chiffrement).
MS-Windows client de Linux : P. Saratxaga nous guide :
Utiliser mgetty
compilé avec
-DAUTOPPP -DUSE_MS_DNS=1
. Configurer
/etc/ppp/pap-secrets
et
/etc/mgetty+sendfax/login.config
. Les clients MS-Windows 95
appellent avec autentification PAP, ils reçoivent du serveur pppd
l'adresse IP du DNS à utiliser. Cette option s'énonce dns-addr
pour ppp
2.2 et ms-dns
pour ppp 2.3).
En résumé :
Installer :
Dans /etc/mgetty+sendfax/login.conf
une ligne adéquate.
Voici un exemple (pour ppp 2.2) :
/AutoPPP/ - ppp_in /usr/sbin/pppd auth -chap +pap login crtscts :192.168.85.133
Voici un exemple (pour ppp 2.3) :
/AutoPPP/ - ppp_in /usr/sbin/pppd auth refuse-chap require-pap login crtscts :192.168.85.133
dans /etc/ppp/chap-secrets
:
* * "" 192.168.85.133
dans /etc/ppp/options
:
dns-addr 192.168.85.130 # compiler pppd avec -DUSE_MS_DNS=1
(à partir de la version 2.3 de ppp : utiliser ms-dns
en lieu et
place de dns-addr
).
Remplacer bien entendu 192.168.85.133 par l'adresse IP à attribuer aux
appelants, et 192.168.85.130 par l'adresse du serveur DNS local. S'il n'y a
pas de serveur de noms local : installer le programme named
. Lire
la documentation de mgetty et pppd.
Le rpm
de pppd 2.2 n'est pas compilé avec l'option
USE_MS_DNS
, il faut donc récupérer le paquet .src.rpm
,
éditer le fichier .spec
pour remplacer le make
dans
%build
par make USE_MS_DNS=1
.
A. Lesné:
J'ai récupéré pppd 2.3.3, compilé avec l'option CHAPMS
et
USE_CRYPT
, et, comme d'habitude, ça ne marchait toujours
pas. L'info, je l'ai trouvé par hasard, en promenant mon oeil dans les
sources du Makefile du répertoire pppd: il y a maintenant une option
MS_LANMAN
qui n'est documentée que dans le source. Eh bien, en
compilant avec ce paramètre, miracle ! Les machines MS-Windows 95 acceptent
enfin de causer ppp avec Linux.
Ci-dessous, ce qu'on trouve dans chap_ms.c
:
/*
* Modifications by Lauri Pesonen / lpesonen@clinet.fi, april 1997
*
* Implemented LANManager type password response to MS-CHAP challenges.
* Now pppd provides both NT style and LANMan style blocks, and the
* prefered is set by option "ms-lanman". Default is to use NT.
* The hash text (StdText) was taken from Win95 RASAPI32.DLL.
Lire aussi le Modified Linux PPP/NT HOWTO
P. Saratxaga :
L'option "login" signifie ceci : si un identifiant a un password vide ( "" )
dans le fichier *-secrets alors on re-essaye avec le mot de passe de
/etc/passwd
(pour autant que l'identifiant existe aussi dans ce
fichier). Donc mettre
* * ""
est un moyen simple et efficace de dire d'utiliser /etc/passwd
.
Lire ce document rédigé par H. Lemoine
Lire la section UUCP du
Guide du Rootard Linux, ainsi que les les fichiers
« infos » livrés avec Taylor UUCP. Utiliser /usr/sbin/uuchk
pour
vérifier la configuration.
Le client dispose le plus souvent d'une adresse IP dynamique attribuée
grâce à DHCP
, dont le logiciel client (sous Linux) est un démon
appelé dhcpcd
(DHCP Client Daemon).
Connexion à Cybercâble (sous RedHat 5.2 ou 6.0).
Sous Red Hat 5.2 ou une 6.0, dhcp est déja installé (sinon voir le cable mini-how-to) et linuxconf aussi. Cette méthode est une méthode de paresseux, et c'est celle que j'ai adoptée.
On imagine que la carte réseau fonctionne correctement et a été reconnue au demarrage, ce qui arrive le plus souvent. Ici, on prend l'exemple d'une ne2000 pci.
En tant que root on lance linuxconf.
NB : linuxconf est un outil de configuration qui se lance en mode console ou sous X
Choisir "tache cliente" / configuration de base de cette machine.
Choisir adaptateur 1 et le paramétrer ainsi :
Ensuite, il faut modifier qqs fichiers.
Tout d'abord le fichier contenant les addresses de serveur de resolution des noms DNS :
/etc/resolv.conf
contient donc :
domain cybercable.fr
nameserver XX
nameserver YY
ATTENTION : XX
et YY
remplace ici les numéros des
serveurs de noms (dits « serveurs DNS ») communiqués par le service
technique de votre fournisseur, le plus souvent dans les documents qui
accompagnent votre contrat d'abonnement.
puis /etc/host.conf
:
order hosts,bind
multi on
puis /etc/hosts
:
127.0.0.1 localhost
enfin, et c'est important :
/etc/sysconfig/network-scripts/ifcfg-eth0
Là il faut rajouter trois lignes (je mets des étoiles devant) :
DEVICE="eth0"
* IPADDR=""
* NETWORK=""
* NETMASK=""
ONBOOT="yes"
BOOTPROTO="dhcp"
IPXNETNUM_802_2=""
IPXPRIMARY_802_2="no"
IPXACTIVE_802_2="no"
IPXNETNUM_802_3=""
IPXPRIMARY_802_3="no"
IPXACTIVE_802_3="no"
IPXNETNUM_ETHERII=""
IPXPRIMARY_ETHERII="no"
IPXACTIVE_ETHERII="no"
IPXNETNUM_SNAP=""
IPXPRIMARY_SNAP="no"
IPXACTIVE_SNAP="no"
Ensuite on teste la config :
/etc/rc.d/init.d/network start
Lance la connexion et doit donner un resultat positif.
Invoquer /sbin/ifconfig
afin de le vérifier :
eth0 Link encap:Ethernet HWaddr 00:80:AD:30:C6:93
inet addr:212.198.18.128 Bcast:212.198.18.255 Mask:255.255.255.0
UP BROADCAST RUNNING MTU:1500 Metric:1
...
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
...
La connexion est rétablie lors de chaque démarrage.
pump (équivalent dhcpcd) pose problème d'upload (entre 10 à 20 Mo inutiles par jour)
donc :
% diff ifup.old ifup
86c86
< if /sbin/pump -i $DEVICE ; then
---
> if /sbin/dhcpcd -d -R $DEVICE ; then
% diff ifdown.old ifdown
45c45
< pump -r -i ${DEVICE}
---
> /sbin/dhcpcd -k ${DEVICE}
La renégociation d'adresse IP (par DHCP) échoue parfois. On peut en ce cas placer en crontab (invocation périodique, par exemple une fois par heure) le script :
#!/bin/sh
if [ -f /var/run/dhcpcd-eth0.pid ] && ps -xh|grep -w dhcpcd > /dev/null ; then
exit 0
else
date >> tmp/dhcpd.died
/etc/dhcp/dhcp-on
fi
Si les performances semblent mauvaises tenter de réduire la MTU.
F. L. nous décrit le câble adéquat.
E. Festinger :
J'ai directement modifié les sources de mgetty (dans le fichier mgetty.c) pour passer automatiquement le port série en 7E1. J'ai fait ça rapidement, et ce n'est pas forcément très propre :-( En particulier, le basculement se fait quand la chaîne de connexion modem contient "CONNECT 1200/75". Il faudrait que je reprenne un peu de temps pour déclarer cette chaîne dans un fichier de conf (mgetty.config par exemple). Voici un (tout) petit patch à partir de la version 1.1.5 :
diff -u --new-file mgetty-1.1.5.orig/mgetty.c mgetty-1.1.5/mgetty.c --- mgetty-1.1.5.orig/mgetty.c Sat May 24 00:20:34 1997 +++ mgetty-1.1.5/mgetty.c Sat May 24 00:22:22 1997 @@ -970,6 +970,18 @@ /* work around NeXT's weird problems with POSIX termios vs. sgtty */ NeXT_repair_line(STDIN); #endif + +#ifdef MINITEL + if (strncmp(Connect, "1200/75", strlen("1200/75"))==0) { + lprintf(L_MESG, "Minitel detected"); + if (tio_get( STDIN, &tio )==ERROR) + lprintf(L_ERROR, "tio_get a failed"); + tio.c_cflag &= ~CSIZE; + tio.c_cflag |= CS7|PARENB; + if (tio_set( STDIN, &tio )==ERROR) + lprintf(L_ERROR, "tio_set failed"); + } +#endif /* MINITEL */ fputc('\r', stdout); /* just in case */
Il faut bien sûr ajouter -DMINITEL lors de la compil du fichier mgetty.c. Je n'ai pu tester cette modif qu'avec Linux. (suggestion de Nat : remplacer
+ if (strncmp(Connect, "1200/75", strlen("1200/75"))==0) {
+ if (strstr(Connect, "1200/75")) != NULL) {
A. Medecin (antoine à neptune fr) a pu connecter un Minitel 2
directement sur sa carte Cyclades grâce à cette ligne, placée dans
/etc/inittab
:
15:2345:respawn:/sbin/getty ttyC5 v23b minitel
/etc/gettydefs
# Connection minitel a distance
v23b# B9600 CS7 PARENB -PARODD CRTSCTS # B9600 CS7 PARENB -PARODD OPOST ECHO CRT SCTS #login: #v22b v22b# B4800 CS7 PARENB -PARODD CRTSCTS # B4800 CS7 PARENB -PARODD OPOST ECHO CRT SCTS #login: #v21b v21b# B9600 CS7 PARENB -PARODD CRTSCTS # B9600 CS7 PARENB -PARODD OPOST ECHO CRT SCTS #login: #v21b
termcap avec une entrée "minitel" (provenance Red Hat).
C. Guibourg : La combinaison de touches (Fct) T puis la touche A oblige le Minitel à émuler un VT52 80x24.
Je recommande d'employer getty_ps
.
Ajouter dans /etc/inittab
(après les consoles virtuelles par
exemple) une ligne du genre :
s1:2345:respawn:/sbin/getty ttyS1 minitel minitel
Ajouter dans /etc/gettydefs
(une seule ligne !):
minitel# B4800 CS7 PARENB -PARODD CLOCAL # B4800 ISTRIP CS7 PARENB -PARODD CLOCAL BRKINT IGNPAR ICRNL IXON IXANY OPOST ONLCR CREAD HUPCL ISIG ICANON ECHO ECHOE ECHOK #@S login: #minitel
En gros : minitel, c'est le nom de la configuration et 4800 le débit de la connexion. Pour les quatres paramètres, lire la page de man de gettydefs. Le minitel à la fin, c'est pour reboucler sur cette conf.
À la main main sur le minitel :
On peur automatiser tout ça tant /etc/gettydefs
, mais ça n'est
alors plus très générique...
Lire le document Comment configurer l'accès Numéris à Internet avec Linux.
R. Pinilla :
La législation française régit les droits et obligations des radioamateurs
(qui doivent détenir des licences). Ils sont les seuls particuliers à avoir
le droit d'émettre des ondes radio à titre privé. Ils ont un réseau
HERTZIEN basé sur le principe de paquets de données. Principe repris depuis
par bien des organismes officiels. Cependant, en France et à la différence
des USA, il est interdit de relier les ondes à un quelconque réseau
TERRESTRE.
Donc, pas de phone patch (téléphoner depuis un équipement radio mobile). Et interdiction formelle de créer un Internet patch.
Utiliser xtel.
A. Gomes-do-Vale précise qu'en cas de blocage apparent du clavier
:
J'ai eu le probleme avec le toolkit Athena, je ne sais pas pourquoi.
Compiler XTel avec Motif (ça marche avec Lesstif), ça devrait resoudre le
problème.
(qui veut traiter de téléphonie vocale sur IP, sous Linux ?)
vgetty
Téléphonie (merci à E. Corvellec) :