UML n'est pas inclu dans le noyau 2.4. Il faut commencer par appliquer un patch, puis il suffit de configurer et compiler le noyau en précisant 'ARCH=um
'. Le résultat à utiliser est le fichier "linux".
Exemple avec le noyau 2.4.27 :
/UML/Noyaux
, évitez /usr/src/linux
)/UML/Noyaux/linux-2.4.27
) et appliquez le patch : 'bzcat ~/UML/Noyaux/uml-patch-2.4.27-1.bz2 | patch -p1
'make xconfig ARCH=um
' ('make config ARCH=um
' ou 'make menuconfig ARCH=um
' fonctionnent également). (La configuration par défaut convient, vous pouvez sauver et quitter sans faire de modification.)make linux ARCH=um
'. Un fichier appelé "linux" est alors créé dans le répertoire, c'est le fichier à invoquer pour lancer la machine UML.Note : avec certains noyaux (par exemple le 2.4.24), l'erreur suivante apparait au démarrage de la machine UML : I'm tracing myself and I can't get out
. Pour résoudre ce problème, avant de compiler le noyau, modifiez le fichier arch/um/os-Linux/process.c
:
#include <linux/unistd.h>
à la liste des includevoid os_usr1_process(int pid)
: { syscall(__NR_tkill, pid, SIGUSR1); }
Cliquez ici pour télécharger mon noyau 2.4.24 modifié pour communiquer avec le simulateur Wifi for UML et cliquez ici pour voir sa configuration.