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

Documents pareils