Saya ingin lebih memahami tentang cara kerja kernel. Bagian dari ini adalah untuk mengkompilasinya sendiri. Bagaimana saya mengkompilasi silang Kernel pada host Ubuntu?
Saya ingin lebih memahami tentang cara kerja kernel. Bagian dari ini adalah untuk mengkompilasinya sendiri. Bagaimana saya mengkompilasi silang Kernel pada host Ubuntu?
Jawaban:
Pertama, kita perlu menginstal prasyarat yang diperlukan. Saya menganggap Anda memiliki sudo
akses.
sudo apt-get install git ncurses-dev make gcc-arm-linux-gnueabi
git
adalah sistem kontrol versi yang digunakan oleh tim kernel Linux.ncurses
adalah perpustakaan untuk membangun menu konsol. Itu perlu untuk menuconfig
.make
menjalankan kompilasi untuk kita.gcc-arm-linux-gnueabi
adalah cross-compiler.Selanjutnya, kita perlu mengambil sumbernya, jalankan:
git clone https://github.com/raspberrypi/linux raspberrypi-linux
cd raspberrypi-linux
Ini akan mengkloning kode sumber ke direktori yang dipanggil raspberrypi-linux
dan mengubahnya.
Pertama-tama kita perlu memindahkan file konfigurasi dengan menjalankan
cp arch/arm/configs/bcmrpi_cutdown_defconfig .config
Kemudian konfigurasikan kernel build
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- oldconfig
Opsional: Sesuaikan bangunan menggunakan menuconfig
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- menuconfig
Kemudian jalankan kompilasi
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
Referensi
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
Saya pikir Alex benar tetapi gcc-arm-linux-gnueabi dikompilasi untuk arm cpus tanpa perangkat floating point unit. Anda dapat menemukan cross-compiler dengan dukungan armhf di: https://github.com/raspberrypi/tools dan tutorial yang bagus untuk memulai di sini: http://hertaville.com/2012/09/28/development-environment- raspberry-pi-cross-compiler /
Dokumentasi resmi
https://www.raspberrypi.org/documentation/linux/kernel/building.md ( GitHub )
Saya akan merekomendasikan Anda hanya mengikuti langkah-langkah di sana, atau mengirim permintaan tarik jika ada sesuatu yang ketinggalan jaman atau tidak cukup jelas: instruksi tersebut adalah yang paling mungkin benar dan mutakhir karena merupakan bagian dari dokumentasi resmi proyek.