Daftar Isi:

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

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

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

Tutorial ini akan mencakup proses membangun dan menginstal 64 bit Real Time Kernel pada Raspberry Pi. Kernel RT sangat penting untuk fungsionalitas penuh ROS2 dan solusi IOT Waktu Nyata lainnya.

Kernel diinstal pada Raspbian berbasis x64 yang dapat diperoleh di sini

Catatan. Tutorial ini meskipun sederhana membutuhkan pengetahuan dasar tentang sistem operasi Linux.

Juga karena keterbatasan platform ini, semua tautan http tidak memiliki h. Untuk memperbaikinya cukup tambahkan "h" di bagian depan tautan

Perlengkapan

PC berbasis x64 yang menjalankan Linux

Raspberry Pi 4B dengan Raspbian 64 sudah terpasang

Koneksi ke Internet.

Langkah 1: Mendapatkan Alat yang Diperlukan

Pertama kita perlu memilih alat pengembang yang diperlukan.

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: Kompilasi Alat Bangun Asli untuk Kompilasi Lintas

Langkah selanjutnya adalah menyiapkan dan mengkompilasi alat untuk kompilasi silang kernel kita.

Alat pertama yang akan kita pasang adalah Binutils. Tutorial ini telah 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/./configure --prefix=/opt/aarch64 -- --disable-nls

Setelah konfigurasi selesai, kita perlu mengkompilasi program menggunakan perintah berikut:

buat -jx

sudo make install

di mana -jx berarti berapa banyak pekerjaan yang ingin Anda jalankan di parrarell. Aturan praktisnya adalah meletakkannya tidak lebih tinggi dari jumlah utas yang dimiliki sistem Anda. (misalnya make -j16)

dan akhirnya kita perlu mengekspor jalurnya

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

Kemudian dilanjutkan dengan pembangunan 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_preconditions./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

Dari yang sama seperti sebelumnya kita membuat dan menginstal compiler kita

buat all-gcc -jx

sudo make install-gcc

Jika semuanya berjalan lancar mengikuti perintah

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

harus menghasilkan respons yang serupa dengan ini.

ux-gnu-gcc -v Menggunakan spesifikasi bawaan. COLLECT_GCC=/opt/aarch64/bin/aarch64-linux-gnu-gcc COLLECT_LTO_WRAPPER=/opt/aarch64/libexec/gcc/aarch64-linux-gnu/8.4.0/lto-wrapper Target: 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-decimal-float --disable-libquadmath --disable-libvtv --disable-libgomp --disable-libatomic --enable-languages=c --disable-multilib Model utas: versi gcc tunggal 8.4.0 (GCC)

Langkah 3: Menambal Kernel dan Mengonfigurasi Kernel

Sekarang saatnya untuk mendapatkan kernel dan patch RT kami.

Tutorial ini akan menggunakan rpi kernel v 5.4 dan RT patch RT32. Kombinasi ini bekerja dengan baik untuk saya. Namun semuanya harus bekerja dengan baik dengan versi yang berbeda.

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/lama/patch-5.4.54-rt32.patch.gz mkdir kernel-out cd linux

kemudian buka tambalan.

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

Dan inisialisasi konfigurasi untuk Rpi 4B

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

Setelah ini kita perlu masuk ke menuconfig

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

Ketika diluncurkan kita perlu konfigurasi yang ada, lalu pergi ke

Umum -> Model Preemtion dan pilih opsi Waktu Nyata.

daripada kita menyimpan konfigurasi baru dan keluar dari menu.

Langkah 4: Membangun Kernel RT

Sekarang waktunya kompilasi. Catatan itu mungkin memakan waktu lama tergantung pada kemampuan PC Anda.

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

Seperti sebelumnya -jx berarti jumlah pekerjaan. Setelah kompilasi berhasil, kita perlu mengemas Kernel kita dan mengirimkannya ke Raspberry Pi. Untuk melakukan ini, kami menjalankan perintah berikut.

ekspor 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_installcp-./kernel- out/arch/arm64/boot/Image../rt-kernel/boot/kernel8.imgcd $INSTALL_MOD_PATHtar czf../rt-kernel.tgz *cd..

Sekarang kernel kita harus berada di dalam arsip rt-kernel.tgz dan siap untuk dikirim dan diinstal.

Langkah 5: Memasang Kernel Baru

Cara termudah untuk mengirim kernel kita ke raspbperry adalah dengan menggunakan scp.

Kami cukup menjalankan perintah berikut.

scp rt-kernel.tgz pi@:/tmp

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

ssh pi@

Saat masuk, kami menyalin file kami menggunakan perintah 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/

Setelah itu yang tersisa untuk dilakukan adalah mengedit file /boot/config.txt dan menambahkan baris berikut.

kernel=kernel8.img

Setelah me-reboot pi semuanya akan berfungsi dengan baik.

Untuk memeriksa apakah kernel baru berhasil diinstal, Anda dapat menjalankan

uname -a

memerintah

Direkomendasikan: