L’Internet des Objets

L’Internet des Objets

13.4 Installation alternative

Page précédente Page suivante

Un des problèmes de la méthode officielle, c’est qu’il faut passer par une modification du système, soit en modifiant le système de fichiers, soit en utilisant un clavier et un écran au début de la vie du système.

Il existe d’autres méthodes qui peuvent fonctionner pendant un certain temps avant que le gestionnaire ne se décourage et que les modifications matérielles rendent caduques la méthode.

https://connect-ed-diamond-com.lama.univ-amu.fr/GNU-Linux-Magazine/GLMF-212/Personnalisez-et-distribuez-vos-images-Raspbian

13.4.1 pi-gen

L’outil utilisé actuellement pour générer les images pour le Rasberry PI est pigen.

Pour le récupérer, il faut utiliser git :

git clone https://github.com/RPi-Distro/pi-gen.git

La documentation indique une liste de logiciels à installer.

apt install coreutils quilt parted qemu-user-static \
   debootstrap zerofree zip dosfstools bsdtar libcap2-bin \
   grep rsync xz-utils file git curl bc

Pour tester, il est possible de lancer la création de l’image. Au bout d’un certain temps, il est possible de récupérer l’image produite. L’ensemble utilise environ 50Go. Le log est disponible dans le fichier work/.../build.log. Il faut préciser le nom choisi pour la distribution, éventuellement sur la ligne de commande :

IMG_NAME=afbian ./build.sh

Les logs sont horodatés, donc on peut voir que la compilation a duré 2H30 environ.

[14:55:36] Begin /home/arno/pi-gen
...
[17:18:14] End /home/arno/pi-gen

Les images sont :

7G

2020-11-12-afbian-full.img

3.1G

2020-11-12-afbian.img

1.3G

2020-11-12-afbian-lite.img

Le gros intérêt consiste à générer des systèmes adapté à l’usage souhaité. Pour commencer, il faut créer un fichier config

13.4.2 Fichiers et explications

Pour installer, il faut installer les paquets suivants :

apt install coreutils quilt parted qemu-user-static debootstrap zerofree zip \
dosfstools bsdtar libcap2-bin grep rsync xz-utils file git curl

13.4.2.1 Le fichier depends

Le fichier depends liste les paquets à installer, le format est le nom du programme, deux-points, le nom du paquet debian.

quilt
parted
realpath:coreutils
qemu-arm-static:qemu-user-static
debootstrap
zerofree
zip
mkdosfs:dosfstools
capsh:libcap2-bin
bsdtar
grep
rsync
xz:xz-utils
curl
xxd
file
git
lsmod:kmod

Va savoir pourquoi, mais les paquets doivent exister sur le système hôte... Il faut aussi avoir récupéré les fichiers par git

13.4.2.2 Le fichier config

ce fichier sera sourcé par le progamme de lancement, il contient les définitions suivantes :

IMG_NAME

peut être raspbian, mais peut être adaptée ;

DEPLOY_ZIP

créé des ZIP (1) ou pas (0)

USE_QEMU

Créé une image adapté pour qemu (1)

FIRST_USER_NAME

(Default : ”pi” )

Username for the first user

FIRST_USER_PASS

(Default : ”raspberry”) Password for the first user

WiFi

WPA_ESSID, WPA_PASSWORD and WPA_COUNTRY (Default : unset) If these are set, they are use to configure wpa_supplicant.conf, so that the raspberry pi can automatically connect to a wifi network on first boot.

ssh

ENABLE_SSH (Default : 0)

Setting to 1 will enable ssh server for remote log in. Note that if you are using a common password such as the defaults there is a high risk of attackers taking over you RaspberryPi.

Étapes

STAGE_LIST (Default : stage*)

If set, then instead of working through the numeric stages in order, this list will be followed. For example setting to stage0 stage1 mystage stage2 will run the contents of mystage before stage2. An absolute or relative path can be given for stages outside the pi-gen directory.

IMG_NAME=Afbian
FIRST_USER_NAME=arno
FIRST_USER_PASS=pwd
ENABLE_SSH=1
DEPLOY_ZIP=0
USE_QEMU=1
STAGE_LIST="stage0 stage1 stage2"
KEYBOARD_LAYOUT=fr
WPA_ESSID=ssid
WPA_PASSWORD=motdepasse
LOCALE_DEFAULT=fr_FR.UTF-8
TIMEZONE_DEFAULT=Europe/Paris

Les variables :

ROOTFS_DIR
LOCALE_DEFAULT
APT_PROXY
KEYBOARD_KEYMAP
KEYBOARD_LAYOUT
WPA_ESSID
WPA_PASSWORD
TIMEZONE_DEFAULT

13.4.3 La création

Les étapes sont :

stage0

bootstrap

stage1

système le plus minimaliste

stage2

système lite

stage3

desktop

stage4

Système complet (plein de logiciels)

stage5

Encore plus.

13.4.3.1 Bootstrap

Définition de :

  • 1. sources de paquets (apt) ;

  • 2. locales adapter en français ;

    locales locales/locales_to_be_generated multiselect      fr_FR.UTF-8 UTF-8
    # Default locale for the system environment:
    # Choices: None, C.UTF-8, en_GB.UTF-8
    locales locales/default_environment_locale      select   fr_FR.UTF-8
    
  • 3. les paquets de firmware RPi.

13.4.3.2 système minimal
  • 1. 00-boot-files

    • contient les fichiers cmdline.txt et config.txt

  • 2. 01-sys-tweaks

    • change le bashrc

  • 3. 02-net-tweaks

    • contient le hostname (deux fichiers) ;

  • 4. 03-install-packages

    • les paquets dédiés RPi

13.4.3.3 Système léger
  • 1. copies-and-fills

  • 2. sys-tweaks

    • retaille le système de fichiers

    • le fichier rc.local

    • debconf pour le clavier

    • modifie cmdline

  • 3. net-tweaks

    • paquets réseaux

    • réglage de wpasupplicant si besoin

    • ajout dhcpcd

  • 4. accept-mathematica-eula

  • 5. set-timezone

    • remplacer londres par paris

Page précédente Page suivante