Script servant à générer une image pour systèmes à base de processeurs arm

Script making an image for arm based systems

Jybz 4c91542775 Fixed extlinux for BananaPro, add initrd for root=UUID. 2 years ago
common 6bd9625562 sync 2 years ago
init.d 17cb092b9a debug 3 years ago
log 4c91542775 Fixed extlinux for BananaPro, add initrd for root=UUID. 2 years ago
platforms 4c91542775 Fixed extlinux for BananaPro, add initrd for root=UUID. 2 years ago
tools a18c6bb409 sync7 2 years ago
.gitignore 4c91542775 Fixed extlinux for BananaPro, add initrd for root=UUID. 2 years ago
LICENSE 726f7510d0 Initial commit 4 years ago
README.md 4c91542775 Fixed extlinux for BananaPro, add initrd for root=UUID. 2 years ago
create_arm_img_urpmi.sh 4c91542775 Fixed extlinux for BananaPro, add initrd for root=UUID. 2 years ago
mageia4arm.cfg.template b4e21eca05 Merge branch 'master' of https://git.labolyon.fr/DTux/mageia4arm 3 years ago
mageia4arm.kdev4 074e6a5e03 renamed raspi dir by rpi 4 years ago

README.md

mageia4arm

Short :

Français

Description :

Outils servant à générer une image Mageia pour systèmes à base de processeurs arm

Démarrage rapide :

Avoir une copie de ce dépot :

git clone https://git.labolyon.fr/DTux/mageia4arm

Choisissez le dossier de configuration adapté à votre besoin (rpi ou xu4), sinon créez un nouveau dossier de configuration, copiez le fichier "mageia4arm.cfg.template" à l'interieur et modifiez le selon vos besoins.
Par défaut l'utilisateur est "pi" avec le mot de passe "raspberry", et l'administrateur "root" avec le mot de passe "piroot".

Créer l'image :

create_arm_img_urpmi.sh --all --config <dossier de configuration>
Par exemple :

su -  
<mot de passe root>  
cd /home/user/workspace/mageia4arm/  
./create_arm_img_urpmi.sh --all --target bananaPro --size 4 --tainted --nonfree --build-path ./build --config bananaPro 2>&1 | tee -a ./build.log

Avec cette commande, toutes les étapes (--all) du processus de création pour (--target) la bananaPro sont exécuter. L'image final tiendra sur une carte de (--size) 4Go. Les dépots tainted et nonfree seront activé. Le chemin de construction (--build-path) sera ./build. Finalement, la configuration (--config) sera bananaPro. La suite de la commande, 2>&1 redirige la sortie d'erreur dans la sortie standart et le tout est dupliqué (| tee -a) dans le fichier build.log pour le déboguage.

Aide :

create_arm_img_urpmi.sh -h|--help

Vous pouvez adapter le script "second_stage_install.sh" afin de compléter l'installation.
Des scripts sont disponibles dans le dossier "tools", ils sont copié dans /usr/local/bin/ dans l'image.

Premier lancement de l'image sur le raspberry pi :

  • lancer drakkeyboard afin de configurer le clavier
  • si vous avez besoin d'un gestionnaire graphique, lancer le script :
    install_graphical.sh <gestionnaire-graphique>( xfce, lxqt, plasma, ...) voir les métapaquetages disponibles dans "Environnement graphique" dans le gestionnaire de logiciels.

Ajouter une nouvelle plateforme :

Pour ajouter une nouvelle plateforme, il faut le dossier au nom du matériel dans le dossier platforms contenant le fichier mageia4arm.cfg comprennant les informations relatif à la distribution Mageia, le fichier second_stage_install.sh qui vient installer le système, le fichier specialFunctions.sh qui implémentes les fonctions pour affiner l'installation à la plateforme et extlinux.conf.

mageia4arm.cfg

Un modèle est présent à la source de ce projet. Il contient les variables nécessaire à l'installation de Mageia, comme la version, l'architecture, le mirroir, les mots de passes etc.

second_stage_install.sh

Ce script est lancé avec chroot, ainsi nous pouvons exécuter des opérations personnalisées comme l'installation de paquets non présents des dépots de Mageia. Ce script vient aussi définir les groupes de fichiers.

specialFunctions.sh

Ce script complémente le processus d'installation pour des éléments spécifiques à la plateformes, comme le partitionnement, la manière de mettre en place le chargeur de démarrage, le téléchargements de fichiers externe, etc.
Le script doit implémenter ces quatres fonctions :

function preImgCreation() { 
    #Possibilité de télécharger des éléments supplémentaires ici.  
    return 0  
}  
function postPrepareChroot() {  
    #Possibilité de copier des fichiers spécifique à la plateforme avant de lancer le script second_stage_install.sh.  
    return 0  
}  
function burningBootloader() {  
    #Plusieurs méthodes sont possibles pour flasher le chargeur de démarrage, et dépendent de la plateforme.  
    return 0  
}  
function copyingCustomSystem() {  
    #Possibilité de copier des fichiers dans le système monté.  
    return 0  
}  

Si l'une de ces fonctions ne retourne pas 0, la création de l'image échoue.

extlinux.conf

Extlinux.conf est un script utilisé par le chargeur de démarrage (s'il est capable de le gérer, uboot le peut), pour spécifier la version du noyau à démarrer. Le script est normalement généré automatiquement par les outils de Mageia à chaque installation/mise à jour d'un noyau. Malheureusement, lors de la création d'une image de Mageia en chroot, l'outil refuse de générer ce fichier, de plus si le fichier est manquant, lors de la mise à jour du noyau, l'outil de Mageia génère un fichier erroné avec des entrées vides que u-boot refuse.
Il vaut mieux créer ce fichier, même s'il n'est pas primordiale. D'autant plus que lors de la mise à jour d'un noyau, l'outil de Mageia reprends les arguments de la commande de démarrage pour les nouvelles versions.

La structure basique du fichier est :

default linux
timeout 20
menu title Welcome to Mageia-Minimal.

label linux
  kernel /boot/vmlinuz
  fdtdir /usr/lib/<FDTDIR>
  append root=UUID=<UUID> <BOOT_ARGS>

Les balises :