Czy można używać vmlinux zamiast uImage?


Odpowiedzi:


7

O ile mi wiadomo, U-Boot nie może bezpośrednio uruchomić „surowego” obrazu ELF ( vmlinux). Musisz przekształcić go w uImageformat, który zawiera skompresowany vmlinuxplus kilka dodatkowych bajtów metadanych opisujących adres ładowania jądra. U-Boot FAQ 2.19 wyjaśnia, jak generować uImage; jest dość prosty, używając mkimagenarzędzia w drzewie źródeł U-Boot:

 mkimage -A arm -O linux -T kernel -C gzip … -d vmlinux uImage

(Możesz potrzebować dodatkowych parametrów wskazujących adres ładowania.)


1
Dekompresowanie uImage podczas uruchamiania zajmuje trochę czasu. Muszę to zminimalizować. Pomyślałem więc, dlaczego nie próbuję z nieskompresowanym plikiem vmlinux.
Sharanya

3
Efekt, który chcesz osiągnąć, może być przeciwny do zamierzonego. Czas dekompresji jest zwykle krótszy niż czas kopiowania danych z pamięci flash.
Maciej Kucia,

3
 mkimage -A arm -O linux -T kernel -C gzip … -d vmlinux uImage

Zmień gzip w powyższym przykładzie na none , a utworzysz nieskompresowany obraz zgodny z U-Boot.


1

Jeśli używasz Buildroot, wybierz uImageplik wyjściowy jądra ( BR2_LINUX_KERNEL_UIMAGE=y). Skompiluj normalnie, a Buildroot utworzy również vmlinuxplik w kroku pośrednim. Podczas gdy vmlinuxplik nie jest kopiowany do /output/imageskatalogu można znaleźć w ./output/build/linux-custom/(lub uruchamiając find . -name "vmlinux").

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.