Tôi muốn sử dụng một hình ảnh hạt nhân không nén và khởi động BeagleBoard. Nói chung, tôi sử dụng uImage để khởi động kernel ở định dạng nén. Làm cách nào để sử dụng ảnh kernel không nén?
Tôi muốn sử dụng một hình ảnh hạt nhân không nén và khởi động BeagleBoard. Nói chung, tôi sử dụng uImage để khởi động kernel ở định dạng nén. Làm cách nào để sử dụng ảnh kernel không nén?
Câu trả lời:
Theo như tôi biết, U-Boot không thể khởi động trực tiếp hình ảnh ELF ( vmlinux
). Bạn cần biến nó thành uImage
định dạng chứa tệp nén vmlinux
cộng thêm một vài byte siêu dữ liệu mô tả địa chỉ tải kernel. Câu hỏi thường gặp về U-Boot 2.19 giải thích cách tạo uImage
; nó khá đơn giản, sử dụng mkimage
tiện ích trong cây nguồn U-Boot:
mkimage -A arm -O linux -T kernel -C gzip … -d vmlinux uImage
(Bạn có thể cần thêm tham số cho biết địa chỉ tải.)
Nếu bạn đang sử dụng Buildroot, hãy chọn uImage
tệp đầu ra kernel ( BR2_LINUX_KERNEL_UIMAGE=y
). Biên dịch bình thường và Buildroot cũng sẽ tạo một vmlinux
tệp trong bước trung gian. Trong khi vmlinux
tập tin không được sao chép vào /output/images
thư mục, nó có thể được tìm thấy trong ./output/build/linux-custom/
(hoặc bằng cách chạy find . -name "vmlinux"
).