Gdzie w kodzie źródłowym GRUB2 jest przekazanie / przejście do kodu jądra?


11

Szukam linii kodu, w której GRUB2 w końcu przeskakuje do kodu jądra i przekazuje wykonanie na systemach x86? Chyba jest w pliku asemblera, ponieważ jest to bardzo niska architektura. Spojrzałem na pliki źródłowe /grub-core/boot/i386/pc/*.Si znalazłem JMPw boot.S w linii 455, ale kernel_addressmoże to być adres jądra GRUB2 w pamięci, a nie jądro Linux.

Ktoś ze znajomością montażu i GRUB2, który może mi pomóc?


Czy śledziłeś parametry jądra?
phk

1
Nie mogę tu dodać zbyt wiele, ponieważ piszę z telefonu, ale na podstawie tego, co pamiętam z kompatybilności z PC i GRUB2, mogę zgadywać, że ładuje obraz jądra do pamięci w 0x900000 (tryb rzeczywisty), przy czym 0x0c000000 jest adres przeskoczył po wyjściu z trybu rzeczywistego do trybu chronionego. Było to jednak w systemie EFI z „zaufanym uruchomieniem”, ale mogłem się mylić. Może twój initrdobraz będzie zawierał wskazówki?
Wyatt8740,

Odpowiedzi:


1

Już po przeczytaniu źródła powinno to być miejsce w module ładującym Linuxa, a to miejsce w relokatorze (niezależnie od modułu ładującego).

Mam nadzieję że to pomogło :)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.