Kernel panic po kompilacii kernelu
Ing. Miroslav Cabarka
mirodoma na arka.sk
Čtvrtek Červenec 5 22:53:10 CEST 2001
>pokud na hda11 opravdu mate nainstalovany system (s /sbin/init),
Celkom urcite. Zistene aj pomocou rdev. /sbin/init je na /dev/hda11.
>pak je
>to fakt divne. ale pri pohledu na tohle
>
> execve("/sbin/init",argv_init,envp_init);
> execve("/etc/init",argv_init,envp_init);
> execve("/bin/init",argv_init,envp_init);
> execve("/bin/sh",argv_init,envp_init);
> panic("No init found. Try passing init= option to kernel.");
>
>v /usr/src/linux/init/main.c to vypada, ze hlaska "No init found." je
>znacne mystifikujici - pise ji to kdyz se init nepodari spustit, a ne
>najit. V dalsi fazi proto doporucuji zjistit, zda mate podporu pro elf
>binaries (nebo v cem mate vas init) - jeji absence by se rovnez
>projevovala tou chybovou hlaskou.
Podla: file /sbin/init je to ELF 32-bit LSB executable, 386, ver 1,
dynamicky linkovane, stripovane
Podporu pre ELF v kerneli som zapol, okrem toho file /bin/ls dava taky isty
vysledok a ls funguje, takze podpora je.
Mozno mu chyba nejaka kniznica, ale preco sa potom s kernelom 2.2.14 spusti
ta ista binarka bez problemov a s 2.2.19 nie? V lilo.conf mam 3 kernely:
2.2.14 zdrojaky z distribucie, prekompilovane na firewall - funguje.
Prakticky s rovnakou konfiguraciou kernelu, ale zdrojaky 2.2.19pre18 a
2.2.19 - oba stiahnute z internetu vykazuju tuto chybu. Postup konfiguracie
a kompilovania je rovnaky. Poziadavky na verzie kompilatora a utilit su
rovnake.
>Pokud to nebude ono, tak uz toho moc nezbyva - snad jen mirne
>modifikovat uvedeny kod, aby po kazdem neuspesnem execve (neni treba
>testovat return value, pokud execve vyjde tak se uz nic dalsiho
>nevykona) udela nejaky perror();, ktery vam aspon rekne trochu vic. Na
>zaklade tohoto vic pak mozna bude mozne urcit dalsi postup.
Toto je na mna trochu vysoka matematika.
Ing. Miroslav Cabarka
mcabarka na arka.sk
mirodoma na arka.sk
ARKA, a.s.
Další informace o konferenci Linux