Kernel HOWTO pl 9 (2)


Opis jądra Linux-a, jego instalacji itp.: Moduły. Następna strona Poprzednia strona Spis treści 9. Moduły. Ładowalne moduły jądra mogą zaoszczędzić trochę pamięci i ułatwić konfigurację. Obszar działania modułów urósł już do tego, że zawierają one systemy plików, sterowniki do kart Ethernet, do taśm, do drukarek i wiele innych. 9.1 Instalacja narzędzi modułowych. Narzędzia te sa dostępne stamtąd, skąd masz źródła jądra. Nazywają się modutils-x.y.z.tar.gz; wybierz najwyższą wersję równą, albo mniejszą od wersji twojego jądra. Rozpakuj poleceniem tar zxvf modutils-x.y.z. Wejdź do stworzonego katalogu i poczytaj plik README. Wypełnij dokładnie instrukcje na temat instalacji (jest ona z reguły bardzo prosta: make install lub coś podobnego). Powinieneś mieć teraz programy: insmod, rmmod, ksyms, lsmod, genksyms, modprobe i depmod w katalogu /sbin. Jeśli chcesz przetestować narzędzia z przykładowym sterownikiem "hw" w insmod; przejrzyj plik INSTALL w tym katalogu. insmod ładuje moduł do uruchomionego jądra. Moduły mają z reguły roszerzenie .o; przykładowy moduł wspomniany wyżej nazywa się drv_hello.o, a więc aby go załadować, napisz: insmod drv_hello.o. Aby zobaczyć jakie moduły są aktualnie używane przez jądro użyj lsmod. Powinien wyświetlić coś takiego blah# lsmod Module: #pages: Usedby: drv_hello 1 drv_hello jest nazwą modułu, używa jednej strony (4kB) pamięci i żadne inne moduły nie zależą od niego w tej chwili. Aby usunąć ten moduł z jądra użyj rmmod drv_hello. Zauważ, że rmmod chce nazwy modułu a nie pliku. Weź ją z polecenia lsmod. Inne narzędzia modułowe są opisane w podręczniku man. 9.2 Moduły dystrybuowane z jądrem. Jeśli chodzi o wersję 2.0.30 większość sterowników dostępna jest w postaci modułów. Aby ich użyć, najpierw upewnij się czy nie skonfigurowałeś ich jako stałe części jądra. To znaczy: nie odpowiadaj "y" na pytania ich dotyczące podczas konfiguracji, ale "m" jeśli jest taka możliwość. Po skompilowaniu jądra napisz make modules i make modules_install. Pierwsze polecenie skompiluje wszystkie sterowniki wyspecyfikowane jako moduły, a drugie zainstaluje je w katalogu /lib/modules/x.y.z, gdzie x.y.z jest wersją jądra. Po zainstalowaniu tych modułów wejdź do katalogu /lib/modules/x.y.z i napisz modprobe -a, jeśli masz ten program. $lsqb;Od tłumacza] Jeśli kompilujesz jądro o wersji takie samej jak to które używasz obecnie, to na wszleki wypadek przed poleceniem make modules_install, zrób w katalogu /lib/modules/ kopię katalogu o nazwie takiej samej jak wersja obecnego jądra. Moduły są szczególnie przydatne do systemów plików albo sterowników urządzeń, których rzadko używasz. Np. jeśli chcesz użyć dyskietki msdos, to najpierw piszesz insmod /lib/modules/x.y.z/fs/msdos.o i używasz tej dyskietki. Po skończeniu piszesz rmmod msdos. Operacja ta zaoszczędza jakieś 50 kB RAM-u - niby nic ale jak się uzbiera kilka takich sterowników to docenisz tę zaletę. Co do systemu plików minix to powinien on być zawsze wkompilowany w jądro na stałe, w razie użycia dyskietki startowej. Na dyskietkach jest właśnie minix. ------------------------------------------------------------------ Od tłumacza: Znowu facet skomplikował sprawę. Jest narzędzie, które zajmuje się za ciebie ładowaniem i usuwaniem odpowiednich modułów do i z pamięci. Nazywa się kerneld czyli kernel daemon. Jeśli użyjesz czegoś co wymaga sterownika w module, kerneld załaduje za ciebie ten moduł, a potem go wyrzuci jak już przestaniesz tego używać. Aby go użyć musisz odpowiedzieć na pytanie konfiguracyjne dotyczące kerneld "Kernel daemon support" "y". Przedtem jeszcze odpowiedz "y" na pytanie "Modules support" czy jakoś tak, żeby móc w ogóle używać modułów. Po kompilacji jądra wszystko idzie tak samo jak opisane powyżej. Jeszcze jedno: jeśli masz dystrybucję RH to sprawdź czy w pliku /etc/rc.d/rc.sysinit jest uruchamiany /sbin/kerneld. Jeśli nie, to sprawdź czy uruchamia się tam program depmod. jeśli też nie to dopisz te linijki: /sbin/depmod -a if [ -x /sbin/kerneld ]; then /sbin/kerneld fi za linijką która wygląda mniej więcej tak: mount -n -o remount,rw / Jeśli masz Slackware sprawdź czy w pliku /etc/rc.d/rc.M jest uruchamiany /sbin/kerneld. Jeśli nie, to sprawdź czy uruchamia się tam program depmod. Jeśli też nie, to dopisz te linijki /sbin/depmod -a if [ -x /sbin/kerneld ]; then /sbin/kerneld fi za linijką która wygląda mniej więcej tak: mount -n -o remount,rw / Jeśli masz dystrybucję Debian to: 1) sprawdź czy jest plik /etc/init.d/kerneld, jeśli tak to 2) sprawdź czy w /etc/rcX.d/ jest dowiązanie do tego pliku (będzie to plik SYYkerneld), jeśli jest, to wszystko jest w porządku. X - numer runlevel-u który standardowo uruchamiasz. (sprawdź w pliku /etc/inittab linijkę initdefault) Jeśli któryś z tych warunków jest niespełniony to: ad 1) załóż plik /etc/init.d/kerneld o treści: #!/bin/bash # source function library . /etc/rc.d/init.d/functions case "$1" in start) echo -n "Starting kerneld " if [ -f "/sbin/kerneld" ]; then /sbin/kerneld /sbin/depmod -a fi touch /var/lock/subsys/kerneld ;; stop) echo -n "Shutting down kerneld: " killproc kerneld rm -f /var/lock/subsys/kernled echo ;; *) echo "Usage: kerneld {start|stop}" exit 1 esac exit 0 ad 2) napisz cd /etc/rcX.d/ ln -s /etc/init.d/kerneld SYYkerneld YY musi być numerem przed ładowaniem modułów; najlpiej jak najwcześniej. ------------------------------------------------------------------ Następna strona Poprzednia strona Spis treści

Wyszukiwarka

Podobne podstrony:
Kernel HOWTO pl 12 (2)
Kernel HOWTO pl 6 (2)
Kernel HOWTO pl 4 (2)
Kernel HOWTO pl (2)
Kernel HOWTO pl 7 (2)
Kernel HOWTO pl 5 (2)
Kernel HOWTO pl 2 (2)
Kernel HOWTO pl
Kernel HOWTO pl 11 (2)
Kernel HOWTO pl 1 (2)
Kernel HOWTO pl 10 (2)
Kernel HOWTO pl 3 (2)
Kernel HOWTO pl (3)
Kernel HOWTO pl 8 (2)
bootdisk howto pl 8
PPP HOWTO pl 6 (2)
NIS HOWTO pl 1 (2)
kernel howto 3 clbigwpagydoy3epnkmic3ys7wlqwsg4rlwwgvq clbigwpagydoy3epnkmic3ys7wlqwsg4rlwwgvq
cdrom howto pl 1

więcej podobnych podstron