Dzieki uprzejmosci poprzedniej grupy z prezentacji o wirtualizacji i własnym badaniom prezenujemy opis kompilacji jadra 2.6.17.13 pod uml (testowany pod Ubuntu 7.10). Najpierw bieżemy czyste jadro ze strony kernel.org a później: można nałożyć następujące łatki: http://marc.info/?l=user-mode-linux-devel&m=118521982227031&q=raw http://lkml.org/lkml/diff/2006/8/27/176/1 http://user-mode-linux.sourceforge.net/old/work/current/2.6/2.6.17/patches/jmpbuf zasdniczo wystarczy tylko wykonać zmiany w plikach tls.c registers.c process.c wg tych patchy, a w pliku aio.c usunąc wpis o .aio_reserved3 . potem w pliku arch/um/sys-i386/useroffests.c zamieniamy #include na #include w katalogu arch/um/include kopiujemy plik threads.h z inlude/linux , wykomentujemy w naszej kopii linijkę #include config.h w katalogu arch/um/include wykonać "ln -s . linux" i powinno działać A to orginalna wiadomość od Alka (ich prezentacja działała na studentsie): Zasadniczo nałożyłem te trzy patche: http://marc.info/?l=user-mode-linux-devel&m=118521982227031&q=raw http://lkml.org/lkml/diff/2006/8/27/176/1 http://user-mode-linux.sourceforge.net/old/work/current/2.6/2.6.17/patches/jmpbuf Ponadto trzeba było wprowadzić kilka drobnych zmian umożliwiających kompilację, m.in. pamiętam że gdzieś trzeba było zmienić linux/stddef.h na stddef.h, i były jakieś problemy z plikami nagłówkowymi, które były szukane w innych katalogach, niż były. Z tymi plikami nagłówkowymi radziłem sobie tak: gdy wychodził błąd o braku pliku np. autoconf.h, to tworzyłem plik arch/um/include/linux/autoconf.h o treści #include "../../../../include/linux/autoconf.h". Gdy kompilowałem jądro na students, to napotkałem także pod sam koniec (przy linkowaniu) na błąd w GCC. Pomagało podanie opcji -static-libgcc dla linkera. U mnie w domu (Ubuntu 7.10) problem ten nie wysatąpił.