Laboratoire Architecture et Systèmes
Kit 68040 sous LINUX
Introduction (architecture reseau des cartes
68040)
Nous utilisons les kits 68040 sous linux pour le developpement de module/driver.
Un kit 68040 ne posséde pas de m'emoire de masse (disque dur), il
fonctionne comme une machine diskless: Le kit (kmotxx) effectue
un tftp (ftp sans mot de passe) sur le serveur linux bavella pour
charger dans sa memoire un noyau linux et ensuite le demarrer. Le serveur
bavella
possede 3 cartes reseaux: 1 carte est reliee au reseau de l'ecole, les
2 autres gerent les 12 kits dans 2 sous-reseaux differents. Le systeme
de fichier de chaqu'un des kits ce trouve sur le serveur linux
bavella.

Présentation
d'un poste de travail du labo 5201
Le poste de travail est composé d'une station de travail HP et d'un
kit 68040 constitué d'un rack VME contenant une carte processeur
MVME162LX et éventuéllement
d'une carte d'entrées/sorties. Le kit 68040 et la station de travail
sont connectés ensemble par une ligne serie asynchrone, et tous
deux sont connectés à leur réseau:

A la base l'unique programme fournit par le contructeur de la carte
MVME162LX
est le moniteur 162bug. Le moniteur 162bug joue vis à
vis d'un
Kit 68040 le même rôle que joue un shell
vis à vis d'une machine UNIX. Le 162bug
attend, interpréte
et retoune le résultat des commandes de l'utilisateur via sa première
ligne serie. Ces
commandes permettent de contrôller
totalement la carte: vous pouvez par exemple visualiser/modifier le contenu
des registres du processeur ou de la memoire, mais surtout vous pouvez
récuperer du code exécutable provenant d'une station hôte
et le debuger.
Dans le but de g'erer des applications temps reels sous VRTX nous avons
ajoute' en UVPROM le moniteur XRAY de Microtec.
Il fait la meme chose que le 162bug mais utilise le reseau pour
communiquer avec une station hôte. Sur la station vous diposez
d'outils puissants pour la mise au point de vos programmes (en assembleur
ou en langage C) comme: le shell xsh qui vous met en communication
direct avec le kit ou le debugeur graphique xmo68ks.
Vous avez aussi la possibilite de demarrer le kit comme une machine
diskless:
le kit va chercher sur le serveur linux bavella du code qu'il execute
ensuite. On utilise se fonctionnement pour booter le kit sur le systeme
d'exploitation Linux.
Pour choisir ces differents mode de fonctionnement nous avons
ajoute un ronboot de demarrage. Ce programme se trouve en UVPROM
et s'execute des la mise sous-tension du kit.
La chaine
de developpement d'un module linux
Tout ce passe dans le labo Architecture et Système en 5201. Ce labo
n'est
pas en libre service et est accessible uniquement aux élèves
en TP ou en projet.
Le principe de travail est simple: vous devez vous connecter au serveur
linux pour pouvoir cross-compiler le source de votre module. Vous devez
recopier le code de votre module dans le repertoire /pub de bavella.
Ce repertoire est visible depuis les kits 68040 sous linux. Vous vous logez
comme utilisateur root sur un kit68040 vous charger et tester votre module:
-
Commencer par vous loger sur une station info13 a info24 si vous n'y arriver
pas, c'est peut etre que votre quota est dépassé ou que le
filtrage des logins vous a rejete (dans ce cas contacez Eric Llorens au
bureau 5205).
-
Vous devez vous rloger sur le serveur linux bavella, il faut utiliser
directement l'adresse IP de bavella car le DNS ( serveur de nom) de l'ecole
ne connait pas l'adresse IP de bavella:
rlogin 147.215.50.121 ou telnet 147.215.50.121
-
Sur bavella vous retrouvez votre compte HP. Pour limiter la charge de travail
du serveur bavella, il est preferable d'editer vos fichiers sources
sur la station HP et d'utiliser bavella uniquement pour cross-compiler.
-
La cross-compilation est des plus simple: vous trouverez sur bavella
dans le repertoire /home/llorense/monmodule un makefile type que
vous recopirez dans votre repertoire de travail affin de l'adapter avec
les noms de vos fichiers sources.
Sur bavella vous cross-compilerez avec la commande:
S'il n'y pas d'erreur vous installerez les binaires dans /pub/votre_loginHP
par un:
-
Pour tester votre module vous devez vous connecter a un kit 68040. sous
le login root. Le login root est uniquement
autorise (question de securite) sur l'entree console 1 des kits (qui
est une ligne serie).
-
Verifiez qu'il y a bien le cable entre la base de la station et le kit
68040: le cable branché sur la prise console 1 de la carte MVME162
doit arrivé sur votre station et pas la station d'en face !
-
dans un terminal (utilisez un xterm pour être sur d'avoir
une parfaite émulation de terminal): tapez la commande kit 68040.
Cette commande affiche tous les caracteres provenant d'une des lignes série
de la station et envoie tous les caractères que vous allez saisir
dans ce terminal vers la même liaison série:
-
Vous pouvez allumer le kit. En fonction des cavaliers 13-14 et 15-16 en
J11 sur la carte MVME162LX
le kit a 4 manières de démarrer:
-
Par defaut le text du RomBoot apparaît:
Sinon le kit demarre directement sur linux ou:
-
soit le kit a démarré automatiquement sous le 162bug,
le prompt du 162bug doit apparaître:
Tapez un Retour Chariot dans la fenêtre pour verifier que
vous obtenez bien le prompt 162bug>.
-
soit le kit a démarré automatiquement sous le XRAY
vous devez avoir le text suivant:
Dans ces deux dernier cas vous devez effectuer les manipulations
suivantes:
- mettre hors tension le kit 68040,
- degager de son logement la carte MVME162,
- placer un cavalier en 13-14 et en 15-16
sur J11 (a cote' du processeur),
- et enfin reloger la carte dans son emplacement
et .
ou alors demandez mon intervention: Eric Llorens bureau 5205.

-
Le kit 68040 a demarre sous linux vous devez avoir le text suivant dans
votre terminal:
-
Entrez le login du root et son mot de passe (a demander a Eric Llorens
en 5205).
-
deplacez vous dans le repertoire /pub/votreloginHP
-
Dans ce repertoire vous retrouvez vos binaires: vous pouvez alors charger
votre module a l'aide de la commande insmod decharger votre module
avec rmmod et lsmod pour connaitre la liste des modules deja
charges.
-
Vous aurez peut etre besoin de creer un nouveau device avec la commande
mknode
-
et de tester votre module....