Indholdsfortegnelse:

64bit RT kernekompilering til Raspberry Pi 4B.: 5 trin
64bit RT kernekompilering til Raspberry Pi 4B.: 5 trin

Video: 64bit RT kernekompilering til Raspberry Pi 4B.: 5 trin

Video: 64bit RT kernekompilering til Raspberry Pi 4B.: 5 trin
Video: 32-битная против 64-битной системы 2024, Juli
Anonim
64bit RT kernekompilering til Raspberry Pi 4B
64bit RT kernekompilering til Raspberry Pi 4B

Denne vejledning dækker processen med opbygning og installation af 64 bit Real Time Kernel på Raspberry Pi. RT Kernel er afgørende for fuld funktionalitet af ROS2 og andre Real Time IOT -løsninger.

Kerne blev installeret på x64 baseret Raspbian, som kan fås her

Bemærk. Denne vejledning kræver, selvom den er ligetil, grundlæggende viden om Linux -operativsystemet.

På grund af begrænsninger af denne platform mangler alle http -links h. For at rette dem simpelthen tilføj "h" på forsiden af linket

Forbrugsvarer

x64 -baseret pc, der kører Linux

Raspberry Pi 4B med Raspbian 64 allerede installeret

Forbindelse til internettet.

Trin 1: Få Neccesery Tools

Først skal vi tilvælge neccecery dev -værktøjer.

De kan opnås ved at udføre følgende kommandoer 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

Trin 2: Kompilering af indbyggede værktøjer til krydskompilering

Næste trin er at forhåndsforberede og kompilere værktøjer til krydskompilering af vores kerne.

Firs -værktøj, vi installerer, er Binutils, denne vejledning blev testet 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

Efter konfigurationen er færdig, skal vi kompilere programmer ved hjælp af følgende kommandoer

lave -jx

sudo foretag installation

hvor -jx betyder, hvor mange job du vil køre i parrarell. Tommelfingerregel er at lægge den ikke højere end mængden af tråde, dit system har. (f.eks. make -j16)

og endelig skal vi eksportere stien

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

Derefter fortsætter vi med at bygge og installere 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 --with-newlib-uden 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

End det samme som før vi laver og installerer vores compiler

lav alle -gcc -jx

sudo lav install-gcc

Hvis alt gik glat efter kommandoen

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

bør genopfriskes svarende til dette.

ux-gnu-gcc -v Brug af indbyggede 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 Konfigureret med:./configure --prefix =/opt/aarch64 --target = aarch64-linux-gnu --with-newlib-uden 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 model: single gcc version 8.4.0 (GCC)

Trin 3: Patching Kernel og Configuring Kernel

Nu er det tid til at få vores kerne og RT -patch.

Denne vejledning bruger rpi kernel v 5.4 og RT patch RT32. Denne kombination fungerede godt for mig. Alt skulle dog fungere fint med forskellige versioner.

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

pak derefter lappen ud.

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

Og initialiser konfigurationen til Rpi 4B

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

Herefter skal vi gå ind i menukonfigurationen

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

Når det laueres skal vi til eksisterende konfiguration, og derefter gå til

Generelt -> Preemtion Model og vælg Real Time option.

end vi gemmer ny konfiguration og forlader menuen.

Trin 4: Bygning af RT -kerne

Nu er det kompileringstid. Bemærk, at det kan tage lang tid afhængigt af dine pc -muligheder.

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

Som før betyder -jx antal job. Efter vellykket kompilering skal vi pakke vores kerne og sende den til Raspberry Pi. For at gøre dette udfører vi følgende kommandoer.

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

Nu skal vores kerne være inde i rt-kernel.tgz arkiv, og den er klar til at blive sendt og installeret.

Trin 5: Installation af nyt kerne

Den letteste måde at sende vores kerne til raspbperry er ved at bruge scp.

Vi udfører simpelthen følgende kommando.

scp rt-kernel.tgz pi@:/tmp

Nu skal vi logge ind på vores pi via ssh og pakke vores kerne ud.

ssh pi@

Når vi er logget ind, kopierer vi vores filer ved hjælp af følgende kommandoer.

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 /

Derefter er det tilbage at redigere /boot/config.txt -filen og tilføje følgende linje.

kernel = kernel8.img

Efter genstart af pi skulle alt fungere fint.

For at kontrollere, om den nye kerne blev installeret med succes, kan du udføre

uname -a

kommando

Anbefalede: