Я хочу використовувати нестиснене зображення ядра та завантажувати BeagleBoard. Як правило, я використовую uImage для завантаження ядра, яке знаходиться у стисненому форматі. Як використовувати нестиснене зображення ядра?
Я хочу використовувати нестиснене зображення ядра та завантажувати BeagleBoard. Як правило, я використовую uImage для завантаження ядра, яке знаходиться у стисненому форматі. Як використовувати нестиснене зображення ядра?
Відповіді:
Наскільки мені відомо, U-Boot не може безпосередньо завантажувати «сирий» зображення ELF ( vmlinux
). Потрібно перетворити його у uImage
формат, який містить стислий vmlinux
плюс кілька зайвих байтів метаданих, які описують адресу завантаження ядра. U-Boot FAQ 2.19 пояснює, як створити uImage
; це досить просто, використовуючи mkimage
утиліту у вихідному дереві U-Boot:
mkimage -A arm -O linux -T kernel -C gzip … -d vmlinux uImage
(Можливо, вам знадобляться додаткові параметри, що вказують на адресу завантаження.)
mkimage -A arm -O linux -T kernel -C gzip … -d vmlinux uImage
Змініть gzip у наведеному вище прикладі на жоден , і ви створите некомпресоване зображення, сумісне з u-Boot.
Якщо ви використовуєте Buildroot, виберіть uImage
вихідний файл ядра ( BR2_LINUX_KERNEL_UIMAGE=y
). Компілюйте звичайно, і Buildroot також створить vmlinux
файл на проміжному кроці. Хоча vmlinux
файл не скопійовано до /output/images
каталогу, його можна знайти ./output/build/linux-custom/
(або запустивши find . -name "vmlinux"
).