Jaka jest różnica między nimi?
Wiem, że u-boot potrzebuje jądra w formacie uImage.
System, którego używam, najpierw uruchamia się z programu ładującego etapu 1, a następnie wywołuje u-boot. Chcę odrzucić u-boot i uruchomić bezpośrednio z programu ładującego etapu 1. Jakiego typu obrazu jądra muszę używać?
linux-kernel
embedded-linux
u-boot
yildizabdullah
źródło
źródło
Odpowiedzi:
Obraz : ogólny plik obrazu binarnego jądra Linuksa.
zImage : skompresowana wersja samorozpakowującego się obrazu jądra Linuksa.
uImage : plik obrazu z opakowaniem U-Boot (zainstalowanym przez narzędzie mkimage ), które zawiera typ systemu operacyjnego i informacje o module ładującym.
Bardzo powszechną praktyką (np. Typowy plik Makefile jądra Linuksa) jest użycie pliku zImage. Ponieważ plik zImage jest samorozpakowujący się (tj. Nie potrzebuje zewnętrznych dekompresorów), opakowanie wskazywałoby, że to jądro nie jest skompresowane, mimo że tak jest.
Zauważ, że autor / opiekun U-Boot uważa (powszechne) użycie zImage wewnątrz uImage za wątpliwe:
(cytat z https://lists.yoctoproject.org/pipermail/yocto/2013-October/016778.html )
Możesz wybrać cokolwiek chcesz zaprogramować.
Ze względu na oszczędność pamięci prawdopodobnie powinieneś wybrać skompresowany obraz zamiast nieskompresowanego.
Uważaj, wykonanie jądra (prawdopodobnie jądra Linuksa) wymaga czegoś więcej niż tylko załadowania obrazu jądra do pamięci. W zależności od architektury (np. ARM) i wersji jądra Linuksa (np. Z DTB lub bez), istnieją rejestry i bufory pamięci, które mogą być przygotowane dla jądra. W jednym przypadku wystąpiła również inicjalizacja sprzętu wykonana przez U-Boot, która musiała zostać zreplikowana.
UZUPEŁNIENIE
Dotyczy to wszystkich wersji U-Boot, które mają tylko polecenie bootm .
Ale nowsze wersje U-Boot mogą również mieć polecenie bootz, które może uruchomić zImage.
źródło