Mundarija:

Raspberry Pi 4B uchun 64bit RT yadroli kompilyatsiya.: 5 qadam
Raspberry Pi 4B uchun 64bit RT yadroli kompilyatsiya.: 5 qadam

Video: Raspberry Pi 4B uchun 64bit RT yadroli kompilyatsiya.: 5 qadam

Video: Raspberry Pi 4B uchun 64bit RT yadroli kompilyatsiya.: 5 qadam
Video: OctoPrint — за 15 долларов на Raspberry Pi Zero 2 Вт. 2024, Iyul
Anonim
Raspberry Pi 4B uchun 64bit RT yadroli kompilyatsiya
Raspberry Pi 4B uchun 64bit RT yadroli kompilyatsiya

Ushbu qo'llanma Raspberry Pi -da 64 bitli real vaqt yadrosini yaratish va o'rnatish jarayonini o'z ichiga oladi. RT Kernel ROS2 va boshqa real vaqtda IOT echimlarining to'liq ishlashi uchun juda muhimdir.

Kernel x64 -ga asoslangan Raspbian -ga o'rnatildi, uni bu erda olish mumkin

Eslatma. Ushbu qo'llanma sodda bo'lsa ham, Linux operatsion tizimi haqida asosiy bilimlarni talab qiladi.

Shuningdek, ushbu platformaning cheklanganligi tufayli barcha http havolalarida h yo'q. Ularni tuzatish uchun havolaning old qismiga "h" ni qo'shing

Ta'minotlar

Linux bilan ishlaydigan x64 asosidagi kompyuter

Raspbian 64 bilan Raspberry Pi 4B allaqachon o'rnatilgan

Internetga ulanish.

1 -qadam: Kerakli asboblarni olish

Birinchidan, biz zarur asboblarni tanlashimiz kerak.

Ularni Linux terminalida quyidagi buyruqlarni bajarish orqali olish mumkin

libncurses

2 -qadam: O'zaro kompilyatsiya uchun mahalliy qurilish vositalarini yig'ish

Keyingi qadam, yadroni o'zaro kompilyatsiya qilish uchun asboblarni tayyorlash va kompilyatsiya qilish.

Biz o'rnatadigan Firs vositasi - Binutils, bu qo'llanma binutils 2.35 versiyasi bilan sinovdan o'tgan.

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

Konfiguratsiya tugagandan so'ng, biz quyidagi buyruqlar yordamida dasturni kompilyatsiya qilishimiz kerak

-jx qiling

sudo make install

bu erda -jx qancha ishni bajarishni xohlayotganingizni anglatadi i parrarell. Qoida - bu sizning tizimingizdagi iplar sonidan oshmasligi. (masalan, -j16 qiling)

va nihoyat biz yo'lni eksport qilishimiz kerak

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

GCCni qurish va o'rnatishni davom ettiramiz

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 --with-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

Kompilyatorni yasash va o'rnatishdan oldin bo'lgani kabi

all -gcc -jx qiling

sudo install-gcc

Agar hamma narsa tartibda bo'lsa, buyruqni bajaring

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

shunga o'xshash javob berishi kerak.

ux-gnu-gcc -v O'rnatilgan xususiyatlardan foydalanish. COLLECT_GCC =/opt/aarch64/bin/aarch64-linux-gnu-gcc COLLECT_LTO_WRAPPER =/opt/aarch64/libexec/gcc/aarch64-linux-gnu/8.4.0/lto-wrapper Maqsad: aarch64-linux-gnu Konfiguratsiya qilingan:./configure --prefix =/opt/aarch64 --target = aarch64-linux-gnu --with-newlib-with-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 Thread modeli: bitta gcc versiyasi 8.4.0 (GCC))

3 -qadam: yadroni tuzatish va yadroni sozlash

Endi bizning yadro va RT tuzatishlarni olish vaqti keldi.

Bu qo'llanmada rpi kernel v 5.4 va RT patch RT32 ishlatiladi. Bu kombinatsiya men uchun yaxshi ishladi. Ammo hamma narsa har xil versiyalarda yaxshi ishlashi kerak.

mkdir ~/rpi-yadrosi

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 yadrodan chiqarilgan cd linux

keyin yamoqni oching.

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

Rpi 4B uchun konfiguratsiyani boshlang

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

Keyin biz menukonfigga kirishimiz kerak

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

Kulganda, biz mavjud konfiguratsiyaga muhtojmiz, keyin o'ting

Umumiy -> Oldindan ko'rish modeli va "Real vaqt" variantini tanlang.

biz yangi konfiguratsiyani saqlaymiz va menyudan chiqamiz.

4 -qadam: RT yadrosini yaratish

Endi uning kompilyatsiya vaqti. Shuni esda tutingki, bu sizning kompyuteringizning imkoniyatlariga qarab ancha vaqt talab qilishi mumkin.

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

Avvalgi kabi -jx ish o'rinlari sonini bildiradi. Muvaffaqiyatli kompilyatsiya qilinganidan so'ng, biz yadroni yig'ib, Raspberry Pi -ga yuborishimiz kerak. Buning uchun biz quyidagi buyruqlarni bajaramiz.

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

Endi bizning yadroimiz rt-kernel.tgz arxivida bo'lishi va uni yuborish va o'rnatishga tayyor bo'lishi kerak.

5 -qadam: Yangi yadroni o'rnatish

Bizning yadroni raspbperry -ga yuborishning eng oson usuli - scp yordamida.

Biz faqat quyidagi buyruqni bajaramiz.

scp rt-kernel.tgz pi@:/tmp

Endi biz ssh orqali pi -ga kirishimiz va yadroni ochishimiz kerak.

ssh pi@

Tizimga kirganimizda biz quyidagi buyruqlar yordamida fayllarimizni nusxa ko'chiramiz.

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 /

Shundan so'ng, /boot/config.txt faylini tahrir qilish va keyingi qatorni qo'shish qoladi.

yadro = yadro8.img

Qayta ishga tushirilgandan so'ng, hamma narsa yaxshi ishlashi kerak.

Yangi yadro muvaffaqiyatli o'rnatilganligini tekshirish uchun siz bajarishingiz mumkin

uname -a

buyruq

Tavsiya: