| 1 | {{{#!protected |
| 2 | **[https://www-soc.lip6.fr/trac/archi-l3s6/wiki/Howto-TP?action=edit EDIT]** |
| 3 | }}} |
| 4 | [[PageOutline]] |
| 5 | {{{#!html |
| 6 | <h1><font size=+2> Configuration de l'environnement des TP |
| 7 | }}} |
| 8 | |
| 9 | |
| 10 | Les travaux pratiques se font sur Linux. |
| 11 | Si vous avez Linux, vous pouvez sauter l'**Étape 1** et passer à l'**Étape 2**. |
| 12 | |
| 13 | La première étape est donc de disposer d'un ordinateur réel ou virtuel sur Linux ou alors de vous connecter sur une machine des salles de TP par VNC. |
| 14 | Pour VNC, vous devez suivre la procédure expliquée sur la page [wiki:VNC Connexion VNC]. |
| 15 | Si vous travaillez sur un ordinateur Windows, vous allez devoir utiliser une machine virtuelle Linux ou un client VNC. |
| 16 | Si vous avez suivi l'UE de réseau, vous devriez déjà avoir !VirtualBox et une VM installée et en état de marche qui fonctionne pour l'UE d'archi. |
| 17 | Sinon, nous vous avons préparé une machine virtuelle utilisant !VirtualBox et une distribution !LinuxMint. |
| 18 | |
| 19 | |
| 20 | |
| 21 | = Étape 1. Environnement de travail Linux pour les TPs |
| 22 | |
| 23 | |
| 24 | |
| 25 | __Installation d'une machine virtuelle__ |
| 26 | * 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. Si vous rencontrez un problème, pensez à utiliser les forums sur Moodle ou Discord pour vous aidez. |
| 27 | - [https://fr.wikihow.com/installer-VirtualBox wikihow : Comment installer VirtualBox] |
| 28 | - [https://www.papergeek.fr/comment-installer-une-machine-virtuelle-linux-dans-windows-10-81428 papergeek : Comment installer une machine virtuelle linux dans windows 10] |
| 29 | * Récupérez le [https://frama.link/lu3ni029 disque de la machine virtuelle] (compressé avec 7z). Ce fichier fait 2Go. |
| 30 | * Décompressez le fichier, il occupera alors 12Go |
| 31 | * Ainsi, vous devez créer 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. Ce [https://www.eugenetoons.fr/utiliser-un-fichier-vdi-dans-virtualbox/ didacticiel sur comment utiliser un fichier vdi] peut vous aider. |
| 32 | * 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`**. |
| 33 | |
| 34 | __Configurations utiles__ |
| 35 | * Loguez-vous sur votre Linux (soit en natif, soit sur votre VM habituelle, soit sur celle que vous venez juste d'installer) |
| 36 | * Si c'est la VM que vous venez d'installer, vous devez sans doute changer le configuration par défaut : |
| 37 | * **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. |
| 38 | * Cliquez sur l'icône **`Keyboard`** présente sur le Bureau de la VM → Une fenêtre apparaît |
| 39 | * Cliquez l'onglet **`Layout`** → par défaut **`Keyboard Model`** = **`Generic 105-key (PC)`** et **`Keyboard Layout`** = **`French AZERTY`** |
| 40 | * **`Keyboard Model`** devrait convenir au plus grand nombre, sinon sélectionner le vôtre. |
| 41 | * **`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 : |
| 42 | * Cliquez sur **`Add`**, sélectionner votre clavier et cliquez sur **`ok`** |
| 43 | * Le nouveau clavier apparaît en fin de liste. |
| 44 | * Utilisez les flèches à droite de cette liste pour mettre votre clavier en tête de liste. |
| 45 | * Cliquez sur **`Close`** pour fermer l'application **`Keyboard`** et tester que cela fonctionne, sinon recommencez. |
| 46 | * **Configuration du presse papier partagé** :\\Vous pouvez autoriser le partage du presse papier (crtl-C/ctrl-V) entre la machine hôte et la VM |
| 47 | * Allez sur la fenêtre du gestionnaire de VM (d'où vous avez lancé votre VM) |
| 48 | * Cliquez sur **`Général`** → la fenêtre de configuration de la VM apparaît |
| 49 | * Cliquez sur l'onglet **`Avancé`** → Une fenêtre apparaît avec deux menus déroulants |
| 50 | * Sur le menu déroulant : **`Presse-papier partagé`** sélectionnez **`Bidirectionnel`**\\→ vous pourrez faire un ctrl-C sur la machine hôte et un ctrl-V sur la machine invitée (la VM) (et inversement). |
| 51 | * 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) |
| 52 | |
| 53 | |
| 54 | |
| 55 | = Étape 2. Prototype virtuel et chaîne de compilation MIPS |
| 56 | |
| 57 | |
| 58 | |
| 59 | * Démarrez la machine virtuelle. |
| 60 | * Dans le cas où vous êtes sur votre propre VM (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 le simulateur pour les TTY et il n'est pas toujours installé par défaut. |
| 61 | * 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...) |
| 62 | * Démarrez un navigateur web sur votre Linux et chargez la page de l'UE : **`https://www-soc.lip6.fr/trac/archi-l3s6/wiki/Howto-TP` ***\\''** * ** Conseil : vous pouvez utiliser le presse papier partagé si vous l'avez configuré à l'étape 1.'' |
| 63 | * Récupérez l'archive contenant le **[htdocs:files/AS6.tgz prototype virtuel et la chaîne de compilation MIPS]** |
| 64 | * Placez l'archive à la racine de votre compte et ouvrez un terminal |
| 65 | * Décompressez l'archive avec la commande : **`tar xvf AS6.tgz`** à la racine de votre compte. |
| 66 | * Si vous avez bien placé l'archive à la racine de votre compte, déplacez-vous dans AS6 : **`cd $HOME/AS6`** |
| 67 | * Éditez le fichier **`$HOME/.bashrc`** et ajoutez au début **`source $HOME/AS6/bin/Source-me.sh`** |
| 68 | * Exécutez pour cette fois le **`.bashrc`** (parce que vous venez juste de le modifier) **`source $HOME/.bashrc`** |
| 69 | * Vous pouvez placer le répertoire **`AS6`** ailleurs qu'à la racine, voire le renommer, mais pour que cela fonctionne vous devez éditer la première ligne du fichier **`AS6/bin/Source-me.sh`**, toutefois dans les textes des TP, nous ferons l'hypothèse que le répertoire **`AS6`** est la racine du compte. |
| 70 | |
| 71 | |
| 72 | |
| 73 | = Étape 3. Test : compilation et exécution d'un test |
| 74 | |
| 75 | |
| 76 | |
| 77 | * Vous devez avoir sourcé le fichier **`bin/Source-me.sh`** (sinon relisez Étape 2) |
| 78 | * Allez dans le répertoire **`test`** de **`bin`**: **`cd $HOME/AS6/bin/test; make exec`** |
| 79 | |
| 80 | * __Si cela fonctionne, vous devez voir : |
| 81 | * 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. |
| 82 | * vous devez voir une fenêtre en haut à gauche avec marqué "Hello World!"\\ |
| 83 | Ce message est écrit par le programme qui s'exécute sur le MIPS. |
| 84 | * Pour arrêter la simulation, tapez **`ctrl-C`** sur le terminal de lancement du simulateur. |
| 85 | |
| 86 | * __Si cela ne fonctionne pas : |
| 87 | * peut-être n'avez-vous pas placé le répertoire **`AS6`** à la racine de votre compte.\\ |
| 88 | Vous avez le droit, mais vous devez modifier la première ligne du fichier **`AS6/bin/Source-me.sh`** et indiquer le bon répertoire. |
| 89 | * peut-être n'avez-vous pas sourcer le fichier **`AS6/bin/Source-me.sh`**.\\ |
| 90 | Vous pouvez le vérifier en tapant la commande **`cd;almo1.x`**\\ |
| 91 | Si le shell vous répond **`command not found`** ou **`commande inconnue`**, c'est que vous n'avez pas sourcé le fichier **`bin/Source-me.sh`**. |
| 92 | |
| 93 | |
| 94 | |
| 95 | = Remarques générales |
| 96 | |
| 97 | |
| 98 | |
| 99 | * 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 !LinuxMint. Si vous utilisez votre propre VM, je vous conseille de l'installer. |
| 100 | * 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). |