22/08/2020

 Linux underground

Créer une clé USB bootable FreeDOS

Les paquets nécessaires

L'amorçage (boot) de FreeDOS va être confié à syslinux 6.00+.

Installez le paquet syslinux de votre distribution. Si vous devez reformater votre clé USB, installez aussi le paquet dosfstools.

Formatage de la clé USB

Reformatez la clé USB n'est probablement pas nécessaire. J'explique la procédure ici pour information. Je prends l'hypothèse que la clé USB se trouve sur /dev/sdb.

Pour un formatage en FAT32 :
# mkfs.vfat -F 32 /dev/sdb1

Le MBR et l'amorçage syslinux

Copiez le MBR sur le 1er secteur de la clé USB :
# dd if=/usr/share/syslinux/mbr.bin of=/dev/sdb

Copiez les fichiers d'amorçage de syslinux :
# syslinux /dev/sdb1

Montez votre clé USB et copiez-y les modules syslinux suivant (par défaut, Gentoo installe tout dans /usr/share/syslinux):
# mount /dev/sdb1 /mnt/usb
# mkdir /mnt/usb/efi32
# cp /usr/share/syslinux/chain.c32 /mnt/usb/
# cp /usr/share/syslinux/libcom32.c32 /mnt/usb/
# cp /usr/share/syslinux/libutil.c32 /mnt/usb/
# cp /usr/share/syslinux/efi32/ldlinux.e32 /mnt/usb/
# cp /usr/share/syslinux/efi32/chain.c32 /mnt/usb/efi32/
# cp /usr/share/syslinux/efi32/libcom32.c32 /mnt/usb/efi32/
# cp /usr/share/syslinux/efi32/libutil.c32 /mnt/usb/efi32/

Copiez-y le menu de démarrage :
# wget -P /mnt/usb https://www.linuxunderground.be/freedos/syslinux.cfg

Remarques :

Installation minimale de FreeDOS

Récupérez le dernier kernel FreeDOS

Je télécharge le kernel recommandé (version 2042 au 10/07/2018) :

# mkdir /mnt/usb/FDOS
# wget http://www.fdos.org/kernel/release/LATEST/ke86f32.zip
# unzip -j -d /mnt/usb/FDOS ke86f32.zip bin/KERNEL.SYS
# unzip -j -d /mnt/usb/FDOS ke86f32.zip bin/country.sys

Récupérez le fichier COMMAND.COM de FreeDOS

# wget https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.2/repos/base/command.zip
# unzip -j -d /mnt/usb/FDOS command.zip BIN/COMMAND.COM


Arrivé ici, on a déjà une clé USB bootable. Si vous ne voulez pas lire la suite, souvenez-vous que le fichier COMMAND.COM se trouve dans le répertoire \FDOS\ ;-) C'est un choix personnel : je trouve cela plus propre!

Construisez une distribution FreeDOS minimale

Pour améliorer les choses, j'ajoute le clavier belge et la gestion de la "mémoire haute".

# wget https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.2/repos/base/jemm.zip
# wget https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.2/repos/base/mem.zip
# wget https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.2/repos/base/keyb.zip
# wget https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.2/repos/base/keyb_lay.zip
# wget https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.2/repos/base/edit.zip
# mkdir /mnt/usb/FDOS
# unzip -j -d /mnt/usb/FDOS jemm.zip BIN/JEMMEX.EXE
# unzip -j -d /mnt/usb/FDOS mem.zip BIN/MEM.EXE
# unzip -j -d /mnt/usb/FDOS keyb.zip BIN/KEYB.EXE
# unzip -j -d /mnt/usb/FDOS keyb_lay.zip BIN/KEYBOARD.SYS
# unzip -j -d /mnt/usb/FDOS edit.zip BIN/EDIT*

Activez le tout via :
# wget -P /mnt/usb https://www.linuxunderground.be/freedos/config.sys
# wget -P /mnt/usb https://www.linuxunderground.be/freedos/autoexec.bat

Partition bootable

Normalement, la 1ère partition de votre clé USB devrait déjà être marquée comme "bootable". Dans le cas contraire, lancez :
# fdisk /dev/sdb
Sélectionnez a, l, w. ATTENTION : vérifiez bien que ce sont les bonnes options avant de lancez ces options.

Action…

Malgré l'existence de VICE (qui est libre lui), j'aime toujours utiliser C64S pour sa gestion du clavier très pointue, notamment lorsqu'il remplace le joystique.

Est-ce que C64S réagit mieux avec le pilote de clavier FreeDOS complet ou avec pilote de clavier FreeDOS minimal ?
Pour le moment, c'est le 1er qui me semble le plus stable. A confirmer cependant.
J'ai du son via le haut-parleur du PC (avec C64S).

Conclusion

Si vous n'êtes pas embêté par le boot UEFI de votre PC, c'est, pour moi, la meilleure façon de faire tourner FreeDos. Sinon, il existe d'autres solutions comme DosEmu ou qemu, mais ces solutions sont moins convainquantes.

Documents sur le sujet

Configurer votre CONFIG.SYS.
Configurer votre AUTOEXEC.BAT.
Explication des codepages DOS (858 = 850 + symbole EURO).
Quels fichiers syslinux a besoin?
Une autre manière de faire la même chose, sans syslinux, mais cela demande d'avoir un DOSEMU installé et configuré : https://wiki.gentoo.org/wiki/Bootable_DOS_USB_stick.


Contact