Stworzenie linuxa pod qemu

1

Cześć,
mam za zadanie stowrzyć minimalny kernel i system plików uruchaimiany w ram, ale na dobrą sprawę nawet nie wiem gdzie zacząć żeby to miało ręce i nogi. Niby jakiś kernel mam, ale system plików mnie przesta. Ktoś wskaże jakaś drogę? Coś próbuję zrobić przy pomocy busybox ale bez jakis rezultatów.

1

Wersja "najmniejsza linia oporu":
Kernel + busybox skompilowany statycznie. Montujesz sobie virtual block device i robisz na nim system plików jaki tam potrzebujesz i jaki ma jądro wkompilowane, wrzucasz kernel i busyboxa plus pliki konfiguracyjne jeśli potrzebujesz. Jak chcesz to możesz skompresować wszystko nie licząc kernela do jednego pliku i ustawić jądro by to ładowało jako tzw. "świat". Jeśli opychasz to dalej klientom to musisz im zapewnić dostęp do źródeł tego co wykorzystałeś co jest na copyleft.

1

Myślę, że wszystko czego potrzebujesz znajdziesz w Linux From Scratch: http://www.linuxfromscratch.org/lfs/view/stable/

0

Nie napisałeś na jakiej architekturze to ma działać - ARM/Intel/MIPS/PowerPC lub coś innego? Ze swojej strony polecam buildroot-a - tam możesz sobie w "make menuconfig" wybrać opcje, które są potrzebne. Buildroot potrafi zbudować cross-toolchaina jeśli masz to zrobić na jakąś obcą architekturę. Buildroot może nie generuje minimalnego root fs-a ale można go poobcinać później.

1

Skoro x86 i kernel już masz to zainteresuj się initrd albo initramfs-em. Wrzuć tam okrojony do minimum root fs i tyle. A okrojony rootfs możesz zrobić z jakiejś dystrybucji Linuxa. Okrojony rootfs to np. katalogi /dev /etc /lib i /bin. Do stworzenia rootfs-a dla initramfs możesz użyć mkinitcpio.
Przyda się też polecenie ldd do sprawdzania zależności bibliotek i binarek. A z tym busybox-em to dobrze kombinujesz. Musisz go skompilować jako statyczną binarkę (opcja -static) - zrobić do niej linka o nazwie /init i to wrzucić do rootfs-a.

0

Dobra, zadanie udało mi rozwiązać. Ostatecznie system zmieści się na dyskietce i jeszcze zostanie trochę miejsca. Wszystko udało mi się zamknąć w 1103654 bajtach.

1 użytkowników online, w tym zalogowanych: 0, gości: 1