Configuration de l'environnement des TP
}}}
Les travaux pratiques se font sur Linux.
Si vous avez Linux, vous pouvez sauter l'**Étape 1** et passer à l'**Étape 2**.
La première étape est donc de disposer d'un ordinateur réel ou virtuel sur Linux.
Si vous travaillez sur un ordinateur Windows, vous allez devoir utiliser une machine virtuelle Linux.
Si vous suivez l'UE de réseau, vous devriez déjà avoir !VirtualBox et une VM installée et fonctionnelle qui fonctionne pour l'UE d'archi.
Sinon, nous vous avons préparé une machine virtuelle utilisant !VirtualBox et une distribution !LinuxMint.
= Étape 1. Environnement de travail Linux pour les TPs
* Il existe de très bons didacticiels pour l'installation de !VirtualBox et je préfère que vous les lisiez, je ne ferai sans doute pas mieux. Je n'ai pas testé cette étape parce que j'ai déjà Virtualbox, si vous rencontrez un problème, vous pourrez utiliser les forums sur Moodle ou Discord pour vous aidez.
- [https://fr.wikihow.com/installer-VirtualBox wikihow : Comment installer VirtualBox]
- [https://www.papergeek.fr/comment-installer-une-machine-virtuelle-linux-dans-windows-10-81428 papergeek : Comment installer une machine virtuelle linux dans windows 10]
* Récupérez le disque de la [https://frama.link/lu3ni029 machine virtuelle] (compressé avec 7z). Ce fichier fait 2Go.
* Décompressez le fichier, il occupera alors 12Go
* Ainsi, vous pourrez créer une nouvelle VM dans !VirtualBox, choisissez Linux Ubuntu 64 bits, et vous pourrez choisir comme disque dur le fichier .vdi fourni. Ce [https://www.eugenetoons.fr/utiliser-un-fichier-vdi-dans-virtualbox/ didacticiel] 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`.
* 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 aurez sans doute a changer le paramétrage du clavier
* La machine a été paramétrée pour un clavier PC-AZERTY. Si ce n'est pas votre clavier, vous pouvez changer.
* Cliquez sur l'icône `Keyboard` présente sur le Bureau → 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.
* Vous pouvez aussi configurer la VM pour autoriser le partage du presse papier (crtl-C/ctrl-V), c'est très utile
* 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 sur votre machine hôte et un ctrl-V sur la machine invitée (la VM)
* Sur le menu déroulant : `Glisser-Déposer` sélectionnez `Bidirectionnel`\\→ vous pourrez l'opération `Drag & Drop` entre votre machine hôte et un ctrl-V sur la machine invitée (dans les deux sens)
= Étape 2. Prototype virtuel et chaîne de compilation MIPS
* Demarrez la machine virtuelle.
* Démarrez un navigateur web sur votre Linux et chargez la page de l'UE : `https://www-soc.lip6.fr/trac/archi-l3s5/wiki/Howto-TP` et passer l'étape 2.\\Vous pouvez utiliser le presse papier si vous l'avez configuré à l'étape précédente.
* Récupérez l'archive contenant le [htdocs:files/AS5.tgz prototype virtuel et la chaîne de compilation MIPS]
* Placez l'archive à la racine de votre compte et ouvrez un terminal
* Décompressez l'archive avec la commande : **`tar xvzf AS5.tgz`**
* Si vous avez bien placé l'archive à la racine de votre compte, déplacez-vous dans AS5 : **`cd $HOME/AS5`**
* Éditez le fichier `$HOME/.bashrc` et ajoutez au début **`source $HOME/AS5/bin/Source-me.sh`**
* Exécutez pour cette fois le `.bashrc` (parce que vous venez juste de le modifier) **`source $HOME/.bashrc`**
* Vous pouvez placer le répertoire `AS5` ailleurs qu'à la racine, voire le renommer, mais pour que cela fonctionne vous devez éditer la première ligne du fichier `AS5/bin/Source-me.sh`, mais dans les textes, nous ferons l'hypothèse qu'il est la racine du compte.
= Étape 3. Test : compilation et exécution d'un test
* Vous devez avoir sourcé le fichier `bin/Source-me.sh` (sinon relisez Étape 2)
* Allez tant le répertoire `test` de `bin`: **`cd $HOME/AS5/bin/test; make exec`**
* __Si cela fonctionne, vous devez voir :
* dans le terminal où vous avez lancé la commande précédente la bannière du simulateur du prototype `SystemCASS` puis des informations sans importance. Vous devez aussi voir un compteur d'horloge qui s'incrémente tous les millions de cycles.
* vous devez voir une fenêtre en haut à gauche avec marqué "Hello World!"\\
Ce message est écrit 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 :
* peut-être n'avez-vous pas placé le répertoire `AS5` à la racine de votre compte.\\
Vous avez le droit, mais vous devez modifier la première ligne du fichier `AS5/bin/Source-me.sh` et indiquer le bon répertoire.
* peut-être n'avez-vous pas sourcer le fichier `AS5/bin/Source-me.sh`.\\
Vous pouvez le vérifier en tapant la commande **`cd;almo1.x`**\\
Si le shell vous réponds `command not found` ou `commande inconnue`, c'est qu'il manque cette étape.
= Remarques générales
* Utilisez un **vrai** éditeur de code **moderne**, tel que `code` (Visual Studio Code) (ou `[g]vim`, `[x]emacs` ou `sublime-text`) afin de profiter d'une aide à la programmation avec, par exemple, des fenêtres popup pour les prototypes. `code` est installé sur la VM Linux-mint. Si vous utilisez votre propre VM, je vous conseille de l'installer.
* Vous allez devoir utiliser l'interpréteur de commande `shell` de Linux et quelques commandes. Si vous avez l'habitude d'utiliser la souris, il va falloir vous faire un peu violence, mais dîtes-vous que c'est pour votre bien ! Vous devrez parfois utiliser des commandes que vous ne connaissez pas, soyez curieux et tentez un `man` sur la commande (ou une recherche sur le web, c'est bien aussi).