Tworzenie minimalistycznego systemu z zastosowaniem Busyboksa
Transkrypt
Tworzenie minimalistycznego systemu z zastosowaniem Busyboksa
Tworzenie minimalistycznego systemu z zastosowaniem Busyboksa Cel i zakres ćwiczenia: Celem ćwiczenia jest stworzenie minimalistycznego systemu, bazującego na jądrze linuksa i systemie bazowym stworzonym z zastosowaniem Busyboksa, dla platformy wbudowanej raspberry pi v.2 Sposób wykonania ćwiczenia: 1. W katalogu domowym utwórz katalog target, przejdź do tego katalogu i utwórz dwa dodatkowe katalogi boot i system. 2. W katalogu ~/target/system utwórz podstawowe drzewo katalogów mkdir dev dev/pts etc etc/init.d proc sys root 3. Utwórz podstawowe urządzenia plikowe niezbędne przy starcie systemu sudo mknod dev/console c 5 1 sudo mknod dev/null c 1 3 4. Utwórz plik konfiguracyjny dla programu init, który znajduje się w pliku etc/inittab (np. za pomocą edytora tekstowego nano, bądź innego edytora zainstalowanego w systemie) null:: sysinit:/etc/init.d/rcS ttyAMA0::askfirst:/sbin/getty 115200 ttyAMA0 tty1::askfirst:/sbin/getty 38400 tty1 5. Utwórz skrypt startowy etc/init.d/rcS: #!bin/ash /bin/mount –t proc proc /proc /bin/mount –t sysfs sys /sys /bin/mount –t devpts devpts /dev/pts echo ”sswb” > /proc/sys/kernel/hostname echo /sbin/mdev > /proc/sys/kernel/hotplug /bin/ip link set lo up /sbin/mdev s 6. Utwórz użytkownika (tylko konto administratora – root), w tym celu do pliku etc/passwd wpisz: root:x:0:0:root:/:/bin/ash 7. Wygeneruj hasło poleceniem: echo haslo | openssl passwd 1 stdin 8. Wstaw je do pliku etc/shadow root:_tu_nasze_haslo:16000:0:999999:7::: 9. Przejdź do katalogu ~/tinyOS/busybox, w którym znajduje się skompilowany statycznie program busybox. Przegraj zawartość katalogu do katalogu docelowego ~/target/system cp R * ~/target/system 10. Przejdź do katalogu, w którym znajduje się skompilowane na zeszłych zajęciach jądro i przegraj je oraz urządzenia Device Tree do katalogu ~/target/boot ./scripts/mkknlimg arch/arm/boot/zImage \ ~/target/boot/kernel.img cp arch/arm/boot/dts/*.dtb ~/target/boot/ cp arch/arm/boot/dts/overlays/*.dtb* \ ~/target/boot/overlays/ 11. Zainstaluj skompilowane na zeszłych zajęciach moduły do katalogu ~/target/system: make ARCH=arm CROSS_COMPILE=armv7rpi2linuxgnueabihf \ INSTALL_MOD_PATH=~/target/system modules_install 11. Przejdź do katalogu ~/tinyOS/firmware/ (w katalogu tym znajdują się pliki związane z poszczególnymi krokami bootowania raspberry pi) i skopiuj jego zawartość do katalogu ~target/boot: cp R * ~/target/boot/ 12. Przygotuj kartę pamięci, z której będzie się uruchamiał systemach. W tym celu skorzystaj z programu gparted (można też z konsolowego fdisk-a, ale gparted jest dużo przyjaźniejszy). Jeżeli nie jest on zainstalowany w systemie to go zainstaluj komendą: sudo aptget install gparted i uruchom sudo gparted Na karcie utwórz dwie partycje: pierwszą 50 MB bootowalną w systemie fat16 i drugą na pozostałej części karty w systemie ext4. 13. Przegraj zawartość katalogu ~/target/boot/ na pierwszą partycję i zawartość katalogu ~/target/system/ na drugą partycję. 14. Odmontuj kartę pamięci, umieść ją w slocie raspberry pi i uruchom system :) Opracowanie sprawozdania Przygotowane sprawozdanie z zajęć powinno zawierać opis przebiegu ćwiczenia laboratoryjnego w tym: - analizę funkcji wykorzystywanych na ćwiczeniach programów, - analizę poszczególnych kroków tworzenia systemu, - dodatkowy opis kilku wybranych (np. sieciowych) narzędzi busyboksa, - wnioski i spostrzeżenia związane z przeprowadzonym ćwiczeniem. Sprawozdanie powinno też zawierać wnioski dotyczące realizacji poszczególnych punktów ćwiczenia laboratoryjnego. Wymagania BHP W trakcie realizacji programu ćwiczenia należy przestrzegać zasad omówionych we wstępie do ćwiczeń, zawartych w: „Regulaminie porządkowym w laboratorium” oraz w „Instrukcji obsługi urządzeń elektronicznych znajdujących się w laboratorium z uwzględnieniem przepisów BHP”. Regulamin i instrukcja są dostępne w pomieszczeniu laboratoryjnym w widocznym miejscu. Literatura 1. Bis M.: „Linux w systemach embedded”, Wydawnictwo BTC, Warszawa, 2011 2. Love R.: „Jądro Linuksa : przewodnik programisty”, Helion, Gliwice, 2014. 3. http://elinux.org/RPiconfig