No Description

François Gautrais d6220228a5 First Commit 7 years ago
ressources 71863a816f First Commit 7 years ago
LICENSE 71863a816f First Commit 7 years ago
Makefile 71863a816f First Commit 7 years ago
README.md d6220228a5 First Commit 7 years ago

README.md

WindowsEMbbedsLinux: Outil permettant d'avoir des partition GNU/Linux sur une partition de windows (NTFS) et de démarrer Linux depuis une clé USB sans avoir à modifier les partitions du système hôte. Les partitions sont de simples fichiers binaires dans le système hôte. Le système boot sur la clé USB (ou autre) puis cherche sur les différents disques présent une installation via un fichier de configuration 'wemlinux.cfg' à la racine du disque. Ce fichier Json liste les différents systèmes et partitions et est comparable au 'grub.cfg' de Grub.

I - Arborescence Voici l'architecture du dossier: | -

|- Makefile: Gère le "workflow" et l'installation
|- mdisk/: Le point de montage du rootfs (qui contient le programme de recherche et de chargement des noyaux)
|- disk: Le fichier binaire qui représente la clé USB. C'est ce fichier qui est à installer (via la commande dd) sur la clé USB.
|- ressources/:
    |- hda.dir/: Point de montage du disque émulant le disque hôte
    |- hda: Fichier simulant le disque contnant la partition NTFS hôte
    |- boot/
        |- mbr.bin: Master Boot Record (code de démarrage) permettant de rendre la "clé" USB bootable
    |- loader_initrd/: L'initrd du système de boot de la clé, qui doit charger le rootfs
    |- loader_root/: La liste (avec l'arborescence) à modifier par rapport au rootfs original. C'est la qu'intervient la plupart du travail
    |- app/: Dossier des sources de l'executable qui permet la recherche et la sélection des système Linux invités

II - Makefile Il est important de modifier deux variable du Makefile: IMAGE: C'est le rootfs de base à utiliser LINUX: Le noyau pour la clé USB HOSTDATA: Les donnes contenu sur la parition hôte (pour la simulation) INSTALLDISK: Le peripherique (disque) ou installer le fichier (ex /dev/sdb), disque sera entierement formaté

III - Développement Pour pouvoir développer sur PC, il peut être intéressant de creer une image disque simulant le disque hôte. Pour cela, il faut configurer le makefile, puis lancer la commande $ make inithostdisk

Ensuite utilisez une des commandes suivantes pour lancer le work flow: $ make exec # pour lancer qemu ou $ make fill # pour preparer la cle usb

Une fois testé, la clé usb simulé est monté dans DIR (par defaut mdisk/). Pour relancer le workflow vous devez lancer: $ make clean pour fermer la partition et le disque

Vous pouvez modifier la partition hôte en lançant: $ make hda La partition sera monté dans HOSTDISK_MP (par défaut ressources/hda.dir) Une fois les modifications apportées, il faut lancer pour cloturer et synchroniser le disque: $ make cleanhda

IV - Installation Branchez votre périphérique, veillez a ce que la variable du Makefile INSTALLDISK corresponde bien au périphérique, puis lancez: $ make install