Innholdsfortegnelse:

64 -biters RT -kjernekompilering for Raspberry Pi 4B.: 5 trinn
64 -biters RT -kjernekompilering for Raspberry Pi 4B.: 5 trinn

Video: 64 -biters RT -kjernekompilering for Raspberry Pi 4B.: 5 trinn

Video: 64 -biters RT -kjernekompilering for Raspberry Pi 4B.: 5 trinn
Video: РАДУЖНЫЕ ДРУЗЬЯ — КАЧКИ?! НЕЗАКОННЫЕ Эксперименты VR! 2024, Juli
Anonim
64 -biters RT -kjernekompilering for Raspberry Pi 4B
64 -biters RT -kjernekompilering for Raspberry Pi 4B

Denne opplæringen vil dekke byggeprosessen og installasjonen av 64 -biters sanntidskerne på Raspberry Pi. RT -kjernen er avgjørende for full funksjonalitet til ROS2 og andre sanntids IOT -løsninger.

Kernel ble installert på x64 -basert Raspbian som du kan få her

Merk. Denne opplæringen krever ganske enkelt grunnleggende kunnskap om Linux -operativsystemet.

På grunn av begrensninger av denne plattformen mangler alle http -lenker h. For å fikse dem, legg til "h" foran på lenken

Rekvisita

x64 -basert PC som kjører Linux

Raspberry Pi 4B med Raspbian 64 allerede installert

Tilkobling til Internett.

Trinn 1: Få nødvendige verktøy

Først må vi velge verktøy for nødvendig utvikling.

De kan oppnås ved å utfø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

Trinn 2: Kompilering av opprinnelige verktøy for krysssamling

Neste trinn er å forhåndsforberede og kompilere verktøy for krysskompilering av kjernen vår.

Firs -verktøyet vi skal installere er Binutils, denne opplæringen ble testet med binutils versjon 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

Etter at konfigurasjonen er fullført, må vi kompilere program ved å bruke følgende kommandoer

lage -jx

sudo gjør install

hvor -jx betyr hvor mange jobber du vil kjøre i parrarell. Tommelfingerregelen er å si at den ikke er høyere enn mengden tråder systemet har. (for eksempel make -j16)

og til slutt må vi eksportere banen

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

Da fortsetter vi med bygging og installasjon av 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-uten-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

Enn det samme som før vi lager og installerer kompilatoren vår

lage all -gcc -jx

sudo lag install-gcc

Hvis alt gikk greit etter kommandoen

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

bør besvare svar på lignende måte som dette.

ux-gnu-gcc -v Bruker innebygde spesifikasjoner. 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 Konfigurert med:./configure --prefix =/opt/aarch64 --target = aarch64-linux-gnu-med-newlib-uten overskrifter --disable-nls --disable-shared --disable-threads --disable-libssp --disable-desimal-float --disable-libquadmath --disable-libvtv --disable-libgomp --disable-libatomic-enable-languages = c --disable-multilib Trådmodell: enkelt gcc versjon 8.4.0 (GCC)

Trinn 3: Patching Kernel og Configuring Kernel

Nå er det på tide å få kjernen og RT -oppdateringen vår.

Denne opplæringen bruker rpi -kjerne v 5.4 og RT -oppdatering RT32. Denne kombinasjonen fungerte bra for meg. Alt bør imidlertid fungere fint med forskjellige versjoner.

mkdir ~/rpi-kjernen

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

pakk deretter ut lappen.

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

Og initialiser konfigurasjonen for Rpi 4B

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

Etter dette må vi gå inn i menykonfigurasjonen

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

Når det roser må vi til eksisterende konfigurasjon, og deretter gå til

Generelt -> Forhåndsmodell og velg alternativet Sanntid.

enn vi lagrer ny konfigurasjon og går ut av menyen.

Trinn 4: Bygg RT -kjerne

Nå er kompileringstiden. Vær oppmerksom på at det kan ta lang tid, avhengig av PC -funksjonene.

lage -jx O =../ kjerne-ut/ ARCH = arm64 CROSS_COMPILE = aarch64-linux-gnu-

Som før betyr -jx antall jobber. Etter vellykket kompilering må vi pakke kjernen vår og sende den til Raspberry Pi. For å gjøre dette utfø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_installp.. out/arch/arm64/boot/Image../rt-kernel/boot/kernel8.imgcd $ INSTALL_MOD_PATHtar czf../rt-kernel.tgz *cd..

Nå skal kjernen vår være inne i rt-kernel.tgz-arkivet og den er klar til å bli sendt og installert.

Trinn 5: Installere nytt kjerne

Den enkleste måten å sende kjernen vår til raspbperry er ved å bruke scp.

Vi utfører ganske enkelt følgende kommando.

scp rt-kernel.tgz pi@:/tmp

Nå må vi logge inn på vår pi via ssh og pakke ut kjernen vår.

ssh pi@

Når vi er logget inn, kopierer vi filene våre med 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 /

Etter det er det igjen å redigere /boot/config.txt -filen og legge til følgende linje.

kjerne = kernel8.img

Etter omstart av pi burde alt fungere fint.

For å sjekke om den nye kjernen ble installert vellykket kan du utføre

uname -a

kommando

Anbefalt: