Installation de l`ax25 (Packet) sous Linux - F5SOH
Transcription
Installation de l`ax25 (Packet) sous Linux - F5SOH
Installation de l’ax25 (Packet) sous Linux Poitiers 11/03/2000 Introduction Cette documentation est destinée au personnes qui souhaitent débuter en packet sous Linux, elle permet d’installer et configurer un modem de type Baycom ou Yam pour des liaisons ax25 et tcpip. Elle est basée sur un kernel 2.2.x, pour des kernels 2.0.x la méthode est similaire mais il faut faire attention à la syntaxe des commandes dans les scripts de lancement. (voir les pages ‘man’) Modems utilisables sous Linux Les matériels suivants peuvent être intégrés au noyau (Kernel) Linux : Baycom 1200Bds (Tcm3105 ou autre) Picpar 9600Bds. Modem Epp 9600Bds sur port parralèle. Modem Yam 9600Bds Cartes Scc à base de z8530 (Baycom 4/8 et PA0HZP, FPAC). Carte son : - 1200Bds AFSK - 2400Bds AFSK - 4800Bds AFSK - 9600Bds FSK Tnc en mode Kiss sur un port série. Modules ou Noyau ? La reconnaissance des périphériques peut se faire de deux manières : Les ‘drivers’ sont intégrés au noyau Linux. Les ‘drivers’ sont chargés sous forme modules. - La première solution oblige à recompiler un noyau et installer à nouveau Lilo pour le boot de Linux, les matériels sont reconnus directement par le noyau qui se suffit à lui- même. En contrepartie il est d’une taille plus importante et si on souhaite ajouter un matériel il faut compiler le noyau à nouveau….. La deuxième solution est plus souple, elle permet de garder le noyau de la distribution lors de l’installation de Linux sans relancer Lilo. Elle est plus rapide à mettre en œuvre et préférable sur des machines pas trop rapides. (noyau de base + modules nécessaires) Dans certains cas les modules Ax25 sont déjà compilés et disponibles dans le répertoire /lib/modules/<version du noyau>/ (Slackware 7.0) si ce n’est pas le cas, il faut configurer les options du kernel et les compiler. Les ax25-utils En fonction de la version du noyau il faut installer la bonne version d’ax25-utils : Kernel 2.0.36 ou supérieur : ax25-utils-2.1.42a Kernel 2.2.xx : ax25tools-0.0.5, ax25-apps-0.0.4 et libax25-0.0.7 Le noyau Linux Avant toute chose il faut installer les sources du kernel sur le disque dur, elles sont décompressées dans le répertoire /usr/src/linux-2.2.xx. Les noyaux antérieurs à la version 2.2.11 n’incluent pas le modem Yam, si c’est votre cas et si vous souhaitez utiliser ce modem vous devez mettre à jour les sources. La mise à jour (appelé patch) est contenue dans l’archive yamdrv-0.8.tar.gz disponible sur le site de F1OAT (http://www.teaser.fr/~frible/yam.html.) Note : le patch pour le yam est également disponible dans l'archive ax25-tools-0.0.5.tar.gz Comment appliquer le patch ? Aller dans le répertoire /usr/src puis cat /chemin_vers_le patch/yam08-2.2.1.patch.diff | patch –p0 yam08-2.0.36-patch.diff yam08-2.2.1-patch.diff (patch pour noyau de la série 2.0.x) (patch pour noyau de la série 2.2.x) En général on décompresse les sources des ax25-utils dans le répertoire /usr/local/src/ Configurer le noyau Il faut lancer l'interface de configuration du kernel et sélectionner les modems et protocoles à inclure au noyau ou à créer en modules. Dans les versions 2.0.xx les options de noyau orientées radioamateurs apparaissent dans la rubrique ‘Network device support’ pour les versions 2.2.x elles sont regroupées dans une rubrique ‘Amateur Radio Support’ cd /usr/src/linux ("linux" redirige dans le répertoire "linux-2.x.x") Deux interfaces permettent d’accéder aux menus de configuration : = la "pauvre" : taper make menuconfig dans le répertoire /usr/src/linux L'interface est sous une console Linux normale mais graphique tout de même.... :-) = la "riche" : Lancer X-windows (fvwm, kde ou autre) Ouvrir une fenêtre terminal sous X. (rxvt, konsole) cd /usr/src/linux/ make xconfig Aller dans le menu "Amateur Radio Support" (2.2.x) ou Network Device Support (2.0.x) ! " # $ $ # " % & ' ( $ ) * + , - ! & . ! / % . + 0 1 1 2 3 4 2 , 3 3 3 5 6 & % " % ( 7 ! 8 9 : ; < Une fenêtre apparaît avec les différents modems qui peuvent être utilisés en Ax25, ainsi que les différents protocoles (ax25, rose, netrom ) Sélectionner au minimum l'Ax25 dans les protocoles ! La solution des modules est retenue dans cet exemple ---------------------------------------[*] Amateur Radio Support ---------------------------------------<M> Amateur Radio AX.25 Level 2 protocol [ ] pas de DAMA <M> Amateur Radio NET/ROM protocol <M> Amateur Radio X.25 PLP (Rose) ---------------------------------------<M> Serial port KISS driver (utile pour relier 2 machines avec les ports série) ../.. <M> YAM driver for AX.25 (NEW) (option validée suite au patch) ---------------------------------------Dans tous les cas si vous voulez installer d'autres drivers, sélectionner à chaque fois avec "M" (module) et non pas "*", c'est plus souple et ça ne coûte rien de compiler des modules qui plus tard ne seront pas utilisés. Exemple : Modem baycom Half/Full-duplex, Scc (option PA0HZP pour les Scc atepra), Picpar, etc... Une fois les options sélectionnées, quitter l'interface et sauver la configuration. On n'est pas forcement obligé de recompiler le noyau complet, si vous souhaitez le faire tout de même, il faut vérifier les autres rubriques lors de la configuration et c'est pas forcément très clair pour quelqu'un qui débute ! Dans ce cas, reportez-vous au kernel-howto pour faire un make bzImage ou zImage, copier le noyau sur la racine, relancer lilo, etc... Taper make dep (génère les dépendances entre fichiers source) puis make modules C'est assez long, cela compile tous les modules, même ceux que vous n'avez pas vu lors de la configuration du kernel dans les autres menus.... Si vous êtes patient, vous verrez passer des messages avec "ax25", "rose", "baycom*", etc…. c'est normal ! Un moment plus tard taper : > make modules_install ? @ A B C C B A D E ? F G C H I J K L @ E M @ N D ? M J O P P Q R S Q K R R R T U E D A D G V @ W X Y Z [ Les modules fraîchement compilés sont copiés dans /lib/modules/[version noyau]/.. un message apparaît du style : Installing modules under /lib/modules/2.2.9-19mdk/block Installing modules under /lib/modules/2.2.9-19mdk/net Installing modules under /lib/modules/2.2.9-19mdk/misc ../.. etc.... A présent il faut mettre à jour le fichier /etc/conf.modules, ajouter à la fin : (pour un kernel 2.2.xx) alias bcsf0 baycom_ser_fdx alias bcsf1 baycom_ser_fdx alias bcsf2 baycom_ser_fdx alias bcsf3 baycom_ser_fdx alias bcsh0 baycom_ser_hdx alias bcsh1 baycom_ser_hdx alias bcsh2 baycom_ser_hdx alias bcsh3 baycom_ser_hdx alias yam0 yam alias yam1 yam alias yam2 yam alias yam3 yam bcsf0, bcsf1, yam0, yam1 correspondent aux devices, suivis du module à utiliser. Avec la version 2.0.xx les devices du baycom sont nommés bc0, bc1, etc…. Il est alors possible de charger les modules pour vérifier si tout va bien, voici quelques commandes utiles : lsmod : Permet de visualiser les modules qui sont chargés, les dépendances entre modules apparaissent. Exemple pour le module baycom il faut le module ax25. rmmod <nom_du_module> : Permet de retirer un module. Pour retirer le module ax25 il faut enlever les modules qui l'utilisent avant (baycom, yam, rose…) insmod <nom_du_module> : Permet de charger un module. modprobe <nom_du_module> : Identique à "insmod" mais gère les dépendances entre modules de manière automatique (à condition d'avoir le fichier /etc/conf.modules à jour) \ Les différents modems et protocoles sont à présents reconnus sous Linux à condition d'être chargés s'ils sont sous forme de modules, reste à installer les ax25-utils et configurer les modems…. ] ^ _ ` a a ` _ b c ] d e a f g h i j ^ c k ^ l b ] k h m n n o p q o i p p p r s c b _ b e t ^ u v w x y Installation des outils Ax25 Kernel 2.0.36 ou supérieur : ax25-utils-2.1.42a Kernel 2.2.xx : ax25tools-0.0.5, ax25-apps-0.0.4 et libax25-0.0.7 Les ax25-utils regroupent des applications nécessaires à l'utilisation de l'ax25 pour configurer le matériel, des applications de base sont disponibles pour effectuer des liaisons packet. (node Linux, call, mheard, rip98d, etc…) Fichiers de configuration : Applications : Infos sur les ports : /etc/ax25 /usr/bin et autres répertoires dans le path. /proc/sys/net/ax25 (visible après installation complète) Pour installer les ax25-utils il faut récupérer les sources, les compiler ou télécharger les packages déjà compilés au format.rpm (Suse, Mandrake) Compilation des ax25-utils avec un kernel 2.2.xx Récupérer les archives suivantes : libax25-0.0.7.tar.gz ax25-tools-0.0.5.tar.gz ax25-apps-0.0.4.tar.gz Ces fichiers sont disponibles sur le site ftp : ftp://hes.iki.fi/pub/ham/linux/ax25 1 - Placer ces trois archives dans /usr/local/src 2 - Décompacter les trois archives : Dans le répertoire /usr/local/src/, taper : tar xvfz libax25-0.0.7.tar.gz libax25-0.0.7/ libax25-0.0.7/Makefile.in libax25-0.0.7/README libax25-0.0.7/stamp-h.in ../.. etc… puis tar xvfz ax25-tools-0.0.5.tar.gz z ax25-tools-0.0.5/ ax25-tools-0.0.5/Makefile.in ax25-tools-0.0.5/README ax25-tools-0.0.5/stamp-h.in ../.. etc.... { | } ~ ~ } { | | { } | et tar xvfz ax25-apps-0.0.4.tar.gz ax25-apps-0.0.4/ ax25-apps-0.0.4/Makefile.in ax25-apps-0.0.4/README ax25-apps-0.0.4/stamp-h.in ../.. etc… 3 - Installation des librairies Ax25 cd /usr/local/src/libax25-0.0.7/ ./configure --exec_prefix=/usr --sysconfdir=/etc --localstatedir=/var Je préfère pour ma part cette solution, elle configure l'installation pour mettre les binaires, librairies dans les mêmes répertoires qu'avec le noyau 2.0.36 + ax25-utils-2.1.42a make make install make installconf (pour installer des exemples de configuration) 4 - Installation des outils Ax25 cd /usr/local/src/ax25-tools-0.0.5/ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var make make install make installconf En cas de problème avec le script "configure" sur les fichiers ax25.h, rose.h et netrom.h, voir le fichier INSTALL et éditer le fichier config.h dans le répertoire /usr/local/src/ax25-tools-0.0.5/ 5 - Installation des applications Ax25 cd /usr/local/src/ax25-apps-0.0.4/ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var make make install make installconf A présent les exécutables, librairies et fichiers de configuration sont disponibles. Il faut créer les scripts de lancement et modifier les fichiers de configuration ¡ ¢ £ ¤ ¥ ¦ § ¨ © ¨ ¥ ª « « ¬ ® ¬ ¦ ¯ ° ¢ ± ² ³ ´ µ ¶ Compilation des ax25-utils avec un kernel 2.0.36 ou supérieur Récupérer l'archive ax25-utils-2.1.42a.tar.gz Ce fichier est disponible sur le site ftp : ftp://hes.iki.fi/pub/ham/linux/ax25 1 – Copier le fichier dans /usr/local/src/ 2 – Décompacter l'archive : Dans /usr/local/src/ taper tar xvfz ax25-utils-2.1.42a.tar.gz 3 – Compiler les sources : ./configure ./make ./make install ./make installconf Configuration, fichiers de lancement Données de départ pour l'exemple : Deux ports Ax25 : Vitesse 1200Bds 9600Bds modem Baycom sur port série 1 modem Yam sur port série 2 Nom du port VHF UHF Indicatif F5SOH-5 F5SOH-6 Mon adresse IP, host f5soh.ampr.org : 44.151.64.9 Port Tcp/ip par défaut : VHF (Baycom sur Com1) Le lancement de l'Ax25 Le chargement des modules doit se faire de manière automatique, il ne s'agit pas de taper toutes les commandes les unes après les autres à chaque démarrage de la machine. Afin d'isoler les problèmes éventuels lors des différentes commandes, l'initialisait va se faire de la manière suivante à partir du fichier /etc/rc.d/rc.local (les autres fichiers de lancement sont aussi dans /etc/rc.d/) rc.local rc.ax25 (Modules de base + baycom) rc.yam · Vous pouvez télécharger un script de configuration Ax25-Install qui permet de créer les fichiers ci-dessous à l'aide menus sur http://f5soh.free.fr/linux/ (voir à la fin) ¸ ¹ º » ¼ ¼ » º ½ ¾ ¸ ¿ À ¼ Á Â Ã Ä Å ¹ ¾ Æ ¹ Ç ½ ¸ Æ Ã È É É Ê Ë Ì Ê Ä Ë Ë Ë Í Î ¾ ½ º ½ À Ï ¹ Ð Ñ Ò Ó Ô Le fichier rc.ax25 Ce fichier permet de charger les différents modules et d'installer le modem baycom sur le Com 1. #!/bin/sh # # Fichier /etc/rc.d/rc.ax25 echo "Installation des modules Ax25" echo "" # (obligatoire) insmod ax25 # # (modules optionnels) insmod rose insmod netrom # # Pour une liaison Kiss entre deux machines # Ex: Win95/Flexnet (driver Kiss <--> Linux) + 3 fils Rxd/Txd croisés insmod mkiss sleep 1 # Mettre des "#" en début de ligne pour dévalider si pas de Baycom # ----------------------------------------------------------------------# Baycom, Half-Duplex, 1200Bds sur Com1, squelch logiciel. echo "installation du modem Baycom sur Com1" insmod hdlcdrv # # Setserial pour éviter les conflits avec le port Com. /bin/setserial /dev/ttyS0 uart none modprobe baycom_ser_fdx mode="ser12*" iobase=0x3f8 irq=4 sethdlc -p -i bcsf0 mode "ser12*" io 0x3f8 irq 4 sethdlc -a -i bcsf0 txd 400 slot 200 ppersist 100 half /sbin/ifconfig bcsf0 hw ax25 f5soh-5 up /sbin/ifconfig -i bcsf0 44.151.64.9 /sbin/ifconfig -i bcsf0 netmask 255.255.255.0 # ----------------------------------------------------------------------echo "Installation du modem Baycom terminée" echo "" Õ Ce script est prévu pour les kernels 2.2.xx, la syntaxe diffère légèrement des anciens ax25-utils-2.1.42a sur certaines commandes. Attention lors de la déclaration du chemin pour accéder à l'exécutable 'setserial', suivant les distributions il n'est pas au même endroit (/bin) ce qui provoque par la suite une erreur lors du chargement du baycom Ö × Ø Ù Ú Ú Ù Ø Û Ü Ö Ý Þ Ú ß à á â ã × Ü ä × å Û Ö ä á æ ç ç è é ê è â é é é ë ì Ü Û Ø Û Þ í × î ï ð ñ ò Le fichier rc.yam #!/bin/sh # /etc/rc.d/rc.yam # # Installation du modem Yam sur le Com2 echo "Installation du modem Yam sur le Com2" # # Chargement du module yam.o insmod yam # /bin/setserial /dev/ttyS1 uart none /usr/sbin/yamcfg yam1 io 0x2f8 irq 3 pers 255 /sbin/ifconfig yam1 44.151.64.9 netmask 255.255.255.0 hw ax25 F5SOH-6 up echo "" echo "Installation du modem Yam terminée" Le fichier rc.local Dans /etc/rc.d/, éditer le fichier rc.local et ajouter les lignes suivantes à la fin : ------------------# Lancement de l'ax25 /etc/rc.d/rc.ax25 /etc/rc.d/rc.yam # Lancement du daemon mheard /usr/sbin/mheardd ------------------- Cette manière pour lancer les différents scripts est valable pour les distributions Mandrake, Redhat, Slackware. La distribution Suse utilise un système de lancement différent. Pour plus loin. Le fichier axports ó # /etc/ax25/axports # # The format of this file is: # name callsign speed paclen window description # VHF F5SOH-5 1200 255 3 Voie VHF (Baycom bcsf0) UHF F5SOH-6 9600 255 3 Voie UHF (Yam yam1) ô õ ö ÷ ø ø ÷ ö ù ú ô û ü ø ý þ ÿ õ ú õ ù ô ÿ ú ù ö ù ü õ La configuration TCP/IP en bref Vous devez déclarer une voie par défaut pour le trafic TCP/IP, ajouter les lignes à la fin du rc.ax25 ou rc.yam suivant la voie par défaut choisie. Exemple : voie par défaut VHF, Baycom le serveur f5kbs.ampr.org sur VHF accès au réseau des landes (44.151.40.0) via f5kbs une station distante (F5MUL) sur UHF, Yam 9k6 Ajout de ligne pour le routage Tcpip : -----------------/sbin/route add default bcsf0 # # Pas obligatoire puisque bcsf0 (VHF) est le port par defaut # /sbin/route add -host f5kbs mss 512 irtt 60000 bcsf0 /sbin/route add -net 44.151.40.0 netmask 255.255.255.0 gw f5kbs bcsf0 # # Cette ligne est obligatoire car une demande de connexion venant de # f5mul entrainerait une réponse sur bcsf0 (défaut) /sbin/route add -host f5mul mss 512 irtt 30000 yam1 -----------------Si nécessaire ajouter des entrées dans le fichier /etc/hosts : 44.151.40.3 f5kbs 44.151.40.20 f5mul Une fois ces paramètres rentrés, il est possible de voir les ports au niveau du kernel avec la commande "ifconfig", les routes déclarées avec "route" La première connexion Pour connecter par exemple F5KBS-1 via le port VHF (Baycom 1200Bds) Taper : call vhf f5kbs-1 Pour faire un ping en TCP/IP : ping -i 10 f5kbs ! " ! # $ $ % & ' % & & & ( ) * + , - . / / Lancement des scripts avec la Suse (6.2 et plus ?) 1- Présentation Le lancement des applications ou scripts est géré par le fichier /etc/rc.config , dans ce fichier on trouve des variables. Ces variables correspondent à des fichiers situés dans /etc/rc.d, des liens symboliques placés dans /etc/rc.d/rc2.d/ (dans le cas d'un lancement en niveau 2. 2- Exemple Je souhaite lancer le script rc.ax25, placé dans /etc/rc.d/ Créer un fichier ax25 comme suit dans /etc/rc.d/ en éditant un fichier existant : #! /bin/sh # /sbin/init.d/ax25 . /etc/rc.config # Determine the base and follow a runlevel link name. base=${0##*/} link=${base#*[SK][0-9][0-9]} # Force execution if not called by a runlevel directory. test $link = $base && START_AX25=yes test "$START_AX25" = yes || exit 0 # The echo return value for success (defined in /etc/rc.config). return=$rc_done case "$1" in start) echo -n "Démarrage de l'ax25" startproc /etc/rc.d/rc.ax25 || return=$rc_failed echo -e "$return" sleep 6;; *) echo "Usage: $0 {start}" exit 1;; esac # Inform the caller not only verbosely and set an exit status. test "$return" = "$rc_done" || exit 1 exit 0 Ce script redirige vers le fichier rc.ax25, pour le tester taper /sbin/init.d/ax25 start Ajouter la ligne suivante à la fin du fichier /etc/rc.config START_AX25 = "yes" (ou no) Créer un lien symbolique entre le fichier /etc/rc.d/rc.ax25 et /etc/rc.d/rc2.d/S22ax25 (S pour start, 22 pour qu'il soit exécuté juste avant l'entrée en console) ln -s /etc/rc.d/ax25 /etc/rc.d/rc2.d/S22ax25 Ici le lien symbolique concerne le niveau 2 de démarrage, soit un login en mode texte. Dans le cas d'un login en mode graphique, c'est le niveau 3. Il est préférable d'avoir testé le script rc.ax25 avant de le lancer an automatique !!! Si vous devez lancer par exemple le fpac, cela donnera par exemple un lien symbolique S23fpac avec un fichier/etc/rc.d/fpac qui exécute fpac.sh et une variable START_FPAC = "yes" dans /etc/rc.config. Le n° 23 est choisi pour lancer le fpac une fois toute la partie ax25 initialisée (ports ax25 actifs) 0 Note : les variables sont également visibles dans YaST -->Administration du système --> Modifier le fichier de configuration 1 2 3 4 5 5 4 3 6 7 1 8 9 5 : ; < = > 2 7 ? 2 @ 6 1 ? < A B B C D E C = D D D F G 7 6 3 6 9 H 2 I J K L M N Script de configuration Ce script est destiné aux nouveaux venus sous Linux souhaitant configurer un modem Baycom et/ou un modem Yam avec Tcpip sur leur machine.... sans trop de difficultés, j'espère. Il faut avoir installé les ax25-utils avant ! - Récupérer l'archive : ax25-install.tgz sur http://f5soh.free.fr/linux/ - Copier cette archive dans /root - Décompresser : tar xvfz ax25-install-??.tgz - Passer dans le répertoire ax25-install (cd ax25_install) puis lancer le script : "./ax25_inst" O Il est possible que sur certains systèmes en console Vga 80x25 le shell plante et certaines fenêtres n'apparaissent pas. Dans ce cas, lancer le script avec l'option -25 : ./ax25_inst -25 (-h pour l'aide) Vous pouvez aussi passer en mode Vga extended, éditer le fichier /etc/lilo.conf et ajouter une ligne : vga=extended (voir "man lilo.conf") A condition que votre noyau supporte ce mode......sinon il faut le recompiler. P Q R S T T S R U V P W X T Y Z [ \ ] Q V ^ Q _ U P ^ [ ` a a b c d b \ c c c e f V U R U X g Q h i j k l m