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

Odpovedet emailem