INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
Hierdie handleiding dek die proses van die bou en installasie van 64 -bits Real Time Kernel op Raspberry Pi. RT Kernel is noodsaaklik vir die volledige funksionaliteit van ROS2 en ander Real Time IOT -oplossings.
Kernel is geïnstalleer op x64 -gebaseerde Raspbian wat hier verkry kan word
Let op. Hierdie handleiding vereis, hoewel eenvoudig, basiese kennis van Linux -bedryfstelsel.
As gevolg van die beperkinge van hierdie platform, ontbreek alle http -skakels aan h. Om dit eenvoudig op te los, voeg 'h' aan die voorkant van die skakel by
Voorrade
x64 -gebaseerde rekenaar met Linux
Raspberry Pi 4B met Raspbian 64 reeds geïnstalleer
Verbinding met die internet.
Stap 1: Kry noodsaaklike gereedskap
Eerstens moet ons die nodige ontwikkelingsinstrumente kies.
Dit kan verkry word deur die volgende opdragte in Linux -terminale uit te voer
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
Stap 2: Opstel van oorspronklike gereedskap vir kruisversameling
Die volgende stap is om gereedskap voor te berei en op te stel vir die samestelling van ons kern.
Die eerste hulpmiddel wat ons gaan installeer, is Binutils, hierdie tutoriaal is getoets met binutils weergawe 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 --disable-nls
Nadat die konfigurasie voltooi is, moet ons die program saamstel met behulp van die volgende opdragte
maak -jx
sudo maak installeer
waar -jx beteken hoeveel werk u in parrarell wil uitvoer. 'N Duimreël is om dit nie hoër te stel as die hoeveelheid drade wat u stelsel het nie. (byvoorbeeld maak -j16)
en uiteindelik moet ons die pad uitvoer
uitvoer PATH = $ PATH:/opt/aarch64/bin/
Dan gaan ons voort met die bou en installering van 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-met-newlib-sonder 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
As dieselfde as voor ons ons samesteller maak en installeer
maak all -gcc -jx
sudo maak install-gcc
As alles vlot verloop volgens die opdrag
/opt/aarch64/bin/aarch64-linux-gnu-gcc -v
moet in reaksie hierop heraangestel word.
ux-gnu-gcc -v Gebruik ingeboude spesifikasies. COLLECT_GCC =/opt/aarch64/bin/aarch64-linux-gnu-gcc COLLECT_LTO_WRAPPER =/opt/aarch64/libexec/gcc/aarch64-linux-gnu/8.4.0/lto-wrapper Doel: aarch64-linux-gnu Opgestel met:./configure --prefix =/opt/aarch64 --target = aarch64-linux-gnu-met-newlib-sonder 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 version 8.4.0 (GCC)
Stap 3: Patching Kernel en Configuring Kernel
Nou is dit tyd om ons kern en RT -pleister te kry.
Hierdie handleiding gebruik rpi kern v 5.4 en RT patch RT32. Hierdie kombinasie het goed vir my gewerk. Alles moet egter goed werk met verskillende weergawes.
mkdir ~/rpi-kernel
cd ~/rpi-kern 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
pak dan die pleister uit.
gzip -cd../patch-5.4.54-rt32.patch.gz | pleister -p1 --woordelik
En begin die konfigurasie vir Rpi 4B
maak O =../kernel-out/ARCH = arm64 CROSS_COMPILE =/opt/aarch64/bin/aarch64-linux-gnu- bcm2711_defconfig
Hierna moet ons die menuconfig betree
maak O =../kernel-out/ARCH = arm64 CROSS_COMPILE =/opt/aarch64/bin/aarch64-linux-gnu- menuconfig
As dit lui, moet ons na die bestaande konfigurasie, en dan na
Algemeen -> Voorverkoopmodel en kies Real Time -opsie.
as ons nuwe konfigurasie stoor en die spyskaart verlaat.
Stap 4: Bou RT Kernel
Nou is dit tyd om op te stel. Let daarop dat dit baie tyd kan neem, afhangende van u rekenaarfunksies.
maak -jx O =../ kernel-out/ ARCH = arm64 CROSS_COMPILE = aarch64-linux-gnu-
Soos voorheen -jx beteken aantal werkgeleenthede. Na 'n suksesvolle samestelling moet ons ons kern pak en na Raspberry Pi stuur. Om dit te doen, voer ons die volgende opdragte uit.
uitvoer 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_installp.. out/arch/arm64/boot/Image../rt-kernel/boot/kernel8.imgcd $ INSTALL_MOD_PATHtar czf../rt-kernel.tgz *cd..
Nou moet ons kern in die argief van rt-kernel.tgz wees en dit kan gestuur en geïnstalleer word.
Stap 5: Installeer nuwe kern
Die maklikste manier om ons kern na raspbperry te stuur, is deur scp te gebruik.
Ons voer eenvoudig die volgende opdrag uit.
scp rt-kernel.tgz pi@:/tmp
Nou moet ons by ons pi aanmeld via ssh en ons kern uitpak.
ssh pi@
As ons aangemeld het, kopieer ons ons lêers met behulp van die volgende opdragte.
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 /
Daarna moet u die /boot/config.txt -lêer wysig en die volgende reël byvoeg.
kern = kernel8.img
Na die herlaai van pi behoort alles goed te werk.
Om te kyk of die nuwe kern suksesvol geïnstalleer is, kan u dit uitvoer
uname -a
bevel