Isi kandungan:

Kompilasi Kernel 64bit RT untuk Raspberry Pi 4B .: 5 Langkah
Kompilasi Kernel 64bit RT untuk Raspberry Pi 4B .: 5 Langkah

Video: Kompilasi Kernel 64bit RT untuk Raspberry Pi 4B .: 5 Langkah

Video: Kompilasi Kernel 64bit RT untuk Raspberry Pi 4B .: 5 Langkah
Video: Compiling the Raspberry Pi Linux Kernel 2024, Julai
Anonim
Kompilasi Kernel 64bit RT untuk Raspberry Pi 4B
Kompilasi Kernel 64bit RT untuk Raspberry Pi 4B

Tutorial ini akan merangkumi proses pembinaan dan pemasangan Kernel Real Time 64 bit di Raspberry Pi. RT Kernel sangat penting untuk fungsi penuh ROS2 dan penyelesaian Real Time IOT yang lain.

Kernel dipasang pada Raspbian berasaskan x64 yang boleh didapati di sini

Catatan. Tutorial ini walaupun ringkas memerlukan pengetahuan asas mengenai sistem operasi Linux.

Juga kerana keterbatasan platform ini, semua pautan http kekurangan h. Untuk memperbaikinya, tambah "h" di bahagian depan pautan

Bekalan

PC berasaskan x64 yang menjalankan Linux

Raspberry Pi 4B dengan Raspbian 64 sudah dipasang

Sambungan ke Internet.

Langkah 1: Mendapatkan Alat Neccesery

Mula-mula kita perlu memilih alat alat bantu.

Mereka dapat diperoleh dengan menjalankan perintah berikut di terminal Linux

sudo apt-get install build-essential libgmp-dev libmpfr-dev libmpc-dev libisl-dev libncurses5-dev bc git-core bison flexsudo apt-get install libncurses-dev libssl-dev

Langkah 2: Menyusun Alat Bina Asli untuk Penyusunan Silang

Langkah seterusnya adalah mempersiapkan dan menyusun alat untuk penyusunan silang kernel kami.

Alat Firs yang akan kita pasang adalah Binutils tutorial ini diuji dengan binutils versi 2.35.

cd ~ / Downloadswget ttps: //ftp.gnu.org/gnu/binutils/binutils-2.35.tar.bz2tar xf binutils-2.35.tar.bz2cd binutils-2.35 /./ configigure --prefix = / opt / aarch64 - target = aarch64-linux-gnu --disable-nls

Setelah konfigurasi selesai, kita perlu menyusun program menggunakan perintah berikut

buat -jx

sudo buat pasang

mana -jx bermaksud berapa banyak pekerjaan yang anda mahu jalankan i parrarell. Ringkasnya adalah meletakkannya tidak lebih tinggi daripada jumlah utas yang dimiliki sistem anda. (contohnya buat -j16)

dan akhirnya kita perlu mengeksport jalan

eksport PATH = $ PATH: / opt / aarch64 / bin /

Daripada itu kami meneruskan pembinaan dan pemasangan GCC

cd..wget ttps: //ftp.gnu.org/gnu/gcc/gcc-8.4.0/gcc-8.4.0.tar.xztar xf gcc-8.4.0.tar.xzcd gcc-8.4.0 /. /contrib/download_prerequisites./configure --prefix = / opt / aarch64 --target = aarch64-linux-gnu --with-newlib --without-headers / --disable-nls --disable-shared --disable-threads --disable-libssp --disable-decimal-float / --disable-libquadmath --disable-libvtv --disable-libgomp --disable-libatomic / --enable-Languages = c --disable-multilib

Sama seperti sebelum kami membuat dan memasang pengkompil kami

buat semua-gcc -jx

sudo buat install-gcc

Sekiranya semuanya berjalan lancar mengikut arahan

/ opt / aarch64 / bin / aarch64-linux-gnu-gcc -v

harus mendapat tindak balas yang serupa dengan ini.

ux-gnu-gcc -v Menggunakan spesifikasi terbina dalam. COLLECT_GCC = / opt / aarch64 / bin / aarch64-linux-gnu-gcc COLLECT_LTO_WRAPPER = / opt / aarch64 / libexec / gcc / aarch64-linux-gnu / 8.4.0 / lto-wrapper Sasaran: aarch64-linux-gnu Dikonfigurasi dengan:./configure --prefix = / opt / aarch64 --target = aarch64-linux-gnu --with-newlib --without-headers --disable-nls --disable-shared --disable-threads --disable-libssp --disable-desimal-float --disable-libquadmath --disable-libvtv --disable-libgomp --disable-libatomic --enable-Languages = c --disable-multilib Thread model: single gcc versi 8.4.0 (GCC)

Langkah 3: Menambal Kernel dan Mengkonfigurasi Kernel

Sekarang masanya untuk mendapatkan patch kernel dan RT kami.

Tutorial ini akan menggunakan rpi kernel v 5.4 dan RT patch RT32. Gabungan ini berjaya untuk saya. Walau bagaimanapun semuanya mesti berfungsi dengan baik dengan versi yang berbeza.

mkdir ~ / rpi-kernel

cd ~ / rpi-kernel git clone ttps: //github.com/raspberrypi/linux.git -b rpi-5.4.y wget ttps: //mirrors.edge.kernel.org/pub/linux/kernel/projects/rt /5.4/older/patch-5.4.54-rt32.patch.gz mkdir kernel-out cd linux

kemudian bongkar tampalan.

gzip -cd../patch-5.4.54-rt32.patch.gz | tampalan -p1 --verbose

Dan mulakan konfigurasi dengan harga Rpi 4B

buat O =.. / kernel-out / ARCH = arm64 CROSS_COMPILE = / opt / aarch64 / bin / aarch64-linux-gnu- bcm2711_defconfig

Selanjutnya kita perlu memasuki menu

buat O =.. / kernel-out / ARCH = arm64 CROSS_COMPILE = / opt / aarch64 / bin / aarch64-linux-gnu- menuconfig

Apabila bersuara kita perlu konfigurasi yang ada, kemudian pergi ke

Umum -> Model Preemtion dan pilih pilihan Masa Nyata.

daripada kita menyimpan konfigurasi baru dan keluar dari menu.

Langkah 4: Membangunkan RT Kernel

Sekarang masa penyusunannya. Perhatikan mungkin memerlukan masa yang lama bergantung pada kemampuan PC anda.

buat -jx O =.. / kernel-out / ARCH = arm64 CROSS_COMPILE = aarch64-linux-gnu-

Seperti sebelumnya -jx bermaksud bilangan pekerjaan. Setelah penyusunan berjaya, kami perlu mengemas Kernel kami dan menghantarnya ke Raspberry Pi. Untuk melakukan ini, kami melaksanakan perintah berikut.

eksport INSTALL_MOD_PATH = ~ / rpi-kernel / rt-kernelexport INSTALL_DTBS_PATH = ~ / rpi-kernel / rt-kernelmake O =.. / kernel-out / ARCH = arm64 CROSS_COMPILE = aarch64-linux-gnu- modules_install dtbs_install.. keluar / arch / arm64 / boot / Image../rt-kernel/boot/kernel8.imgcd $ INSTALL_MOD_PATHtar czf../rt-kernel.tgz * cd..

Sekarang kernel kami harus berada di dalam arkib rt-kernel.tgz dan siap untuk dihantar dan dipasang.

Langkah 5: Memasang Kernel Baru

Cara termudah untuk menghantar kernel kami ke raspbperry adalah dengan menggunakan scp.

Kami hanya melaksanakan perintah pengikut.

scp rt-kernel.tgz pi @: / tmp

Sekarang kita perlu masuk ke pi kita melalui ssh dan membongkar Kernel kita.

ssh pi @

Semasa log masuk kami menyalin fail kami menggunakan arahan berikut.

cd / tmptar xzf rt-kernel.tgz cd boot sudo cp -rd * / boot / cd../lib sudo cp -dr * / lib / cd../overlays sudo cp -dr * / boot / overlays cd../ broadcom sudo cp -dr bcm * / boot /

Selepas itu apa yang perlu dilakukan adalah mengedit fail /boot/config.txt dan menambah baris berikut.

kernel = kernel8.img

Selepas reboot pi semuanya mesti berfungsi dengan baik.

Untuk memeriksa apakah kernel baru telah berjaya dipasang, anda dapat melaksanakannya

uname -a

arahan

Disyorkan: