Saya mencoba mengkompilasi kernel untuk mesin Intel Atom 32-bit single-core. Tak perlu dikatakan, kompilasi ini mengambil banyak waktu. Sudah berjalan selama 2 jam dan masih hanya setengah jalan melalui modul driver.
Mengkompilasi kernel pada desktop utama saya hanya membutuhkan waktu 15 menit tetapi ini adalah mesin 64bit. Dapatkah saya melakukan cross compile untuk menghasilkan paket kernel 32bit dari mesin yang lebih baik?
Jawaban:
Sementara kernel dapat dikompilasi silang, cara termudah adalah membuat chroot 32bit (i386) dan membangunnya di sana.
Pasang
ubuntu-dev-tools
:Buat chroot i386:
(Anda mungkin harus menjalankan itu dua kali. Pertama kali, itu menginstal
schroot
dll dan mengaturmk-sbuild
)Lalu masukkan chroot:
Dan membangun kernel, seperti yang Anda lakukan, secara normal.
sumber
Afaik, di gcc, Anda dapat mengatur
-m32
flag untuk membiarkannya mengkompilasi sumber linux ke executable 32bit. Saya tidak memiliki pengetahuan luas tentang Makefiles, tetapi Anda dapat mengubah mereka.sunting: Saya ingin menambahkan pertanyaan dari stackoverflow di sini, di mana ia diberi tahu untuk mengatur cflags:
Dan dari repositori linux di akun github Torvalds , saya menemukan bagian berikut di makefile utama yang mungkin berguna bagi Anda, karena memberitahu Anda dapat mengatur arsitektur target dengan mengatur variabel lingkungan. Baca komentar, saat ini, baris ini dari file ini , antara baris 174-196 :
sumber