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=armv7­rpi2­linux­gnueabihf­ \ 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 apt­get 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

Podobne dokumenty