Innehållsförteckning:

64 -bitars RT -kärnkompilering för Raspberry Pi 4B.: 5 steg
64 -bitars RT -kärnkompilering för Raspberry Pi 4B.: 5 steg

Video: 64 -bitars RT -kärnkompilering för Raspberry Pi 4B.: 5 steg

Video: 64 -bitars RT -kärnkompilering för Raspberry Pi 4B.: 5 steg
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, November
Anonim
64 -bitars RT -kärnkompilering för Raspberry Pi 4B
64 -bitars RT -kärnkompilering för Raspberry Pi 4B

Denna handledning kommer att omfatta byggprocessen och installationen av 64 -bitars realtidskärna på Raspberry Pi. RT -kärnan är avgörande för att ROS2 och andra IOT -lösningar i realtid ska fungera fullt ut.

Kärnan installerades på x64 -baserad Raspbian som kan erhållas här

Notera. Denna handledning kräver visserligen grundläggande kunskap om Linux -operativsystemet.

På grund av begränsningar av denna plattform saknar alla http -länkar h. För att fixa dem, lägg till "h" längst fram på länken

Tillbehör

x64 -baserad dator som kör Linux

Raspberry Pi 4B med Raspbian 64 redan installerat

Anslutning till Internet.

Steg 1: Skaffa nödvändiga verktyg

Först måste vi välja verktyg för behovsutveckling.

De kan erhållas genom att köra följande kommandon i Linux -terminalen

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

Steg 2: Kompilera inbyggda byggverktyg för tvärkompilering

Nästa steg är att förbereda och kompilera verktyg för korskompilering av vår kärna.

Firs -verktyget vi kommer att installera är Binutils denna handledning testades med binutils version 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

När konfigurationen är klar måste vi kompilera program med följande kommandon

gör -jx

sudo gör installationen

där -jx betyder hur många jobb du vill köra i parrarell. Tumregel är att den inte ska vara högre än antalet trådar som ditt system har. (till exempel make -j16)

och slutligen måste vi exportera banan

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

Än så fortsätter vi med att bygga och installera 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-med-newlib-utan 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

Än samma som innan vi gör och installerar vår kompilator

gör all -gcc -jx

sudo gör install-gcc

Om allt gick smidigt efter kommandot

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

borde återanvända i svar liknande detta.

ux-gnu-gcc -v Använda inbyggda specifikationer. COLLECT_GCC =/opt/aarch64/bin/aarch64-linux-gnu-gcc COLLECT_LTO_WRAPPER =/opt/aarch64/libexec/gcc/aarch64-linux-gnu/8.4.0/lto-wrapper Mål: aarch64-linux-gnu Konfigurerad med:./configure --prefix =/opt/aarch64 --target = aarch64-linux-gnu-med-newlib-utan 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 Trådmodell: enda gcc-version 8.4.0 (GCC)

Steg 3: Patching Kernel och Configuring Kernel

Nu är det dags att skaffa vår kärna och RT -patch.

Denna handledning kommer att använda rpi -kärnan v 5.4 och RT -patch RT32. Denna kombination fungerade bra för mig. Men allt borde fungera bra med olika versioner.

mkdir ~/rpi-kärna

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

packa sedan upp plåstret.

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

Och initiera konfiguration för Rpi 4B

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

Efter detta måste vi gå in i menykonfigurationen

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

När det lauches behöver vi befintlig konfiguration, gå sedan till

Allmänt -> Preemtion Model och välj Real Time -alternativ.

än vi sparar ny konfiguration och lämnar menyn.

Steg 4: Bygg RT -kärna

Nu är det sammanställningstid. Observera att det kan ta lång tid beroende på datorns funktioner.

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

Som tidigare betyder -jx antal jobb. Efter framgångsrik sammanställning måste vi packa vårt kärna och skicka det till Raspberry Pi. För att göra detta kör vi följande kommandon.

export 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..

Nu ska vår kärna vara inne i rt-kernel.tgz-arkivet och den är redo att skickas och installeras.

Steg 5: Installera nytt kärna

Det enklaste sättet att skicka vår kärna till raspbperry är med scp.

Vi utför helt enkelt följande kommando.

scp rt-kernel.tgz pi@:/tmp

Nu måste vi logga in på vår pi via ssh och packa upp vårt kärna.

ssh pi@

När vi är inloggade kopierar vi våra filer med följande kommandon.

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 /

Därefter återstår att redigera filen /boot/config.txt och lägga till följande rad.

kernel = kernel8.img

Efter omstart av pi borde allt fungera bra.

För att kontrollera om den nya kärnan har installerats framgångsrikt kan du köra

uname -a

kommando

Rekommenderad: