Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
See õpetus hõlmab 64 -bitise reaalajas kerneli loomise ja installimise protsessi Raspberry Pi -le. RT Kernel on ROS2 ja muude reaalajas IOT -lahenduste täieliku funktsionaalsuse jaoks ülioluline.
Kernel installiti x64 -põhisele Raspbianile, mille saab siit
Märge. Kuigi see õpetus on lihtne, nõuab see Linuxi opsüsteemi põhiteadmisi.
Ka selle platvormi piirangute tõttu puudub kõigil http linkidel h. Nende parandamiseks lisage lingi ette "h"
Tarvikud
x64 -põhine arvuti, milles töötab Linux
Raspberry Pi 4B koos Raspbian 64 -ga on juba installitud
Ühendus Internetiga.
Samm: hankige abivahendid
Kõigepealt peame valima neccecery dev tööriistad.
Neid saab hankida Linuxi terminalis järgmiste käskude täitmisel
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
2. samm: ristkompileerimiseks kohalike ehitustööriistade koostamine
Järgmine samm on meie tuuma ristkompileerimiseks tööriistade ettevalmistamine ja koostamine.
Firsi tööriist, mille me installime, on Binutils, seda õpetust testiti binutili versiooniga 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- target = aarch64-linux-gnu-keelatud-nls
Pärast konfiguratsiooni lõppu peame programmi koostama järgmiste käskude abil
tee -jx
sudo make install
kus -jx tähendab, mitu tööd soovite i parrarellil täita. Rusikareegel on see, et see ei tohi olla kõrgem kui teie süsteemis olevate lõimede arv. (näiteks teha -j16)
ja lõpuks peame tee eksportima
eksport PATH = $ PATH:/opt/aarch64/bin/
Jätkame GCC ehitamise ja paigaldamisega
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-ilma päisedeta --disable-libssp --disable-decimal-float / --disable-libquadmath --disable-libvtv --disable-libgomp --disable-libatomic / --enable-languages = c --disable-multilib
See on sama, mis enne kompilaatori koostamist ja installimist
tee all -gcc -jx
sudo make install-gcc
Kui kõik käskluse järgi sujuks
/opt/aarch64/bin/aarch64-linux-gnu-gcc -v
peaks saama sarnase vastuse.
ux-gnu-gcc -v Sisseehitatud spetsifikatsioonide kasutamine. COLLECT_GCC =/opt/aarch64/bin/aarch64-linux-gnu-gcc COLLECT_LTO_WRAPPER =/opt/aarch64/libexec/gcc/aarch64-linux-gnu/8.4.0/lto-wrapper Siht: aarch64-linux-gnu Seadistatud:./configure --prefix =/opt/aarch64 --target = aarch64-linux-gnu --with-newlib-ilma päisteta --disable-nls --disable-shared --disable-threads --disable-libssp --disable-decimal-float --disable-libquadmath --disable-libvtv --disable-libgomp --disable-libatomic --enable-languages = c --disable-multilib Lõimemudel: ühe gcc versioon 8.4.0 (GCC)
3. samm: kerneli parandamine ja kerneli seadistamine
Nüüd on aeg hankida meie tuum ja RT -plaaster.
See õpetus kasutab rpi kernel v 5.4 ja RT plaastrit RT32. See kombinatsioon töötas minu jaoks hästi. Kuid erinevate versioonidega peaks kõik hästi toimima.
mkdir ~/rpi-kernel
cd ~/rpi-kernel git kloon 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
seejärel pakkige plaaster lahti.
gzip -cd../patch-5.4.54-rt32.patch.gz | plaaster -p1 -verbose
Ja lähtestage Rpi 4B konfiguratsioon
tee O =../kernel-out/ARCH = arm64 CROSS_COMPILE =/opt/aarch64/bin/aarch64-linux-gnu- bcm2711_defconfig
Pärast seda peame sisenema menüükonfiguratsiooni
tee O =../kernel-out/ARCH = arm64 CROSS_COMPILE =/opt/aarch64/bin/aarch64-linux-gnu- menuconfig
Kui see käivitub, peame olemasoleva konfiguratsiooni juurde minema, seejärel minge aadressile
Üldine -> Eeldusmudel ja valige suvand Reaalajas.
kui salvestame uue konfiguratsiooni ja väljume menüüst.
4. samm: RT kerneli loomine
Nüüd on selle koostamise aeg. Pange tähele, et sõltuvalt teie arvuti võimalustest võib see võtta kaua aega.
tee -jx O =../ kernel-out/ ARCH = arm64 CROSS_COMPILE = aarch64-linux-gnu-
Nagu varem, tähendab -jx töökohtade arvu. Pärast edukat koostamist peame pakkima oma kerneli ja saatma selle Raspberry Pi -sse. Selleks täidame järgmisi käske.
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 dp out/arch/arm64/boot/Image../rt-kernel/boot/kernel8.imgcd $ INSTALL_MOD_PATHtar czf../rt-kernel.tgz *cd..
Nüüd peaks meie kernel olema rt-kernel.tgz arhiivis ning valmis saatmiseks ja installimiseks.
Samm: uue kerneli installimine
Lihtsaim viis meie tuuma raspbperryle saatmiseks on scp.
Täidame lihtsalt järgmise käsu.
scp rt-kernel.tgz pi@:/tmp
Nüüd peame ssh kaudu oma pi sisse logima ja kerneli lahti pakkima.
ssh pi@
Sisselogimisel kopeerime oma failid järgmiste käskude abil.
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 /
Pärast seda jääb üle muuta /boot/config.txt faili ja lisada järgmine rida.
kernel = kernel8.img
Pärast pi taaskäivitamist peaks kõik toimima.
Uue kerneli eduka installimise kontrollimiseks võite käivitada
uname -a
käsk