Configurer L'AX25 Sous Linux


But de la page :           Installer et configurer l'AX25 sous Linux j'usqu'à la première connexion .
Base :                            RedHat 7.2 mais ca devrait s'adapter sans trop de problèmes à une plus
                                       vieille ou à une Mandrake .


J'essaie d'être basic et d'expliquer un maximum mais ceci n'est pas un cour de Linux
mais d'AX25 sous Linux, vous devez déja avoir
un minimum de connaissances,
 les liens les plus utiles et en francais sont
ici .  





Installation de Linux


Si vous êtes débutants à l'installation ne faites pas d'épicerie installez TOUT.
Pour ceux qui commencent à connaître il vous faut une redhat standard cochée
par défaut, networking, outils de devellopement, librairies, sources et headers du  kernel.
Si vous comptez faire du mode graphique installez aussi Gnome et Kde pour avoir un
évantail maximum d'applications. Utilisez "grub" (par défaut) en gestionnaire d'amorçage.
Par pitié dites OUI quand on vous demande de faire une disquette boot.




Recompilation du kernel

Houlà ! Dur dur mais il faut y passer, l'AX25 n'est pas coché par defaut.  Je vais quand même soigner cette partie même si c'est du Linux pur.
En fait j'avais moins détaillé la première fois que j'ai fais cette rubrique mais il restais finalement tellement peu à faire pour qu'on puisse  la considérer comme un mini Kernel-Howto à peu prêt correct que j'ai fait le pas, il y a le strict minimum, vous pouvez très bien vous demander encore ce que c'est qu'un kernel après en avoir compilé un ! Manque les remarques des gens qui s'en sont vraiment servi pour voir si ca tient la route !
 
Attention ce n'est pas difficile de compiler un kernel mais malheureux ne faites pas ca le premier jour où vous installez Linux, lisez les docs et dans ce cas en particulier le "Kernel-Howto" de référence, voir lien plus haut le lien sur les sites de documentation. Sauvegardez vos documents et vos fichiers de configuration  (/etc/* /var/* $home/* ) auparavant.
Si votre Linux est tout cassé après, que vous jetez votre savate dans l'écran, que celui-ci prend feu et que de rage vous le jetez par la fenêtre, si par hasard il atterri sur une voiture qui s'enflamme également et qu'un avion crash sur une péniche suite à la fumée dégagée
 JE NE SUIS PAS RESPONSABLE !
Vous êtes prévenus !
Ceci dit si vous faites réellement bien et sérieusement ce qui est écrit ci-dessous, même si vous connaissez mal Linux vous devriez pouvoir rebooter même s'il y a des erreurs ou s'il manque des drivers dans un premier temps, au besoin utilisez votre disquette boot.

- Tant qu'a faire on va récuperer le dernier kernel disponible sur ftp://ftp.free.fr/mirrors/ftp.redhat.com/updates/7.2/en/os/ et le personnaliser à son callsign.

- Choisissez votre version en fonction de votre machine.

- Login en root

cd répertoire où vous avez téléchargé
rpm --upgrade kernel-version.rpm


cd /usr/src/linux/config (ou  cd /usr/src/linux-version/config)

- Choisissez votre config

ls -l

cp -f votreconfig ../.config
cd ..


make config (Pour les puristes)

make menuconfig (Pour les malheureux en mode texte)
make xconfig (Pour les plus heureux, avec un GROS PC tout neuf en mode graphique, Ha ! Heu  lancez l'interface graphique avant ! Ca ne gène pas !)
)
- Rubrique "Amateur radio support" cochez ceci
- Sous rubrique "ax25 network device drivers" cochez ceci

Attention certaines rubriques ne sont pas cochées car la compilation est difficile voire impossible ou provoque des erreurs, donc si vous voulez tout cochez à vos risques et périls !

Si c'est comme chez moi (RH 7.2) et que vous prenez par exemple un kernel pour Athlon ca va coincer à la compilation,  donc soit vous essayez déja sans rien toucher soit :

- Vous jetez maintenant un oeuil dans le fichier de config,  ca ne mord pas !

pico .config

et virez sauvagement toutes les lignes "CONFIG_ABI*"

- Soit vous êtes à la bourre :

cat .config | grep -v CONGIG_ABI > config

mv config .config

- Après vous être sauvagement défoulé éditez le Makefile :

pico Makefile

- Rubrique

EXTRAVERSION = -Xcustom

Mettez  à la place :

EXTRAVERSION = -votre_indicatif


Maintenant passons à la compilation en elle même :

make dep

make clean
make bzlilo
make modules
make modules_install

Si vous voulez manger entre temps :

make dep && make clean && make bzlilo && make modules && make modules_install


Mais bon, si vous ne connaissez pas trop vous aurez du mal à savoir où ca a coincé donc restez sage et faites les un par un,
il y en a pour 1h sur un Athlon 1Giga.


Vous avez maintenant un /vmlinuz, un /System.map et normalement un truc du genre /lib/modules/version- indicatif


Tapez ls pour voir tout ca :

ls -l /
ls -l /lib/modules

Jusque là nous n'avons pas touché à l'amorçage du système.
Nous allons faire un backup des fichiers boot :

cp -rf /boot /boot.bak

Si vous utilisez lilo en boot manager :

cp -f /etc/lilo.conf /etc/lilo.conf.bak

Pas de regrets ?  
Allons-y !

- Jettez un oeuil sur ce qu'il y a là dedant :

ls -l /boot


- Récupérez votre oeuil, il pourra encore servir.
 
- On enlève  les anciens fichiers dans /boot

rm -f /boot/vmlinuz*  initrd* System.map*

- On met en place notre nouveau kernel :

cp -f /vmlinuz /boot/vmlinuz -version-indicatif
cp -f /System.map /boot/System.map -version-indicatif
/sbin/mkinitrd /boot/initrd -version-indicatif.img version-indicatif

----------

Cette dernière commande quelquefois peut ne pas fonctionner et vous donne un message d'erreur style
tous les loop devise sont occupé, pas d'affolement ! Faite déja toute la suite après les -------- et revenez
ici avant de rebooter :

Si vous avez lilo modifiez le /etc/lilo.conf et commentez la ligne où il y a inird (mettez un # en
début de ligne) :

pico /etc/lilo.conf

- Rebootez (ca va faire des erreurs mais ca doit marcher) , faites la commande :
- Loggez vous en root.
/sbin/mkinitrd /boot/initrd -version-indicatif .img version-indicatif

- Réeditez le /etc/lilo.conf    en enleve   le # que vous avez mis.
Tapez :

lilo

- Rebootez, ca doit marcher !

- Si vous avez grub ne touchez a rien,

- Au premier reboot dans le boot manager grub mettez vous sur Linux. Tapez e pour editer
le fichier boot, mettez vous sur la ligne ou il y a initrd, virez la avec d.
- Tapez b pour booter, ca va booter avec quelques erreurs.
- Loggez vous en root.
- Faites la commande :

/sbin/mkinitrd /boot/initrd -version-indicatif .img version-indicatif

Rebootez, ca doit marcher !

------------


ln -sf /boot/vmlinuz-version-indicatif /boot/vmlinuz
ln -sf /boot/System.map-version-indicatif System.map
ln -sf /boot/initrd-version-indicatif.img /boot/initrd.img

Si vous avez une redhat 7.2 le dernier fichier /boot/initd.img n'existait pas avant
mais il va nous permettre de toucher une fois et une seule au fichier boot, PLUS BESOIN
D'Y TOUCHER DANS LES COMPILATIONS FUTURES
 

-  Les cinq version-indicatif en rouge doivent concorder.

- Si c'est votre première compilation avec cette documentation vous devez editer le fichier de démarrage :

- Si vous avez grub en gestionnaire d'amorcage :

pico /boot/grub/grub.conf

Seules deux lignes qui doivent à peu prêt ressembler à ceci nous interressent :

kernel /boot/vmlinuz ro root=/dev/hddX
initrd /boot/initrd-version.img

Vous devez remplacer ce qu'il y a  en vert ci-dessus par ce qu'il y a  en jaune plus haut.

- Si vous avez lilo en gestionnaire d'amorcage c'est le même pricipe, vert et jaune doivent concorder, ne touchez pas au reste !

pico /etc/lilo.conf

Si vous utilisez grub, que c'est votre deuxième compilation et que la première a bien marché vous avez peut-être remarqué la ligne

splashimage=(hd2,1)/boot/grub/splash2.xpm.gz

Amusez vous à personnaliser encore plus le gestionnaire d'amorcage :


Remplacez splash2.xpm.gz par un fichier de votre choix
ou éditer celui-ci :

cp /boot/grub/splash2.xpm.gz

- décompressez le

gzip -d /boot/grub/splash2.xpm.gz

On obtient un splash2.xpm

Sous votre interface graphique démarrez gimp. (Clic droit sur le bureau, exécuter une commande, gimp)

Editez le comme vous voulez.

Le but du jeu est maintenant de trouver l'option dans gimp qui permet d'enregister dans un format XPM et EN 16 COULEURS.
N'oubliez pas qu'au démarrage vous êtes en VGA standard 16 couleurs. On le sauvegarde sous par exemple splash2-indicatif.xpm.

- Recompressez le :

gzip splash2-indicatif.xpm

- Remettez le à la bonne place :

cp splash2-indicatif.xpm.gz /boot/grub

- Puis :

pico /boot/grub/grub.conf

et changez la ligne

splashimage=(hd2,1)/boot/grub/splash2.xpm.gz

par :

splashimage=(hd2,1)/boot/grub/splash2-indicatif.xpm.gz


- Vérifiez qu'il ne manque rien !

ls  -l /boot.bak
ls  -l /boot

Normalement vous avez un initrd.img en plus (Sur redhat 7.2) sinon tous les
fichiers sont les mêmes à la version/taille près.

Ce que nous avons touché ce sont ces trois fichiers avec leur trois liens mais le reste doit y être, on ne doit pas y toucher !

/boot/initrd-version-indicatif.img       et son lien : /boot/initrd.img
/boot/vmlinuz-version-indicatif.img   et son lien : /boot/vmlinuz
/boot/System.map-version-indicatif    et son lien : /boot/System.map


Ouf ! La minute de vérité !

Avant de rebooter allez faire ce qu'il y a de marqué entre les ------------- plus haut
si vous avez eu une erreur avec cette commande :


/sbin/mkinitrd /boot/initrd -version-indicatif.img version-indicatif


- Si vous avez lilo en gestionnaire d'amorcage :

lilo


- Serrez les fesses (Indispensable !), faites une prière (Recommandé !) et appuyez sur CTRL ALT DEL

- Ca marche ? ! Vous êtes un Génie passez à la rubrique suivante !
- Ca ne boote plus ! Ouch ! Essayez votre disquette boot, et dites pas que vous en avez pas ! Je vous l'avais dit ! Na !
- Ca ne boote toujours pas ... dommage ..., heu je crois bien qu'il va falloir reinstaller !

- Tout c'est bien passé, pas d'erreur au démarrage mais ... j'ai plus mon lecteur zip port parallèle !

Bon pas d'affolement, sje est là ! C'est un probleme courant, on a perdu un driver quelquonque !
Je vais donner un exemple pour un lecteur zip mais ca permet de résoudre pratiquement tout, en fait c'est une démarche à avoir.
L'équivalent d'un driver du config.sys sous dos ca s'appelle un module sous nunux, sous dos l'extension est .sys, sous Linux c'est .o.

1) Identifier son driver :
cd /usr/src/linux(-version)/Documentation

Je cherche donc un driver pour iomega !
Il faut fouiller la dedant, lancez ça et rappellez vous de mc, c'est hyper sympa, si vous êtes en mode texte et même graphique faites en votre copain :

mc

Bon ben on ne va pas s'embeter
F9 / commande / rechercher fichier / contenant / IOMEGA
Attention à la casse !
J'apprend par ce biais que mon driver s'appelle ppa.o

Je tapes en root :

/sbin/modprobe ppa

Cool mon zip est revenu :-)

2) Rechercher les dépendances

Maintenant mon probleme va être de le charger au démarrage et là un autre probleme va se poser, en effet dans une Redhat standard il y a des drivers pour à peu prêt tout et même (hasard) pour un port parallèle. Quand j'ai tapé /sbin/modprobe il m'a trouvé toutes les dépendances (les drivers à charger avant) de ce driver et les a chargées.

Mon 2ième probleme c'est qu'au démarrage mon kernel ne peut pas lancer "modprobe", il utilise la commande "insmod" qui elle charge les modules un par un sans chercher les dépendances. Pour info si vous utilisez la commande insmod vous devez précisez .o ( modprobe ppa  -----> ismod ppa.o ).

1ière solution :

La commande modprobe trouve les dépendances dans /lib/modules/ version-indicatif/modules.dep.

pico
/lib/modules/version-indicatif/modules.dep  (ou mc puis F3 sur modules.dep puis F7 rechercher ppa.o)

La ligne qui nous interresse est celle-ci :

/lib/modules/version-indicatif/kernel/drivers/scsi/ppa.o:  /lib/modules/version-indicatif/kernel/drivers/parport/parport.o \
        /lib/modules/version-indicatif/kernel/drivers/scsi/scsi_mod.o

Je vois là que je dois charger avant le zip : parport.o  et scsi_mod.o.

2ième solution  :

J'ai tapé modprobe ppa,  si mon zip fonctionne  mes 3 modules parport.o scsi_mod.o ppa.o doivent être chargés , listons les modules en mémoire ( dans ce cas je ne montre que ce qui nous interresse si vous tapez lsmod chez vous ya plus du monde ! ) :

lsmod                  (list module) le résultat en rouge

ppa                     9728   0                  <-- aucun autre module n'utilise ppa d'où le 0 
scsi_mod               95968   2  [ppa sd_mod]  <-- ici on voit que le module scsi_mod est utilisé par 2 modules : ppa et sd_mod
parport                24832   1  [ppa]    
<-- ici on voit que le module parport est utilisé par 1 module : ppa

Bon  ici nous avons un cas un peu atypique, le lecteur zip est considéré comme un dique scsi et dès qu'on charge un module scsi, le module sd_mod est automatiquement chargé, ce module prend en charge les disques scsi.
Ceci m'amène à autre chose en passant :  Sous linux on peut décharger les modules de la mémoire un par un avec la commande "rmmod" (remove module). Il me semble donc logique qu'on ne pourra pas décharger comme ca le parport par exemple sans avoir déchargé auparavant le ppa

3) Charger mon driver au démarrage :

Très simple on utilise la commande "mkinitrd" qui ne devrait pas vous être étrangère.
Vous l'avez tapée tout à l'heure juste après la compilation.

mkinitrd va lire /etc/modules.conf, va charger les drivers qui sont dedant. On peut y trouver aussi des options pour certain drivers ( Pour plus d'infos   man mkinitrd ).
Nous nous contenterons d'une soluion plus simple et qui reste propre, ceci résoudra complètement notre problème de zip  :

rm /boot/initrd-version-indicatif.img

mkinitrd --preload parport.o --preload scsi_mod.o --preload ppa.o /boot/initrd-version-indicatif.img version-indicatif

Remarquez que ici on précise le .o

Voilà je pense qu'avec ca vous devriez vous en sortir pour n'importe quel driver, au pire vous ne trouvez pas son nom.

Un coup de lilo pour assurer si vous utilisez lilo en gestionnaire d'amorçage :

lilo

- Ca se passe mal, plein d'erreurs au démarrage ? Recommencez, vérifiez, Re Re vérifiez, lisez les docs de compilaion, faites travailler votre cerveau, faites schcrafougner vos neurones et quand vous en aurez marre :

rm -rf /boot
cp -r /boot.bak /boot

- Si vous avez lilo en gestionnaire d'amorcage :

cp -f /etc/lilo.conf.bak /etc/lilo.conf
lilo


CTRL ALT DEL

Là vous revenez au point de départ avant la compile.





Installation de l'AX25 proprement dit :

- Lol vous êtes encore là ? Et pas las ? Bon continuons ...
- Félicitations pour la compilation haut la main du kernel, si si c'était du grand art !
- Si tout semble ok au démarrage :

rm -f /vmlinuz /System.map

- Téléchargez les "Indispensables"  ici

- Les utilitaires vont s'installer dans /usr/local, si votre Linux est tout frais et encore vert ils ne seront donc pas dans le path, il faut donc éditer celui-ci.
- Login en root

 pico /root/.bash_profile


- Ajoutez au path  :/usr/local/bin:/usr/local/sbin
- Les differents path se séparent par ":".
- Faites la même chose pour votre utilisateur préféré.

- Certains utilitaires s'installent directement dans /usr ou à partir de la racine donc pour ne pas être ennuyés faites ceci , toujours en root :

mkdir -p /usr/local/var/ax25
mkdir -p /usr/local/etc/ax25
ln -sf /usr/local/etc/ax25 /etc/ax25
ln -sf /usr/local/var/ax25 /var/ax25

Ceci crée des liens, en fait les répertoires /etc/ax25 et /var/ax25 sont les même que /usr/local/etc/ax25 et /usr/local/var/ax25.


cd répertoire ou vous avez téléchargé les indispensables.

tar -zxvf libax25-0.0.10.tar.gz
cd libax25-0.0.10
./configure && make && make install

- idem pour ax25-tools et xlog (Ce dernier si vous êtes en mode graphique).




Configuration :


Je suppose que j'ai un TNC en mode kiss sur le COM1 pour dos. Pardon ? Non non Allons, je ne vais pas apprendre à un vieux packetteur aguerri qui a fait ses armes sous MS Dos 1.1 à passer un TNC en mode kiss ! (. )


- login root
- Edition du fichier de configuration des ports ax25

pico /etc/ax25/axport

Bon voici ce fameux fichier (Les lignes en # ne sont pas prises en compte ) :
)

---------------- Coupez ici
# Nom de l'interface    Indicatif    Vitesse du port série  Paclen   Window  Description
#                                                               du tnc
#
144                                 F1SJE            4800                         256            7       144.675 MHz (1200  bps)
#
---------------- Coupez là

- C'est tout !


Lancement


- Login en root
- Création d'un fichier batch de lancement :

pico /usr/local/bin/ax25

--------------- Coupez ici
#
# Lancement du module (driver) kiss

modprobe mkiss
#
# Création de l'interface ax25, la première va s'appeller ax0
#
# -m 490 : mtu 490 recommandé en 1200 bauds
#
# /dev/ttyS0 = COM1 sous dos /dev/ttyS1 = COM2  etc etc ...
#
# Le 144  correspond au nom de l'interface dans /etc/axports
#
# 44.151.94.25 votre No IP si vous en avez un sinon : 0.0.0.0
#
# & démarrage en tache de fond

kissattach -m 490 /dev/ttyS0 144 44.151.94.25 &
#
# Démon mheard qui va vous permettre de voir les stations entendues.
# le -f pour remettre à zéro le fichier log.
#
mheardd -f
#
--------------- Coupez là

Tip :
- A propos de mheard sur certain systemes il ne sait pas créer son fichier au démarrage, il suffit de lui créer un fichier vide :

touch /var/ax25/mheard.dat

- rendez votre fichier executable :

chmod 711 /usr/local/bin/ax25

- lancez le :

 ax25

Scripts pour Yam par F1SXO

Ces scripts sont prévus pour un accés sur le serveur F6FBB via la
gateway F6BEX, à chacun de le modifier selon les besoins locaux.


Yam 1200 Bauds      Yam 9600 bauds




Première connexion :

- A partir de là on peut cesser de travailler en root, tout est prêt.
- Bon on va jeter un oeuil si tout va bien, déja au lancement de ax25 votre TNC devrait passer en émission au moins 1 fois.
- Vérifiez que kissattach et mheard sont bien lancés :

ps auxw

regardez les dernières lignes, il doit y avoir au moins kissattach (et mheardd mais bon sans mheardd l'ax25 fonctionne)

- Vérifiez la présence de l'interface ax0 :

/sbin/ifconfig

Ou mieux :

/sbin/ifconfig ax0

- êtes vous sur une QRG très fréquentée ? Regardez si votre interface entend :

mheard

- connectez vous qq part :

ax25_call interface votre_call call_a_connecter

ex :

ax25_call 144 f1sje f6ptt-1

Heu ca DOIT marcher :-)

Si vous êtes arrivé là et que ca n'a pas semblé protester qq part et que tout s'est lancé normalement il y a 99,99% de chances que ce soit un problème physique, mauvais port com ou TNC pas en mode kiss ou mauvaise vitesse....

Voilà, félicitations si vous êtes arrivés jusque là ! N'hésitez pas à signer  mon livre d'or si cette modeste contribution vous été de quelque utilité. Les critiques sont les bienvenues je suis sur qu'il y a des fautes ou omissions; corrections orthographiques ou/et grammaticales bienvenues.

Meilleurs 73s de Dominique, F1SJE
 :

 
Page principale

Executables © leurs auteurs respectifs

Dominique Voillemot  ©  2002    f1sje@qsl.net