Laboratoire Architecture et Systèmes
Kit 68040 sous LINUX
Introduction (architecture reseau des cartes
68040)
Nous utilisons les kits 68040 sous linux pour le développement de module/driver.
Un kit 68040 ne possède pas de mémoire 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 mémoire un noyau linux et ensuite le démarrer. Le serveur
bavella possède 3 cartes réseaux: 1 carte est reliée au réseau de l'école, les
2 autres gerent les 12 kits dans 2 sous-reseaux différents. Le système de fichier de
chaque 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 éventuellement d'une carte d'entrées/sorties. Le kit 68040 et la station de travail
sont connectés ensemble par une ligne série asynchrone, et tous
deux sont connectés à leur réseau:

A la base l'unique programme fournit par le constructeur 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éter et retourne le résultat des commandes de l'utilisateur via sa première
ligne série. Ces
commandes permettent de contrôler
totalement la carte: vous pouvez par exemple visualiser/modifier le contenu
des registres du processeur ou de la mémoire, mais surtout vous pouvez récupérer
du code exécutable provenant d'une station hôte
et le debuger.Dans le but de gérer des applications temps réels sous VRTX nous avons
ajouté en UVPROM le moniteur XRAY de Microtec.
Il fait la même chose que le 162bug mais utilise le réseau pour
communiquer avec une station hôte. Sur la station vous disposez
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 débuguer graphique xmo68ks.
Vous avez aussi la possibilité de démarrer le kit comme une machine
diskless:
le kit va chercher sur le serveur linux bavella du code qu'il exécute ensuite. On utilise se fonctionnement pour booter le kit sur le
système d'exploitation Linux.
Pour choisir ces différents mode de fonctionnement nous avons
ajoute un ronboot de démarrage. Ce programme se trouve en UVPROM
et s'exécute des la mise sous-tension du kit.
La chaîne de développement
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 répertoire /pub de bavella.
Ce répertoire 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 être que votre quota est dépassé ou que le
filtrage des logins vous a rejette (dans ce cas contactez 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'école
ne connaît 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 préférable d'éditer 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 répertoire /home/llorense/monmodule un makefile type que
vous recopierez dans votre répertoire 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 sécurité) sur l'entrée console 1 des kits (qui
est une ligne série).
-
Vérifiez qu'il y a bien le câble entre la base de la station et le kit
68040: le câble 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 caractères 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 démarre 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 vérifier 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 démarre 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).
-
déplacez vous dans le répertoire /pub/votreloginHP
-
Dans ce répertoire vous retrouvez vos binaires: vous pouvez alors charger
votre module a l'aide de la commande insmod décharger votre module
avec rmmod et lsmod pour connaître la liste des modules déjà charges.
-
Vous aurez peut être besoin de créer un nouveau device avec la commande
mknode
-
et de tester votre module....