ELKS Logo ELKS FAQ - FranÇais Baby Linux Logo

| Website History | Download | FAQ | History | Introduction | Mailing Lists | News | Releases | Home |


Le document présent est destiné à répondre aux questions les plus fréquentes concernant l'ELKS (Embeddable Linux Kernel Subset), aussi appelé Linux-8086. Ce nouveau noyau est en effet destiné à tourner sur les plus petits PC fonctionnels existants, les XT (principalement 8086 et 8088).

Cette FAQ (Foire Aux Questions), maintenue par Arnaud Launay, est basée sur la FAQ d'Al Riddoch, elle-même dérivée de la FAQ originale de Brian Candler. La dernière version de la Faq originale (en anglais) est accessible sur http://www.ecs.soton.ac.uk/elks.

Des informations complémentaires peuvent être trouvées sur l'ELKS Home Page.

Il existe par ailleurs une liste de diffusion en Anglais. Pour s'y abonner, envoyez un message (sans sujet et sans signature) à majordomo@vger.kernel.org, contenant dans le corps les mots subscribe linux-8086. Les archives de cette liste peuvent être trouvées sur http://lemur.ecs.soton.ac.uk/~threader/LEMUR_lists.cgi.

Pour se désabonner de la liste et ne plus recevoir les nombreux messages des usagers, envoyez un message (sans sujet et sans signature) à majordomo@vger.kernel.org, contenant dans le corps les mots unsubscribe linux-8086.

ELKS n'est pas Linux, et la liste de diffusion, malgré son nom, n'est pas le bon endroit pour poser des questions sur Linux. Voyez plutôt des groupes de discussion comme comp.os.linux.answers ou fr.comp.os.linux.


Section 1 - Général

Section 2 - Compilation et Installation

Section 3 - Utiliser ELKS


Q1.1. Qu'est ce que l'ELKS ?

L'ELKS est le Embeddable Linux Kernel Subset, un projet de construction d'un petit noyau correspondant à Linux (qui aura plus ou moins les fonctionnalités d'UNIX V7 dans le noyau) qui peut tourner sur des machines dont les ressources processeur et mémoire sont limitées. Les cibles initiales sont les Intel 8086 et éventuellement les 286 en mode 16 bits protégé. Un noyau pouvant tourner sur ce type de machine peut être utile pour les systèmes intégrés, pour le déploiement informatique du Tiers-Monde où les machines 80x86 x>0 ne sont pas facilement disponibles, et pour l'utilisation sur divers portables.

Plus d'informations sur l'arrière-plan, les buts et le status actuel du projet peuvent être trouvés sur l'ELKS Home Page.

Q1.2. Comment l'ELKS peut-il être comparé au Linux Standard ?

ELKS est développé comme un noyau de substitution au vrai Linux, et doit être suffisamment petit pour être compris par une seule personne, pour ainsi devenir un inévaluable moyen d'apprentissage. Il en est pour l'instant aux premiers stades de développement, et de gros morceaux sont manquants, comme:

Ceci étant dit, le système peut déjà être lancé, donne des consoles virtuelles, monter un lecteur de disquette en système de fichiers minix, et permet de lancer un petit programme; les derniers développements permettent le lancement de sash, un petit shell.

Q1.3. Existe-t-il une version "prête à l'emploi" (ready-to-run) de l'ELKS ?

Pas pour le moment. Vous devrez utiliser une machine Linux standard, charger les sources, et cross-compiler pour générer le code 8086. Les images disques boot et root sont fournies avec la version actuelle de l'ELKS, mais elles sont uniquement prévues comme plateformes de tests pour le système, et leur utilisation est assez limitée. Cependant, il devrait probablement y avoir une distribution d'une sorte ou d'une autre dans quelques mois.

Michael Strates prépare actuellement la distribution Bluebell, mais rien n'est encore fait. Si vous désirez rejoindre l'équipe de développement, contactez-le: le recrutement est en cours.

Q1.4. ELKS peut-il tourner sur un 8088 ?

Le 8088 est identique au 8086, sauf qu'il a un bus de données externe en 8 bits, au lieu de 16 bits; il est donc plus lent. Ainsi, oui, l'ELKS peut tourner sur un 8088.


Section 2 - Compilation et Installation

Q2.1. Où puis-je trouver les sources ?

L'environnement de développement Dev86 se trouve sur la page de Robert de Bath.

Le site de base du développement se trouve sur ftp://linux.mit.edu/pub/ELKS/. Les autres sites où l'ELKS et Dev86 peuvent être trouvés sont:

Si vous connaissez d'autres sites, ou désirez en créer un, contactez le responsable : Alistair J. Riddoch.

Vous pouvez également récupérer les dernières sources de l'ELKS en utilisant cvs par la procédure suivante:

	export CVSROOT=:pserver:anonymous@elks.sf.net:/cvsroot/elks
	cvs login
	cvs -z9 get elks
	cvs -z9 get elkscmd
	cvs -z9 get elksnet

Lorsque cvs vous demandera votre mot de passe, tapez simplement ENTREE.

Q2.2. Comment créer un noyau ELKS ?

Chargez dev86/Dev86src-0.14.8.tar.gz et elks/elks-0.0.88.tar.gz (ou les dernières versions) de linux.mit, ou l'un des autres sites. Décompressez les, par exemple, dans /usr/src :

	tar -xvzf Dev86src-0.14.8.tar.gz -C /usr/src
	tar -xvzf elks-0.0.79.tar.gz -C /usr/src

L'environnement de développement sera décompressé dans /usr/src/linux-86, et les sources du noyau dans /usr/src/elks. Vous devrez ensuite compiler les outils de développement, incluant le compilateur spécifique bcc :

	cd /usr/src/linux-86
	make

Ceci fait, attaquez vous à la compilation du noyau:

	cd /usr/src/elks
	make dep
	make config
	make

(Si vous êtes habitués à compiler des noyaux Linux par gcc, vous serez amusés par la rapidité à laquelle celle-ci se fait !) Le résultat en est une image nommée Image, que vous pouvez copier sur une disquette formatée, ce qui vous permettra de lancer le noyau:

	dd if=Image of=/dev/fd0

ou bien

	make disk

Vous devriez maintenant pouvoir lancer le système par la disquette, mais vous n'obtiendrez pas beaucoup plus sans disquette root à mounter. Pour celà, vous avez sur le site ftp de l'elks un fichier nommé images.zip; il contient un noyau (boot), une disquette principale (root) et une disquette 720k complète (comb) permettant de booter avec une seule disquette.

Vous pouvez également créer votre propre disquette principale; ceci sera développé en question 2.5.

Q2.3. J'obtiens une erreur m'affirmant que /usr/include/linux/vm86.h n'existe pas ?

Editez /usr/include/sys/vm86.h et remplacez #include <linux/vm86.h> par #include <asm/vm86.h>

Q2.4. Comment créer un 'init' pour ELKS ?

Une fois le noyau ELKS booté, il lance /bin/init. Les sources d'un init pour l'ELKS peuvent être trouvées dans le paquetage elkscmd.

A partir du noyau 0.0.56, sash fonctionne et est utilisé comme /bin/sh par la plupart des gens. Il peut être trouvé dans le paquetage elkscmd.

Pour de meilleurs résultats, copiez /etc/passwd et /etc/group d'une distribution Linux standard sur la disquette root; ainsi, ls -l fonctionnera proprement, et /usr/lib/liberror.txt pour que sash puisse reporter les erreurs.

Q2.5. Comment créer un 'root filesystem disk' ?

Vous devrez créer une disquette minix contenant les fichiers et octets appropriés. Pour l'instant, 2 fichiers seulement sont nécessaires - /dev/tty (4,0) et /bin/init, qui lancera le getty, qui a son tour lancera un shell. Vous pourrez egalement trouver les commandes classiques - mount, cp, cat, rm, ... Mais n'attendez pas beaucoup plus de l'elks pour l'instant... Il y a beaucoup de travail à faire.

Note: /dev/tty est différent de celui que le Linux normal utilise (5,0).

Alternativement, si vous avez un noyau >= 2.0.x et mount >= 2.5k, vous pouvez utiliser le système de fichiers loopback pour créer une image disque sur votre disque dur, et ensuite la basculer sur la disquette.

	dd if=/dev/zero of=root.image bs=1k count=80
	mkfs -t minix root.image
	mount -o loop root.image -t minix /mnt	# /mnt est le mount point
	...
	umount /disk
	dd if=root.image of=/dev/fd0

Surtout ne pas compresser l'image de la disquette root ! cette fonction n'est pas encore implémentée dans l'elks.

Q2.6. Que faire si mon XT a un lecteur 360k ?

>Préparer les images boot et root devant tourner sur une autre machine requiert un peu d'attention, spécialement si la machine a un lecteur 360k. Les lecteurs 5'1/4 360k comportent des têtes à 40 tracks, alors que les lecteur 1,2 Mo ont 80 tracks. Ainsi, un lecteur 1,2 Mo peut lire des disquettes 360k mais pas forcément les écrire, car le lecteur 1,2Mo écrira des tracks de taille moitié moindre que celle attendue par le lecteur 360ko.

Une solution peut être de placer le lecteur 360ko comme 2nd lecteur de votre PC - ce qui vous permettra de formater les disquettes 360ko avec fdformat /dev/fd1d360 et créer un système tel celui décrit ci-dessus.

Une autre solution consiste à créer une image de la disquette, puis à la transférer sur le PC contenant le lecteur 360ko (avec un câble série), et utiliser ensuite "rawrite" pour construire la disquette à partir de l'image.

Q2.7. Le programme rawrite

Rawrite est un programme permettant d'écrire une image sur une disquette. Il permet de transcrire les images du noyau ELKS et de sa root image associée sur 2 disquettes 360ko. Programmes nécessaires:


Section 3 - Utiliser ELKS

Q3.1. Puis-je utiliser des binaires bcc sous Linux ?

Oui - en chargeant un module dans le noyau vous pourrez directement exécuter des binaires ELKS. Celà rend le développement de programmes destinés à tourner sous ELKS bien moins pénible, puisque vous pouvez directement les tester sur un système Linux normal (avec cependant comme réserve le fait qu'ils peuvent ne pas fonctionner sous ELKS, si le programme utilise des implants du noyau qui n'existeraient pas encore dans ELKS).

	cd /usr/src/linux-86/elksemu
	make module
	insmod binfmt_elks.o

A noter, vous devrez relancer 'insmod' à chaque lancement.
Si, lors de la compilation du module, vous obtenez une erreur indiquant "modversions.h: no such file or directory", alors vous devrez éditer le Makefile pour retirer la référence à ce fichier, c'est-à-dire:

	MODCFLAGS=-D__KERNEL__ -Wall -Wstrict-prototypes -O2 \
		-fomit-frame-pointer -fno-strength-reduce -pipe \
		-m486 -DCPU=486 -DMODULE -DMODVERSIONS

Q3.2. Puis-je booter l'ELKS sous DOSEMU ?

Oui. ELKS peut se lancer avec dosemu > 0.63 et linux ^gt; 2.0.7. Vérifiez que votre lecteur de disquette est configuré correctement dans /etc/dosemu.conf, et utilisez l'option -A pour forcer le lancement sur la disquette.


This document is released under the terms of the GNU General Public Licence, version 2 only.