Documentation de liveUSB v1.2.2-stretch Version 1.2

Gregory DAVID et Vincent LABBE

29 March 2016

Documentation principale

1 Présentation du système liveUSB 3 1.1 Logiciels installés...... 3 1.2 Comparaison avec ClefAgreg/Clef ISN...... 7

2 Téléchargement et utilisation du système liveUSB 9 2.1 Pour utiliser un système déjà configuré et testé (méthode la plus simple)...... 9 2.2 Pour configurer le système pour d’autres besoins (méthode plus complète)...... 9

3 Captures d’écran 11 3.1 Généralités...... 11 3.2 Exemples d’applications préinstallées (ici en version 1.2.2-stretch )...... 13

4 Documentation utilisateur 15 4.1 Comment permettre le démarrage du système sur la clé...... 15 4.2 Configuration par défaut...... 15 4.3 Comment installer un paquet manquant...... 15 4.4 Erreurs ou avertissements possibles...... 16

5 Documentation distributeur 17 5.1 Téléchargement de l’image système...... 17 5.2 Transfert de l’image système et configuration de la persistance...... 17 5.3 Et si on dispose déjà d’une clef liveUSB ?...... 21

6 Documentation constructeur 23 6.1 Prologue...... 23 6.2 Mécanisme général d’une construction ...... 23 6.3 Mise en œuvre de la construction...... 23

7 Documentation contributeur 27 7.1 Vous rencontrez des dysfonctionnements...... 27 7.2 Vous ne trouvez pas la documentation adaptée à votre besoin...... 29 7.3 Vous voulez apporter votre aide, votre savoir-faire ou votre expertise...... 29

8 Nomenclature 33

9 Installation de live-build pour les utilisateurs sans Debian GNU/Linux 35 9.1 Récupération du code source...... 35 9.2 Installation de live-build ...... 35

10 Structure de travail et répartition des rôles 37

i ii Documentation de liveUSB v1.2.2-stretch, Version 1.2

Release 1.2.2-stretch Date 29 March 2016 Copyright GNU Free Documentation License 1.3 with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts

Documentation principale 1 Documentation de liveUSB v1.2.2-stretch, Version 1.2

2 Documentation principale CHAPITRE 1

Présentation du système liveUSB

Clef USB démarrable, support de l’enseignement de la spécialité ISN en Terminale S (notamment, mais peut être construite pour d’autres usages : Physique/Chimie, Mathématiques, STI2D, etc.). Contient une version adaptée de Debian GNU/Linux. C’est une clef persistante (les modifications sont conservées entre les redémarrages).

1.1 Logiciels installés

Voir la liste des paquets installés.

1.1.1 Représentation de l’information

Représentation binaire

— bless — hexedit — shed — wxhexeditor

Opérations booléennes

— logisim

Numérisation

— gimp-data-extras — gimp-plugin-registry — gimp-texturize — — xsane

Formats de données

— bless — fontforge — gdb

3 Documentation de liveUSB v1.2.2-stretch, Version 1.2

— hexedit — python3 — shed — wxhexeditor

Compression

— file-roller — unar — unrar-free — unzip — zip

Structuration et organisation de l’information

— lxterminal — nautilus — xterm

1.1.2 Algorithmique

— algobox — logisim

1.1.3 Langages et programmation

— arduino — emacs — — geany-plugin-py — — graphviz — ipython3 — ipython3-notebook — ipython3-qtconsole — puredata — python3-kivy — python3-matplotlib — python3-numpy — python3-pil — python3-pil.imagetk — python3-pip — python3-scipy — python3-tk — qt-sdk — qt5-doc — qt5-qmake — qtbase5-dev — qtbase5-dev-tools — qtcreator — spyder3 — zenity

4 Chapitre 1. Présentation du système liveUSB Documentation de liveUSB v1.2.2-stretch, Version 1.2

Correction d’un programme

— alleyoop — cppcheck — doxygen — doxygen-gui — gdb — valgrind — valkyrie

Langages de description

— gedit — texlive — texlive-bibtex-extra — texlive-lang-french — texlive-latex-extra — texmaker

1.1.4 Architectures matérielles

— binutils — build-essential — gdb

1.1.5 Réseaux

— arping — filezilla — netcat — openssh-blacklist — openssh-blacklist-extra — openssh-client — openssh-server — openssh-sftp-server — openssl — pd-iemnet — pd-osc — python-scapy — python3-liblo — seahorse — wireshark

1.1.6 Mathématiques

— geogebra — maxima — wxmaxima — xmaxima

1.1. Logiciels installés 5 Documentation de liveUSB v1.2.2-stretch, Version 1.2

1.1.7 Global

Jeux

Visualiseurs

— gedit — mplayer — vlc — xpdf

Son

— audacity — libav-tools — sox

Image

— fyre — gimp — imagemagick

Vidéo

— libav-tools — mplayer — vlc

Systèmes de gestion de version (SCM)

— git — git-doc — git-gui — gitk —

Virtualisation

— qemu-kvm — virtualbox — virtualbox-qt

Navigateurs web

— chromium — firefox-esr — firefox-esr-l10n-fr — flashplugin-nonfree — xul-ext-adblock-plus — xul-ext-flashblock

6 Chapitre 1. Présentation du système liveUSB Documentation de liveUSB v1.2.2-stretch, Version 1.2

Bureautique

— freeplane — gedit — libreoffice — hunspell — hunspell-fr-modern

Communication

— hexchat — mumble — pidgin

1.1.8 Système et hors ISN

— avahi-daemon — console-data — console-setup — cups — cups-filters — cups-pk-helper — file — file-roller — foomatic-db-compressed-ppds — — gvfs-bin — keyboard-configuration — less — live-tools — locales — network-manager- — printer-driver-cups-pdf — printer-driver-gutenprint — screen — sudo — synaptic — task-french — task-french-desktop — task-gnome-desktop — user-setup — zsh

1.2 Comparaison avec ClefAgreg/Clef ISN

Il existe déjà une ClefAgreg/Clef ISN pour l’agrégation de mathématiques, pour l’informatique en prépa, pour l’ISN. Cette clef est référencée sur le site du SILO. Nous l’avons testée (voir l’issue #31) et elle fonctionne bien, sauf sur l’un de nos ordinateurs, qui est plutôt récent. Mais surtout, elle nous semble plus compliquée à configurer et à mettre à jour.

1.2. Comparaison avec ClefAgreg/Clef ISN 7 Documentation de liveUSB v1.2.2-stretch, Version 1.2

8 Chapitre 1. Présentation du système liveUSB CHAPITRE 2

Téléchargement et utilisation du système liveUSB

2.1 Pour utiliser un système déjà configuré et testé (méthode la plus simple)

2.1.1 Téléchargement

La dernière image système validée et construite de liveUSB v1.2.2-stretch est disponible au format .img. Vous pouvez consulter les autres constructions en visitant liveISN.

2.1.2 Documentations

— Documentation distributeur (page 17) : des instructions pour “recopier” le système sur une clef USB. — Documentation utilisateur (page 15) : comment démarrer sur la clef liveUSB, et ensuite comment utiliser le système liveUSB, etc.

2.2 Pour configurer le système pour d’autres besoins (méthode plus complète)

Pour configurer la construction d’une autre image système, voir la Documentation constructeur (page 23).

9 Documentation de liveUSB v1.2.2-stretch, Version 1.2

10 Chapitre 2. Téléchargement et utilisation du système liveUSB CHAPITRE 3

Captures d’écran

3.1 Généralités

Voir Menu de démarrage de la clef (basé sur SYSLINUX) (page 11) et Bureau et gestionnaire de fenêtres (Gnome3) (page 12).

Fig. 3.1 – Menu de démarrage de la clef (basé sur SYSLINUX)

11 Documentation de liveUSB v1.2.2-stretch, Version 1.2

Fig. 3.2 – Bureau et gestionnaire de fenêtres (Gnome3)

12 Chapitre 3. Captures d’écran Documentation de liveUSB v1.2.2-stretch, Version 1.2

3.2 Exemples d’applications préinstallées (ici en version 1.2.2- stretch )

3.2. Exemples d’applications préinstallées (ici en version 1.2.2-stretch ) 13 Documentation de liveUSB v1.2.2-stretch, Version 1.2

14 Chapitre 3. Captures d’écran CHAPITRE 4

Documentation utilisateur

4.1 Comment permettre le démarrage du système sur la clé

4.1.1 Utiliser le menu de démarrage

Au démarrage, il faut appuyer sur la touche qui indique à l’ordinateur de démarrer sur la clé, et non pas sur le disque dur. Pour trouver cette touche, cela dépend de votre matériel et vous devrez probablement être attentif aux informations affichées lors de l’allumage de l’ordinateur.

Note : Exemples : F8 (PC de bureau) ou F12 (PC portable).

Les périphériques suivants s’affichent : — USB Mass Storage Device — UEFI: SanDisk — SanDisk = c’est celui qu’il faut choisir.

4.1.2 Entrer dans le BIOS

Si l’étape précédente n’a pas fonctionné, c’est qu’elle n’a pas été activée, ou qu’elle n’est pas disponible. Il faut alors aller dans le BIOS, et activer le menu de démarrage (boot menu), ou bien (directement à partir du BIOS) démarrer sur la clé. Exemples de touches à utiliser au démarrage : DEL ou F2.

4.2 Configuration par défaut

Le nom du compte d’utilisateur (login) est isn, c’est celui qui apparaîtra dans le terminal. Le nom visible est Utilisateur ISN, c’est ce qui apparaît dans Gnome3 ou d’autres applications.

Note : Le mot de passe du compte isn est live.

4.3 Comment installer un paquet manquant

Par exemple, python-pygame n’est pas installé par défaut. Pour l’installer s’il y a besoin, voir l’issue #18.

15 Documentation de liveUSB v1.2.2-stretch, Version 1.2

4.4 Erreurs ou avertissements possibles

4.4.1 Windows is hibernated

Ce message peut apparaître au démarrage de la clé :

ntfs: (device sda2) : load_system_files(): Windows is hibernated. Mounting read-only. Run chkdsk

Cela provient du fait que Windows n’est pas vraiment éteint par défaut (Windows 8, Windows 10 par exemple). Il est en hibernation, afin de redémarrer plus vite. Il n’y a pas de problème lié à la clé live. S’il a besoin de monter la partition Windows, alors il faut éteindre complètement Windows avant de lancer la clé live. Voir le forum de discussion.

4.4.2 Undefined video mode number : 317

Undefined video mode number: 317 Press to see video modes available, to continue, or wait 30 sec

L’écran du Asus Eee PC 1015PEM a une résolution de 1024x600 pixels, ce mode semble provoquer le message (j’ai essayé en choisissant ENTER mais la résolution 1024x600 n’est pas proposée). Donc ici on appuie directement sur SPACE et tout se déroule correctement ensuite.

4.4.3 Le système semble gelé en sortie de veille

Il est arrivé, sur un système de test, que la sortie de veille du système live gèle la machine. Ceci a été discuté dans l’issue #16 et ne semble pas avoir été rencontré à nouveau. Si toutefois vous rencontrez ce dysfonctionnement et qu’il est reproductible (= vous pouvez le refaire plusieurs fois selon la même méthode), venez alimenter l’issue #16 avec les informations suivantes : — modèle de votre machine, — quantité de mémoire vive (RAM exprimée en Go), — modèle du CPU (ex : Dual Core [email protected]), — version de liveUSB touchée par le dysfcontionnement, — description de la démarche pour reproduire le dysfonctionnement.

16 Chapitre 4. Documentation utilisateur CHAPITRE 5

Documentation distributeur

5.1 Téléchargement de l’image système

La dernière image système validée et construite de liveUSB est disponible au format .img. Vous pouvez consulter les autres constructions en visitant liveISN.

5.2 Transfert de l’image système et configuration de la persistance

Choisir une méthode parmi les [Méthode A - rapide, simple] Sous GNU/Linux, méthode automatisée (page 17) (automatisée) ou [Méthode B - pour comprendre] Sous GNU/Linux, méthode étape par étape (page 18) (étape par étape).

Note : Ces méthodes utilisent exclusivement des outils libres GNU/Linux.

Avertissement : Pour les utilisateur n’ayant pas un accès direct à GNU/Linux, une solution est possible la [Méthode C] Sous Windows (page 20).

Le mécanisme général est le suivant : — copie de l’image sur le périphérique USB (utilisation de dd) — création de la partition sur l’espace vide restant sur le périphérique USB (gparted, fdisk, etc.) — formatage de la partition en ext4 (mkfs.ext4) — configuration de la persistance dans le fichier persistence.conf

5.2.1 Nomenclature

Voir Nomenclature (page 33) pour des explications sur la nomenclature concernant les lignes de commande.

5.2.2 [Méthode A - rapide, simple] Sous GNU/Linux, méthode automatisée

Cette méthode est conçue pour faciliter le travail. L’automate burn peut-être utilisé. Dans notre cas, la configuration de base promet d’assurer la persistance à partir d’une partition utilisant l’espace restant libre sur le support cible.

Note : Vous pouvez analyser le fichier burn de la ligne 240 à 259 afin de comprendre la façon dont cette étape est assurée.

17 Documentation de liveUSB v1.2.2-stretch, Version 1.2

Considérons que votre clef USB est associé au descripteur /dev/sde et que le fichier image système est dans live-image-amd64.img :

# ./burn -i live-image-amd64.img -d /dev/sde ou

$ sudo ./burn -i live-image-amd64.img -d /dev/sde

Note : Aide en ligne de burn

$ sudo ./burn --help burn ver. 0.0.1 Brûler l'image de la clef liveUSB sur un périphérique choisi et configurer l'espace restant disponible pour accueillir la persistance du système.

Usage : burn [-h | --help] [-d chemin] [-i fichier.img] [-c] [-p]

Options :

-h, --help Affiche ce message d'aide et quitte -d chemin Bloc device (périphérique mode bloc) destinataire -i fichier.img Image de la clef à brûler -c Désactive l'étape de copie de l'image -p Désactive l'étape de persistance

NOTE : Vous devez avoir les droits 'sudo' ou être le super utilisateur pour exécuter ce programme.

5.2.3 [Méthode B - pour comprendre] Sous GNU/Linux, méthode étape par étape

Il s’agit de la même démarche que la [Méthode A - rapide, simple] Sous GNU/Linux, méthode automatisée (page 17), mais il s’agit ici d’une version non automatisée. Cette [Méthode B - pour comprendre] Sous GNU/Linux, méthode étape par étape (page 18) a été testée dans l’issue #36 (on y trouvera quelques erreurs, et les explications concernant leurs résolutions).

Identification du périphérique cible

Avant de brancher la clef USB, lancer la commande lsblk :

$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 465,8G 0 disk +-sda1 8:1 0 465,8G 0 part / sdb 8:16 0 1,8T 0 disk +-sdb1 8:17 0 1,8T 0 part /home

Brancher maintenant la clef USB, puis relancer lsblk :

$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 465,8G 0 disk +-sda1 8:1 0 465,8G 0 part / sdb 8:16 0 1,8T 0 disk +-sdb1 8:17 0 1,8T 0 part /home sdc 8:64 1 14,5G 0 disk

18 Chapitre 5. Documentation distributeur Documentation de liveUSB v1.2.2-stretch, Version 1.2

Nous pouvons alors identifier que notre clef USB est accessible par le descripteur en mode bloc /dev/sdc. Nous pouvons vérifier que c’est un périphérique en mode bloc par le b en début de ligne de sortie de la commande suivante :

$ ls -l /dev/sdc brw-rw---- 1 root disk 8, 32 févr. 15 19:03 /dev/sdc

Recopie de l’image système sur le périphérique cible (= la clef USB)

Vous devez vous munir du nom du descripteur en mode bloc du périphérique USB cible. Dans cet exemple, nous considérerons le périphérique USB accessible sur /dev/sdc. Vous devez par ailleurs vous munir du nom de l’image système précédemment créée. Si vous avez laissé la confi- guration initiale, le fichier image se nomme live-image-amd64.img. Placez-vous dans le dossier contenant ce fichier image, puis exécutez la commande ci-desssous. Il faut attendre quelques minutes avant que l’écran affiche que la commande s’est bien exécutée.

# dd if=live-image-amd64.img of=/dev/sdc bs=1M 1634+0 enregistrements lus 1634+0 enregistrements écrits 1713373184 bytes (1,7 GB, 1,6 GiB) copied, 167,139 s, 10,3 MB/s

Mise en œuvre de la persistance (voir le live-manual)

Il s’agit ici de comprendre les concepts. Il n’y a pas de démarche technique à réaliser. Si vous le souhaitez, passez directement à l’étape Création et paramétrage de la partition d’accueil pour la persistance (page 20). Le paradigme d’un système Live CD est d’être pré-installé en s’amorçant (boot) sur un support en lecture seule, comme un cdrom, où les données et les modifications ne survivent pas aux redémarrages du matériel hôte qui l’exécute. Un système live est une généralisation de ce paradigme et gère ainsi d’autres supports en plus des CDs. Malgré tout, dans son comportement par défaut, il doit être considéré en lecture seule et toutes les évolutions pendant l’exécution du système sont perdues à l’arrêt. La persistance est un nom commun pour les différents types de solutions pour sauver, après un redémarrage, certaines ou toutes les données, de cette évolution pendant l’exécution du système. Pour comprendre comment cela fonctionne, il peut être utile de savoir que même si le système est démarré et exécuté à partir d’un support en lecture seule, les modifications des fichiers et répertoires sont écrites sur des supports inscriptibles, typiquement un disque RAM (tmpfs) et les données des disques RAM ne survivent pas à un redémarrage. Les données stockées sur ce disque virtuel doivent être enregistrées sur un support inscriptible per- sistant comme un support de stockage local, un partage réseau. Tous ces supports sont pris en charge dans les systèmes live de différentes manières, et tous nécessitent un paramètre d’amorçage spécial à préciser au moment du démarrage : persistence. Si le paramètre de démarrage persistence est réglé (et nopersistence n’est pas utilisé), les supports de stockage locaux (par exemple les disques durs, clés USB) seront examinés pour trou- ver des volumes persistants pendant le démarrage. Il est possible de limiter les types de volumes persistants à utiliser en indiquant certains paramètres de démarrage décrits dans la page de manuel live-boot(7). Un volume persistant est un des éléments suivants : — une partition, identifiée par son nom GPT, — un système de fichiers, identifié par son étiquette (son nom) de système de fichiers, — un fichier image situé sur la racine d’un système de fichiers en lecture (même une partition NTFS d’un système d’exploitation étranger), identifié par son nom de fichier.

5.2. Transfert de l’image système et configuration de la persistance 19 Documentation de liveUSB v1.2.2-stretch, Version 1.2

Création et paramétrage de la partition d’accueil pour la persistance

Vous devez vous munir du nom du descripteur en mode bloc du périphérique USB cible. Dans cet exemple, nous considérerons le périphérique USB accessible sur /dev/sdc, tel que celui utilisé pour réalisé le transfert de l’image système.

# echo ",+,L" | sfdisk --append /dev/sdc

Concrètement, on peut avoir besoin d’écrire sudo avant et après |, sinon cela ne fonctionne pas car il nous manque des droits. De plus, le paramètre --force peut être indispensable. Ainsi, l’instruction s’écrit ainsi $ sudo echo ",+,L" | sudo sfdisk --append --force /dev/sdc Il y a ensuite deux instructions à saisir :

# partprobe /dev/sdc # mkfs.ext4 -F -L persistence /dev/sdc

Ensuite, il faut aller dans la partition persistence, créer le fichier persistence.conf, dont le contenu est :

/ union

Voir issue #89#note_14328 et issue #36#note_11929 pour des essais réussis concernant cette étape de création de la partition d’accueil pour la persistance.

5.2.4 [Méthode C] Sous Windows

Nature du problème

Les recherches réalisés dans l’issue #89 montrent que Windows ne comporte pas d’outil intégré pour faire la distribution de notre clé liveUSB. Et la recherche d’un logiciel (libre) pour répondre à ce besoin n’a rien donné. Il y a deux raisons à cela : — Lorsqu’une clef USB comporte plusieurs partitions, l’explorateur Windows n’est capable d’affi- cher que la première partition. Nous voulons justement utiliser une première partition pour le sys- tème, et une deuxième partition pour les données de persistance. — Windows ne gère pas le format de fichier ext4. Or c’est justement ce format qui est adapté pour la persistance. En effet, le format de fichiers souvent utilisé pour les clefs USB est le FAT32. Mais ce format présente une limitation de taille de fichier de presque 4 Gio (232 octets pour être exact). Nous pouvons adopter deux positions : — Soit on abandonne l’idée d’avoir deux partitions séparées et on abandonne l’idée d’utiliser ext4. Cela signifie rester en FAT32, et mettre la persistance dans un fichier dédié (mais sa taille sera limitée à presque 4 Gio). C’est une solution possible, qui est d’ailleurs utilisée par beaucoup de clefs démar- rables. — Soit on abandonne l’idée de construire la clé liveUSB en restant sous Windows uniquement. C’est la démarche que nous proposons.

Solution proposée : création d’une clef démarrable GNU/Linux (qui servira de boîte à outils in- termédiaire)

Nous proposons une solution avec Lubuntu, mais d’autres distributions basées sur Debian pourraient convenir (mais nous n’avons pas eu le temps d’en tester). On pourra consulter l’issue #89 pour comprendre les étapes qui nous amènent à cette solution. — On télécharge directement l’iso lubuntu-15.10-desktop-i386.iso sur http://lubuntu.fr/down.htm (sans passer par LinuxLive USB Creator). Attention : Les versions plus anciennes de lubuntu ne conviennent pas ! — Avec LinuxLive USB Creator, on sélectionne cette iso. Même si cette iso n’est pas dans la liste de compatibilité, LinuxLive USB Creator accepte quand même de créer un fichier de persistance (c’est ici un fichier dédié pour la persistance, il a une taille limitée à presque 4 Gio = 232 octets exactement).

20 Chapitre 5. Documentation distributeur Documentation de liveUSB v1.2.2-stretch, Version 1.2

— La persistance n’est pas indispensable ici. On pourrait s’en passer, mais on en profite car cela pourrait servir dans d’autres situations. — Après gravure de la clef, redémarrer cette clef, et ensuite suivre la [Méthode A - rapide, simple] Sous GNU/Linux, méthode automatisée (page 17) ou la [Méthode B - pour comprendre] Sous GNU/Linux, mé- thode étape par étape (page 18).

Fig. 5.1 – Interface de Linux Live USB Creator

5.3 Et si on dispose déjà d’une clef liveUSB ?

On peut l’utiliser pour en fabriquer une autre, il suffit de démarrer sur la première clef et de suivre la documentation depuis Transfert de l’image système et configuration de la persistance (page 17).

5.3. Et si on dispose déjà d’une clef liveUSB ? 21 Documentation de liveUSB v1.2.2-stretch, Version 1.2

22 Chapitre 5. Documentation distributeur CHAPITRE 6

Documentation constructeur

6.1 Prologue

Cette documentation est une simplification de la documentation officielle de live-build et est adaptée à la configu- ration fournie par ce projet.

6.1.1 Nomenclature

Voir Nomenclature (page 33) pour des explications sur la nomenclature concernant les lignes de commande.

6.1.2 Numérotation des versions

Nous nous basons sur le principe de numérotation sémantique des versions proposé par Tom Preston Werner.

6.2 Mécanisme général d’une construction

La construction d’une clef USB bootable requiert d’assurer les étapes suivantes : — Installation des Pré-requis (page 24) sur votre système de construction — Récupération de la configuration initiale et des outils accessoires (page 24) — Choix de la configuration spécifique (page 24) (RC ou entière) — Lors de la construction d’un système liveUSB (page 28)

Note : Les 3 stades de la construction — la construction d’une version distribuable (mise en production) — la construction d’une RC qui mènera à une distribuable (test et validation) — la construction d’une intermédiaire qui mènera à une RC (développement) Quel que soit le stade de la construction, le mécanisme est toujours le même. La variance d’un stade à l’autre correspond à la position dans l’arbre des configurations figées (sur quel tag nous plaçons-nous pour réaliser la construction).

6.3 Mise en œuvre de la construction

Voir la vidéo de démonstration dont les étapes sont détaillées ci-après.

23 Documentation de liveUSB v1.2.2-stretch, Version 1.2

6.3.1 Pré-requis

Les exigences pour la création de l’images système liveISN sont très faibles : — Accès super-utilisateur (root) sur le système de construction. — Une version à jour de git. — Une version mise à jour de live-build (voir Installation de live-build pour les utilisateurs sans Debian GNU/Linux (page 35)) — Une version à jour de debootstrap. — Un shell POSIX, comme bash, zsh ou dash. — Un noyau Linux 2.6.x ou supérieur.

Super-utilsateur ?

La commande suivante permet de connaître le nom de l’utilisateur que nous sommes :

# whoami root

si l’utilisateur n’est pas root, alors il faut s’assurer que nous sommes un utilisateur faisant partie du groupe sudo :

$ groups lambda cdrom floppy sudo audio video plugdev ...

Si dans la sortie de la commande groups vous n’appercevez pas le mot clef sudo, c’est que vous ne faites pas partie du groupe sudo. Dans ce cas, vérifiez avec l’administrateur de votre système afin d’obtenir un compte vous permettant de réaliser en tant que super-utilisateur les commandes suivantes : lb et apt-get.

Installer les logiciels nécessaires

# apt-get update && apt-get install git live-build debootstrap

ou avec sudo

$ sudo apt-get update && sudo apt-get install git live-build debootstrap

6.3.2 Récupération de la configuration initiale et des outils accessoires

$ cd ~ $ git clone https://git.framasoft.org/isn-malraux/liveUSB.git $ cd liveUSB $ ls auto burn config documentation export_liste_paquets.sh README.md

6.3.3 Choix de la configuration spécifique

Lister les configurations disponibles

$ git tag v1.0 v1.0.rc1 v1.0.rc2 v1.0.rc3 v1.0.rc4 v1.0.rc5

24 Chapitre 6. Documentation constructeur Documentation de liveUSB v1.2.2-stretch, Version 1.2

Basculer sur une configuration spécifique

$ git checkout v1.0.rc5

6.3.4 Construction de l’image système : fichier .img

# lb build ou bien avec sudo

$ sudo lb build

À l’issue de la construction, l’image système se trouve disponible dans le répertoire courant portant le nom liveISN-v1.0.rc5-amd64.img (ou tout autre numéro de version en fonction du choix de la configura- tion fait au préalable).

Journal de sortie de la construction lb build build.log

6.3. Mise en œuvre de la construction 25 Documentation de liveUSB v1.2.2-stretch, Version 1.2

26 Chapitre 6. Documentation constructeur CHAPITRE 7

Documentation contributeur

Vous pouvez contribuer au projet liveUSB si : — Vous rencontrez des dysfonctionnements (page 27) — À l’usage de la clef liveUSB (page 27) — Lors de la distribution d’une clef liveUSB (page 28) — Lors de la construction d’un système liveUSB (page 28) — Vous ne trouvez pas la documentation adaptée à votre besoin (page 29) — Vous voulez apporter votre aide, votre savoir-faire ou votre expertise (page 29) — Vous voulez participer à la rédaction de la documentation (page 29) — Il faut améliorer la collection logicielle (page 30) — Il faut vraiment améliorer l’aspect esthétique du système liveUSB (page 30)

7.1 Vous rencontrez des dysfonctionnements

7.1.1 À l’usage de la clef liveUSB

1. Assurez-vous d’avoir lu Documentation utilisateur (page 15) 2. Connectez-vous à FramaGit(ouvrir un compte si besoin) 3. Rendez-vous dans l’espace de gestion des incidents 4. Recherchez dans l’ensemble des issues ouvertes et fermées si quelqu’un n’a pas déjà rencontré votre dys- fonctionnement (utilisez le champ de recherche en haut à droite de la liste pour effectuer une recherche plein texte) 5. Si à ce stade vous n’avez trouvé d’informations satisfaisantes alors vous allez devoir rédiger une nouvelle issue afin de nous rendre compte de votre situation et du dysfonctionnement : (a) Accédez à la page de création d’une nouvelle issue (b) Renseignez le champ Title d’une phrase très courte décrivant le problème comme par exemple : “le pointeur de souris ne s’affiche” (c) Renseignez le champ Description d’une description détaillée décrivant le problème, avec les élé- ments minimum suivants : — le modèle de votre machine — la quantité de mémoire vive (RAM exprimée en Go) — le modèle du CPU (ex : Dual Core [email protected]) — la version de liveUSB touchée par ce dysfonctionnement — la description de la méthode pour reproduire le dysfonctionnement — une proposition de correction ou d’amélioration (optionnel) (d) Renseigner le champ Labels à : — err: boot si le dysfonctionnement empêche le démarrage du système liveUSB — err: system si le dysfonctionnement survient une fois le système liveUSB démarré

27 Documentation de liveUSB v1.2.2-stretch, Version 1.2

(e) Valider la création de cette nouvelle issue en appuyant sur le bouton Submit issue

Avertissement : NE PAS RENSEIGNER les champs Assignee et Milestone

7.1.2 Lors de la distribution d’une clef liveUSB

1. Assurez-vous d’avoir lu Documentation distributeur (page 17) 2. Connectez-vous à FramaGit(ouvrir un compte si besoin) 3. Rendez-vous dans l’espace de gestion des incidents 4. Recherchez dans l’ensemble des issues ouvertes et fermées si quelqu’un n’a pas déjà rencontré votre dys- fonctionnement (utilisez le champ de recherche en haut à droite de la liste pour effectuer une recherche plein texte) 5. Si à ce stade vous n’avez trouvé d’informations satisfaisantes alors vous allez devoir rédiger une nouvelle issue afin de nous rendre compte de votre situation et du dysfonctionnement : (a) Accédez à la page de création d’une nouvelle issue (b) Renseignez le champ Title d’une phrase très courte décrivant le problème comme par exemple : “la partition de persistance ne se créée pas” (c) Renseignez le champ Description d’une description détaillée décrivant le problème, avec les élé- ments minimum suivants : — le modèle de votre machine — la quantité de mémoire vive (RAM exprimée en Go) — le modèle du CPU (ex : Dual Core [email protected]) — la version de liveUSB touchée par ce dysfonctionnement — la description de la méthode pour reproduire le dysfonctionnement — une proposition de correction ou d’amélioration (optionnel) (d) Renseigner le champ Labels à err: distribuer (e) Valider la création de cette nouvelle issue en appuyant sur le bouton Submit issue

Avertissement : NE PAS RENSEIGNER les champs Assignee et Milestone

7.1.3 Lors de la construction d’un système liveUSB

1. Assurez-vous d’avoir lu Documentation constructeur (page 23) 2. Connectez-vous à FramaGit(ouvrir un compte si besoin) 3. Rendez-vous dans l’espace de gestion des incidents 4. Recherchez dans l’ensemble des issues ouvertes et fermées si quelqu’un n’a pas déjà rencontré votre dys- fonctionnement (utilisez le champ de recherche en haut à droite de la liste pour effectuer une recherche plein texte) 5. Si à ce stade vous n’avez trouvé d’informations satisfaisantes alors vous allez devoir rédiger une nouvelle issue afin de nous rendre compte de votre situation et du dysfonctionnement : (a) Accédez à la page de création d’une nouvelle issue (b) Renseignez le champ Title d’une phrase très courte décrivant le problème comme par exemple : “la partition de persistance ne se créée pas” (c) Renseignez le champ Description d’une description détaillée décrivant le problème, avec les élé- ments minimum suivants : — le modèle de votre machine — la quantité de mémoire vive (RAM exprimée en Go) — le modèle du CPU (ex : Dual Core [email protected]) — la version de liveUSB touchée par ce dysfonctionnement

28 Chapitre 7. Documentation contributeur Documentation de liveUSB v1.2.2-stretch, Version 1.2

— la description de la méthode pour reproduire le dysfonctionnement — une proposition de correction ou d’amélioration (optionnel) (d) Renseigner le champ Labels à err: build (e) Valider la création de cette nouvelle issue en appuyant sur le bouton Submit issue

Avertissement : NE PAS RENSEIGNER les champs Assignee et Milestone

7.2 Vous ne trouvez pas la documentation adaptée à votre besoin

1. Assurez-vous d’avoir lu Documentation liveUSB v1.2.2-stretch (page 1) 2. Connectez-vous à FramaGit(ouvrir un compte si besoin) 3. Rendez-vous dans l’espace de gestion des incidents 4. Recherchez dans l’ensemble des issues ouvertes et fermées si quelqu’un n’a pas déjà évoqué ce manque documentaire (utilisez le champ de recherche en haut à droite de la liste pour effectuer une recherche plein texte) 5. Si à ce stade vous n’avez trouvé d’informations satisfaisantes alors vous allez devoir rédiger une nouvelle issue afin de nous rendre compte de votre situation et du manque documentaire : (a) Accédez à la page de création d’une nouvelle issue (b) Renseignez le champ Title d’une phrase très courte décrivant le problème comme par exemple : “pas de documentation sur les participantsd au projet” (c) Renseignez le champ Description d’une description détaillée décrivant le manque documentaire, avec les éléments minimum suivants : — le modèle de votre machine — la quantité de mémoire vive (RAM exprimée en Go) — le modèle du CPU (ex : Dual Core [email protected]) — la version de liveUSB touchée par ce manque documentaire — la description de la documentation absente — où placeriez-vous cette documentation ? — une proposition de correction ou d’amélioration (optionnel) (d) Renseigner le champ Labels à étape: documentation (e) Valider la création de cette nouvelle issue en appuyant sur le bouton Submit issue

Avertissement : NE PAS RENSEIGNER les champs Assignee et Milestone

7.3 Vous voulez apporter votre aide, votre savoir-faire ou votre ex- pertise

Lisez avant tout le diagramme Structure de travail et répartition des rôles (page 37) afin de vous assurer du nom du rôle ou de la tâche que vous proposez.

7.3.1 Vous voulez participer à la rédaction de la documentation

1. Assurez-vous d’avoir lu Structure de travail et répartition des rôles (page 37) et Vous ne trouvez pas la documentation adaptée à votre besoin (page 29) 2. Connectez-vous à FramaGit(ouvrir un compte si besoin) 3. Rendez-vous dans l’espace de gestion des incidents 4. Accédez à la page de création d’une nouvelle issue

7.2. Vous ne trouvez pas la documentation adaptée à votre besoin 29 Documentation de liveUSB v1.2.2-stretch, Version 1.2

5. Renseignez le champ Title d’une phrase très courte décrivant votre proposition : “documenter l’étape de test d’une version RC” 6. Renseignez le champ Description d’une description détaillée décrivant votre proposition documen- taire, avec les éléments minimum suivants : — le modèle de votre machine — la quantité de mémoire vive (RAM exprimée en Go) — le modèle du CPU (ex : Dual Core [email protected]) — la version de liveUSB touchée par cette proposition — l’ébauche de la documentation envisagée (plan et léger contenu) — où placeriez-vous cette documentation ? 7. Renseigner le champ Labels à étape: documentation 8. Valider la création de cette nouvelle issue en appuyant sur le bouton Submit issue

Avertissement : NE PAS RENSEIGNER les champs Assignee et Milestone

7.3.2 Il faut améliorer la collection logicielle

1. Assurez-vous d’avoir lu Structure de travail et répartition des rôles (page 37) et la liste des logiciels installés dans Présentation du système liveUSB (page 3) 2. Connectez-vous à FramaGit(ouvrir un compte si besoin) 3. Rendez-vous dans l’espace de gestion des incidents 4. Accédez à la page de création d’une nouvelle issue 5. Renseignez le champ Title d’une phrase très courte décrivant votre proposition : “ajouter le logiciel ‘0A.D.”’ ou bien “supprimer le logiciel ‘ffmpeg”’ 6. Renseignez le champ Description d’une description détaillée décrivant votre proposition, avec les éléments minimum suivants : — le modèle de votre machine — la quantité de mémoire vive (RAM exprimée en Go) — le modèle du CPU (ex : Dual Core [email protected]) — la version de liveUSB touchée par cette proposition — le nom exact du paquet logiciel dans Debian distribution stretch — à quelle catégorie de logiciels celui-ci se rapporte-t-il ? (voir la liste des logiciels installés dans Présen- tation du système liveUSB (page 3)) 7. Renseigner le champ Labels à étape: configurer et ajouter le label : — pkg: manquant si vous prpoposez un ajout — pkg: à supprimer si vous prpoposez une suppression 8. Valider la création de cette nouvelle issue en appuyant sur le bouton Submit issue

Avertissement : NE PAS RENSEIGNER les champs Assignee et Milestone

7.3.3 Il faut vraiment améliorer l’aspect esthétique du système liveUSB

1. Assurez-vous d’avoir lu Structure de travail et répartition des rôles (page 37) 2. Connectez-vous à FramaGit(ouvrir un compte si besoin) 3. Rendez-vous dans l’espace de gestion des incidents 4. Accédez à la page de création d’une nouvelle issue 5. Renseignez le champ Title d’une phrase très courte décrivant votre proposition : “changer l’image d’arrière plan du menu de démarrage” 6. Renseignez le champ Description d’une description détaillée décrivant votre proposition, avec les éléments minimum suivants :

30 Chapitre 7. Documentation contributeur Documentation de liveUSB v1.2.2-stretch, Version 1.2

— le modèle de votre machine — la quantité de mémoire vive (RAM exprimée en Go) — le modèle du CPU (ex : Dual Core [email protected]) — la version de liveUSB touchée par cette proposition — l’ébauche ou le contenu réel de la proposition (croquis, images, etc.) — où placeriez-vous cette ressource ? (optionnel) 7. Renseigner le champ Labels à tuning 8. Valider la création de cette nouvelle issue en appuyant sur le bouton Submit issue

Avertissement : NE PAS RENSEIGNER les champs Assignee et Milestone

7.3. Vous voulez apporter votre aide, votre savoir-faire ou votre expertise 31 Documentation de liveUSB v1.2.2-stretch, Version 1.2

32 Chapitre 7. Documentation contributeur CHAPITRE 8

Nomenclature

Les lignes de commande commençant par $ doivent être saisies par l’utilisateur lambda, exemple :

$ cd ~ $ ip link show

Les lignes de commande commençant par # doivent être saisies par le super utilisateur, ou en tant qu’utilisateur avec élévation éphémère de pouvoir (sudo), exemple :

# touch /etc/shadow # rm -rf /tmp/* ou l’équivalent avec sudo :

$ sudo touch /etc/shadow $ sudo rm -rf /tmp/*

Les lignes ne commençant pas par $ ou # ne doivent pas être saisies car elles sont les affichages de sortie des commandes précédentes, exemple :

$ cat /etc/hostname ISNconstructeur # ls /var backups cache games lib local lock log mail opt run spool tmp

33 Documentation de liveUSB v1.2.2-stretch, Version 1.2

34 Chapitre 8. Nomenclature CHAPITRE 9

Installation de live-build pour les utilisateurs sans Debian GNU/Linux

9.1 Récupération du code source live-build est développé en utilisant le système de contrôle de version Git. Dans les systèmes basés sur Debian, il est fourni par le paquet git. Pour examiner le dernier code, exécutez :

$ git clone https://anonscm.debian.org/cgit/debian-live/live-build.git

9.2 Installation de live-build

Vous pouvez également installer live-build directement sur votre système en exécutant :

# make install et le désinstaller avec :

# make uninstall

35 Documentation de liveUSB v1.2.2-stretch, Version 1.2

36 Chapitre 9. Installation de live-build pour les utilisateurs sans Debian GNU/Linux CHAPITRE 10

Structure de travail et répartition des rôles

37 Documentation de liveUSB v1.2.2-stretch, Version 1.2

38 Chapitre 10. Structure de travail et répartition des rôles