Bisakah vmlinux digunakan sebagai ganti uImage?


9

Saya ingin menggunakan gambar kernel yang tidak terkompresi dan mem-boot BeagleBoard. Secara umum saya menggunakan uImage untuk mem-boot kernel yang dalam format terkompresi. Bagaimana cara saya menggunakan image kernel yang tidak dikompres?


Anda menggunakan U-Boot sebagai bootloader, bukan?
Gilles 'SO- stop being evil'

Iya! Apakah mungkin menggunakan uboot?
Sharanya

Jawaban:


7

Sejauh yang saya tahu, U-Boot tidak bisa langsung mem-boot image ELF "mentah" ( vmlinux). Anda perlu mengubahnya menjadi uImageformat, yang berisi vmlinuxmetadata terkompresi plus beberapa byte tambahan yang menggambarkan alamat kernel load. U-Boot FAQ 2.19 menjelaskan cara menghasilkan uImage; itu cukup mudah, menggunakan mkimageutilitas di pohon sumber U-Boot:

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

(Anda mungkin perlu parameter tambahan yang menunjukkan alamat muat.)


1
Mengompresi uImage saat boot membutuhkan waktu. Saya perlu meminimalkan itu. Jadi saya pikir mengapa saya tidak mencoba dengan file mentah vmlinux yang tidak terkompresi.
Sharanya

3
Efek yang ingin Anda capai mungkin berlawanan dengan yang dimaksudkan. Waktu dekompresi biasanya lebih kecil daripada waktu menyalin data dari flash.
Maciej Kucia

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

Ubah gzip pada contoh di atas menjadi tidak ada , dan Anda akan membuat gambar terkompresi u-Boot yang kompatibel.


1

Jika Anda menggunakan Buildroot, pilih uImagefile keluaran kernel ( BR2_LINUX_KERNEL_UIMAGE=y). Kompilasi secara normal dan Buildroot juga akan membuat vmlinuxfile dalam langkah perantara. Walaupun vmlinuxfile tersebut tidak disalin ke /output/imagesdirektori itu dapat ditemukan di ./output/build/linux-custom/(atau dengan menjalankan find . -name "vmlinux").

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.