DOCS [Start][Config][User][Kernel] — COURS [9] [9bis] [10] [10bis] [11] — TD [9][10][11] — TP [9][10][11] — ZIP [gcc...][9][10][11]
Configuration de l'environnement TP
En TP, vous allez compiler vos programmes pour le MIPS et les exécuter le prototype virtuel du SoC nommé almo1 présenté en cours.
almo1 est composé d'au moins un MIPS, d'une mémoire et de plusieurs contrôleurs de périphériques (p.ex. terminal TTY).
Le simulateur d'almo1 se présente sous la forme d'un exécutable qui simule le comportement du SoC. Le (ou les) MIPS présents exécutent les programmes se trouvant dans les bancs de mémoire d'almo1.
La simulation est complète depuis le signal reset et précise au cycle et au bit (cela signifie que si c'était une vraie machine, vous auriez exactement le même comportement de vos programmes).
Pour exécuter le simulateur d'almo1, vous devez disposer d'un ordinateur réel ou virtuel sur Linux. Cette page décrit comment installer votre environnement de travail.
Il y a plusieurs cas de figure:
- Si vous travaillez dans les salles de TP de la fac à la PPTI ⟶ faites les étapes 2.2, 3.2 et 3.3.
- Vous êtes sur votre ordinateur personnel sur Windows ou macOS ⟶ faites les étapes 1, 2.1, 3.1 et 3.3.
- Vous êtes sur une distribution Linux ou si vous avez déjà une VM Linux ⟶ faites les étapes 2.1, 3.1 et 3.3.
Notez que si vous suivez l'UE réseau, vous devriez déjà avoir l'application VirtualBox et une VM installée en état de marche, cette VM fonctionne pour l'UE d'Archi. Sinon, nous vous avons préparé une machine virtuelle utilisant VirtualBox et une distribution LinuxMint.
Étape 1. Création de l'environnement de travail Linux pour les TPs
Installation d'une machine virtuelle
- Il existe de très bons didacticiels pour l'installation de VirtualBox et nous préfèrons que vous les lisiez, nous ne ferons sans doute pas mieux. Si vous rencontrez un problème, pensez à utiliser les forums sur Moodle, Discord et plus généralement le web pour vous aidez. Par exemple, voici deux références sur l'installation de VirtualBox:
- Récupérez le disque de la machine virtuelle (LinuxMint) (compressé avec 7z). Ce fichier compressé fait 2Go.
- Décompressez le fichier, il occupe alors 12Go
- Créez une nouvelle VM dans VirtualBox, choisir comme type
Linux Ubuntu 64 bits et, comme disque, le fichier .vdi que vous venez juste de télécharger et de décompresser. Ce didacticiel sur comment utiliser un fichier vdi peut vous aider.
- Vous n'aurez pas besoin du mot de passe au démarrage, mais si vous souhaitez ajouter une application, il vous sera demandé.
Le mot de passe root est : osboxes.org puisque la distribution utilisée comme base a été prise sur le site osboxes.org sur lequel vous pouvez trouver de nombreuses machines virtuelles pour VirtualBox et pour VMware.
Configurations utiles
- Loguez-vous sur votre Linux (soit en natif, soit sur votre VM habituelle, soit sur celle que vous venez juste d'installer)
- Si c'est la VM que vous venez d'installer, vous devez sans doute changer le configuration par défaut :
- Configuration du Clavier :
La VM a été paramétrée pour un clavier PC-AZERTY. Si ce n'est pas votre clavier, vous devez changer.
- Cliquez sur l'icône
Keyboard présente sur le Bureau de la VM → Une fenêtre apparaît
- Cliquez l'onglet
Layout → par défaut Keyboard Model = Generic 105-key (PC) et Keyboard Layout = French AZERTY
Keyboard Model devrait convenir au plus grand nombre, sinon sélectionner le vôtre.
Keyboard Layout est une liste de claviers et c'est le premier de cette liste qui est utilisé.
Si votre clavier n'est pas dans cette liste :
- Cliquez sur
Add, sélectionner votre clavier et cliquez sur ok
- Le nouveau clavier apparaît en fin de liste.
- Utilisez les flèches à droite de cette liste pour mettre votre clavier en tête de liste.
- Cliquez sur
Close pour fermer l'application Keyboard et tester que cela fonctionne, sinon recommencez.
- Configuration du presse papier partagé :
Vous pouvez autoriser le partage du presse papier (crtl-C/ctrl-V) entre la machine hôte (Windows ou macOS) et la VM
- Allez sur la fenêtre du gestionnaire de VM (d'où vous avez lancé votre VM)
- Cliquez sur
Général → la fenêtre de configuration de la VM apparaît
- Cliquez sur l'onglet
Avancé → Une fenêtre apparaît avec deux menus déroulants
- Sur le menu déroulant :
Presse-papier partagé sélectionnez Bidirectionnel
→ vous pourrez faire un ctrl-C (ou cmd-C) sur la machine hôte et un ctrl-V (ou cmd-V) sur la machine invitée et inversement.
- Sur le menu déroulant :
Glisser-Déposer sélectionnez Bidirectionnel
→ vous pourrez faire un « Drag & Drop » entre la machine hôte et la VM (dans les deux sens).
- Pour faire tourner la fenêtre graphique du simulateur, vous avez besoin de la bibliothèque graphique
sdl qui n'est pas installée par défaut. Pour l'installer, tapez la commande suivante sur un terminal: sudo apt-get install libsdl1.2-dev (le mot de passe est osboxes.org).
Étape 2. Installation du simulateur almo1 et de la chaîne de compilation pour MIPS
2.1. Vous êtes sur votre ordinateur
- Démarrez la machine virtuelle (ou réelle si vous êtes nativement sur Linux)
- Dans le cas où vous êtes sur votre propre VM ou distribution (et non celle que nous vous proposons), vous devez commencez par vérifier que vous avez l'application
xterm sur votre distribution Linux. xterm est le terminal de commande que va utiliser almo1 pour les TTY et xterm n'est pas toujours installé par défaut.
- Si vous ne l'avez pas vous devez l'installer avec
sudo apt-get install xterm
(si vous êtes sur une distribution debian ou ses dérivés : ubuntu, linux-mint, etc.)
- Démarrez un navigateur web sur votre Linux et chargez la page de l'UE :
https://frama.link/AS5 (c'est un raccourci de l'URL de la page que vous êtes en train de lire https://www-soc.lip6.fr/trac/archi-l3s5/wiki/Howto-TP)
- Récupérez l'archive contenant le simulateur almo1 et la chaîne de compilation pour MIPS (en cliquant sur ce lien)
- Placez l'archive à la racine de votre compte et ouvrez un terminal
- Décompressez l'archive avec la commande :
tar xvf kO6bin.tgz à la racine de votre compte. kO6 est le nom que nous avons donné au petit système d'exploitation s'exécutant sur almo1
- Si vous avez bien placé l'archive à la racine de votre compte, déplacez-vous dans le répertoire
kO6 : cd $HOME/kO6
- Éditez le fichier
$HOME/.bashrc et ajoutez au début source $HOME/kO6/bin/SourceMe.sh. Ce script modifie quelques variables d'environnement telle que PATH qui permet de définir les répertoires dans lesquels le shell bash trouve ses exécutables (ici la chaîne de compilation pour le MIPS et le simulateur almo1.
- Exécutez pour cette fois le
.bashrc (parce que vous venez juste de le modifier) en tapant source $HOME/.bashrc. Vous pouvez aussi ouvrir un nouveau terminal, celui-ci exécutera le script .bashrc avant d'afficher le prompt (l'invite de commande en français).
- Vous pouvez placer le répertoire
kO6 ailleurs qu'à la racine, voire le renommer, mais pour que cela fonctionne vous devez éditer la première ligne du fichier kO6/bin/SourceMe.sh, toutefois dans les textes des TP, nous ferons l'hypothèse que le répertoire kO6 est la racine du compte.
2.2. Vous êtes sur un des ordinateurs de la fac
- Éditez votre fichier
$HOME/.bashrc et ajoutez au début:
source /Infos/lmd/2023/licence/ue/LU3IN029-2023oct/kO6/bin/SourceMe.sh
Ce script modifie quelques variables d'environnement telle que PATH qui permet de définir les répertoires dans lesquels le shell bash trouve ses exécutables (ici la chaîne de compilation pour le MIPS et le simulateur almo1.
- Exécutez pour cette fois le
.bashrc (parce que vous venez juste de le modifier)
source $HOME/.bashrc
Vous pouvez aussi ouvrir un nouveau terminal, celui-ci exécutera le script .bashrc avant d'afficher le prompt (l'invite de commande en français).
Étape 3. Test : compilation et exécution d'un test
3.1. Vous êtes sur votre ordinateur
- Sur votre distribution Linux, entrez la commande:
cd $HOME/kO6/bin/test; make exec
- Pour l'interprétation, allez à l'étape 3.3
3.2. Vous êtes sur un des ordinateurs de la fac à la PPTI
- Nous supposons que vous travaillez pour cette partie de l'UE dans le répertoire
$HOME/kO6.
Vous pouvez vous organiser différemment et travailler dans un autre répertoire.
- Créez votre répertoire de travail, s'il n'existe pas encore:
mkdir $HOME/kO6
- Allez dans votre répertoire de travail:
cd $HOME/kO6
- Récupérez le répertoire de test:
cp -r /Infos/lmd/2023/licence/ue/LU3IN029-2023oct/kO6/bin/test .
- Entrez la commande:
cd $HOME/kO6/bin/test; make exec
- Pour l'interprétation, allez à l'étape 3.3
3.3. Vérification
- Si cela fonctionne :
- Le simulateur du SoC 'almo1' démarre.
- Dans le terminal où vous avez lancé la commande précédente, vous devez voir la bannière du simulateur
almo1 (SystemCASS) suivie d'informations sur l'architecture simulée (sans importance pour vous actuellement) et un compteur d'horloge qui s'incrémente tous les millions de cycles simulés.
- vous devez voir apparaître quatre fenêtres
xterm avec le message "numéro --> Hello World!" et une fenêtre graphique contenant l'image de Wall-E (le petit robot des studios PIXAR)
- Ces messages et cette image sont écrits par le programme qui s'exécute sur le MIPS.
- Pour arrêter la simulation, tapez
ctrl-C sur le terminal de lancement du simulateur.
- Si cela ne fonctionne pas :
- Si vous êtes sur votre propre machine, vous n'avez peut-être pas placé le répertoire
kO6 à la racine de votre compte.
Vous avez le droit, mais vous devez modifier la première ligne du fichier kO6/bin/SourceMe.sh et indiquer le bon répertoire.
- Si le shell vous répond
command not found ou commande inconnue, c'est que vous n'avez pas sourcé le fichier SourceMe.sh. Vous pouvez le vérifier en tapant la commande almo1.x
almo1 présenté en cours.
almo1 est composé d'au moins un MIPS, d'une mémoire et de plusieurs contrôleurs de périphériques (p.ex. terminal TTY).Le simulateur d'
almo1 se présente sous la forme d'un exécutable qui simule le comportement du SoC. Le (ou les) MIPS présents exécutent les programmes se trouvant dans les bancs de mémoire d'almo1.
La simulation est complète depuis le signal reset et précise au cycle et au bit (cela signifie que si c'était une vraie machine, vous auriez exactement le même comportement de vos programmes).Pour exécuter le simulateur d'
almo1, vous devez disposer d'un ordinateur réel ou virtuel sur Linux. Cette page décrit comment installer votre environnement de travail.
Notez que si vous suivez l'UE réseau, vous devriez déjà avoir l'application VirtualBox et une VM installée en état de marche, cette VM fonctionne pour l'UE d'Archi. Sinon, nous vous avons préparé une machine virtuelle utilisant VirtualBox et une distribution LinuxMint.
Linux Ubuntu 64 bits et, comme disque, le fichier .vdi que vous venez juste de télécharger et de décompresser. Ce didacticiel sur comment utiliser un fichier vdi peut vous aider.
Le mot de passe root est :
osboxes.org puisque la distribution utilisée comme base a été prise sur le site osboxes.org sur lequel vous pouvez trouver de nombreuses machines virtuelles pour VirtualBox et pour VMware.
- Configuration du Clavier :
La VM a été paramétrée pour un clavier PC-AZERTY. Si ce n'est pas votre clavier, vous devez changer.- Cliquez sur l'icône
Keyboardprésente sur le Bureau de la VM → Une fenêtre apparaît - Cliquez l'onglet
Layout→ par défautKeyboard Model=Generic 105-key (PC)etKeyboard Layout=French AZERTYKeyboard Modeldevrait convenir au plus grand nombre, sinon sélectionner le vôtre.Keyboard Layoutest une liste de claviers et c'est le premier de cette liste qui est utilisé.
Si votre clavier n'est pas dans cette liste :- Cliquez sur
Add, sélectionner votre clavier et cliquez surok - Le nouveau clavier apparaît en fin de liste.
- Utilisez les flèches à droite de cette liste pour mettre votre clavier en tête de liste.
- Cliquez sur
- Cliquez sur
Closepour fermer l'applicationKeyboardet tester que cela fonctionne, sinon recommencez.
- Cliquez sur l'icône
- Configuration du presse papier partagé :
Vous pouvez autoriser le partage du presse papier (crtl-C/ctrl-V) entre la machine hôte (Windows ou macOS) et la VM- Allez sur la fenêtre du gestionnaire de VM (d'où vous avez lancé votre VM)
- Cliquez sur
Général→ la fenêtre de configuration de la VM apparaît - Cliquez sur l'onglet
Avancé→ Une fenêtre apparaît avec deux menus déroulants- Sur le menu déroulant :
Presse-papier partagésélectionnezBidirectionnel
→ vous pourrez faire unctrl-C(oucmd-C) sur la machine hôte et unctrl-V(oucmd-V) sur la machine invitée et inversement. - Sur le menu déroulant :
Glisser-DéposersélectionnezBidirectionnel
→ vous pourrez faire un « Drag & Drop » entre la machine hôte et la VM (dans les deux sens).
- Sur le menu déroulant :
- Cliquez sur
- Allez sur la fenêtre du gestionnaire de VM (d'où vous avez lancé votre VM)
sdl qui n'est pas installée par défaut. Pour l'installer, tapez la commande suivante sur un terminal: sudo apt-get install libsdl1.2-dev (le mot de passe est osboxes.org).
xterm sur votre distribution Linux. xterm est le terminal de commande que va utiliser almo1 pour les TTY et xterm n'est pas toujours installé par défaut.
- Si vous ne l'avez pas vous devez l'installer avec
sudo apt-get install xterm
(si vous êtes sur une distribution debian ou ses dérivés : ubuntu, linux-mint, etc.)
https://frama.link/AS5 (c'est un raccourci de l'URL de la page que vous êtes en train de lire https://www-soc.lip6.fr/trac/archi-l3s5/wiki/Howto-TP)
tar xvf kO6bin.tgz à la racine de votre compte. kO6 est le nom que nous avons donné au petit système d'exploitation s'exécutant sur almo1
kO6 : cd $HOME/kO6
$HOME/.bashrc et ajoutez au début source $HOME/kO6/bin/SourceMe.sh. Ce script modifie quelques variables d'environnement telle que PATH qui permet de définir les répertoires dans lesquels le shell bash trouve ses exécutables (ici la chaîne de compilation pour le MIPS et le simulateur almo1.
.bashrc (parce que vous venez juste de le modifier) en tapant source $HOME/.bashrc. Vous pouvez aussi ouvrir un nouveau terminal, celui-ci exécutera le script .bashrc avant d'afficher le prompt (l'invite de commande en français).
kO6 ailleurs qu'à la racine, voire le renommer, mais pour que cela fonctionne vous devez éditer la première ligne du fichier kO6/bin/SourceMe.sh, toutefois dans les textes des TP, nous ferons l'hypothèse que le répertoire kO6 est la racine du compte.
$HOME/.bashrc et ajoutez au début:source /Infos/lmd/2023/licence/ue/LU3IN029-2023oct/kO6/bin/SourceMe.shCe script modifie quelques variables d'environnement telle que
PATH qui permet de définir les répertoires dans lesquels le shell bash trouve ses exécutables (ici la chaîne de compilation pour le MIPS et le simulateur almo1.
.bashrc (parce que vous venez juste de le modifier)source $HOME/.bashrcVous pouvez aussi ouvrir un nouveau terminal, celui-ci exécutera le script
.bashrc avant d'afficher le prompt (l'invite de commande en français).
cd $HOME/kO6/bin/test; make exec
$HOME/kO6.Vous pouvez vous organiser différemment et travailler dans un autre répertoire.
mkdir $HOME/kO6
cd $HOME/kO6
cp -r /Infos/lmd/2023/licence/ue/LU3IN029-2023oct/kO6/bin/test .
cd $HOME/kO6/bin/test; make exec
- Le simulateur du SoC 'almo1' démarre.
- Dans le terminal où vous avez lancé la commande précédente, vous devez voir la bannière du simulateur
almo1(SystemCASS) suivie d'informations sur l'architecture simulée (sans importance pour vous actuellement) et un compteur d'horloge qui s'incrémente tous les millions de cycles simulés. - vous devez voir apparaître quatre fenêtres
xtermavec le message "numéro --> Hello World!" et une fenêtre graphique contenant l'image de Wall-E (le petit robot des studios PIXAR)
- Ces messages et cette image sont écrits par le programme qui s'exécute sur le MIPS.
- Pour arrêter la simulation, tapez
ctrl-Csur le terminal de lancement du simulateur.
- Si vous êtes sur votre propre machine, vous n'avez peut-être pas placé le répertoire
kO6à la racine de votre compte. Vous avez le droit, mais vous devez modifier la première ligne du fichierkO6/bin/SourceMe.shet indiquer le bon répertoire. - Si le shell vous répond
command not foundoucommande inconnue, c'est que vous n'avez pas sourcé le fichierSourceMe.sh. Vous pouvez le vérifier en tapant la commandealmo1.x
