Milan Cizek napsal/wrote, On 09/20/09 14:26:
P.S. vyrobit "minimalni kernel" neni tak trivialni
prelozit to kupodivu slo (ten tvuj minikernel), při bootu to ale umrelo na
absenci "device pci" (vypsalo). Tedy jsem ještě doplnil, další kompilace a
restart... Zobrazi se boot menu, nahraje se /boot/kernel/acpi.ko, nasledne
se kurzor presune o radek niz a zustane v pozici "/".
Rikal jsem, ze tyo neni trivialni. Kazdopadne, je treba hledat, ktery z
modulu se pri "shutdown" zadira. Jestli venujes cas na vytvoreni
funkcniho minimalniho kernelu a budes dalsi moduly nahravat dynamicky
nebo jestli je budes vkladat do kernelu staticky je z hlediska vysledku
jedno.
Ale udelame to jednoduseji. V priloze mas patch, ktery zaridi, ze pred a
po volani "shutdown" se vypise hlaska. Pred se jmenem modulu. Ktere
jmeno se vypise posledni a nevrati se, to hledas.
Dan
--- sys/kern/kern_module.c.orig 2009-04-15 05:14:26.000000000 +0200
+++ sys/kern/kern_module.c 2009-09-20 17:36:00.000000000 +0200
@@ -101,8 +101,11 @@
return;
mtx_lock(&Giant);
MOD_SLOCK;
- TAILQ_FOREACH(mod, &modules, link)
+ TAILQ_FOREACH(mod, &modules, link) {
+ printf(">>> module '%s'\n", mod->name == NULL ? "<NULL>" :
mod->name);
MOD_EVENT(mod, MOD_SHUTDOWN);
+ printf("<<< module return\n");
+ };
MOD_SUNLOCK;
mtx_unlock(&Giant);
}
--
FreeBSD mailing list (users-l@freebsd.cz)
http://www.freebsd.cz/listserv/listinfo/users-l