2017-05-12 17 views
9

Sklonowałem repo jądra Linuksa na moim hostowanym urządzeniu (hostem jest Ubuntu 16.04). Dwa tygodnie temu mogłem uruchomić nowe jądro (było wtedy 4.11.rc06), potem zrobiłem git pull i zrekompilowałem wszystko i po prostu wisi po "ładowaniu początkowego obrazu ramdysku ...".jak debugować ładowanie jądra i ładowanie wewnętrzne w wirtualnej skrzynce

Więc próbowałem git clean -xfd następnie make localmoduleconfig sekretarki domyślnych za wszystko, a następnie make następnie make modules_install następnie mkinitcpio -p linux.4.11.custom i oczywiście sudo cp -v arch/x86_64/boot/bzImage /boot/vmlinuz-linux.4.11.custom.

Po sprawdzeniu, czy rzeczywiście się zawiesił, spróbowałem więcej git pulls, more cleans, ale nic się nie zmieniło.

Uruchamianie tego samego jądra z tego samego źródła na prawdziwym komputerze. Nie mogłem znaleźć nagranego błędu w wirtualnej skrzynce lub znaleźć aktualizacji dla ubuntu.

Następnie próbowałem go samemu debugować, dodając do komendy GRUB-a: debug earlyprintk=vga,keep i nawet usuwając linię initrd dodającą noinitrd do jądra, ale nie otrzymuję błędu. Tylko ekran z wiadomościami typu "echo", które pozostają na zawsze.

  1. Jak mogę to debugować?
  2. Czy ktoś ma pojęcie, co można zrobić?
+2

Chyba ludzie dostają błąd przez tytule. Zamiast narzekać ("Virtualbox nie działa") zadaj pytanie w tytule ("jak debugować sekwencję startową jądra Linux?") I dopracuj w treści pytania. –

+0

n.m. propozycja zaakceptowana. – codeScriber

+1

Czy widzisz komunikaty jądra/init przekazywane przez system uart (lub cokolwiek innego, co używasz jako domyślnej konsoli)? –

Odpowiedz

0

Aby sprawdzić, czy jądro się jeszcze uruchamia, skorzystam z KDB (wbudowanego debugera jądra) i zobaczę, czy pojawi się monit przy starcie.

Dla lepszego debugowania spróbuję uruchomić KGDB (GDB dla jądra).

Możesz aktywować oba, aby mieć wszystkie dostępne opcje. Zobacz poniższy link, aby uzyskać więcej informacji na ten temat:

https://www.kernel.org/doc/htmldocs/kgdb/index.html

+1

fajny pomysł, problem był w 100% wirtualny, ponieważ to jądro działało dobrze w zwykłym odtwarzaczu PC i odtwarzaczu vmware. – codeScriber