Inhoudsopgave:
- Benodigdheden
- Stap 1: Benodigd gereedschap verkrijgen
- Stap 2: Native Build-tools samenstellen voor cross-compilatie
- Stap 3: Kernel patchen en kernel configureren
- Stap 4: RT-kernel bouwen
- Stap 5: Nieuwe kernel installeren
Video: 64-bits RT-kernelcompilatie voor Raspberry Pi 4B: 5 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
Deze tutorial behandelt het proces van het bouwen en installeren van 64 bit Real Time Kernel op Raspberry Pi. RT Kernel is cruciaal voor de volledige functionaliteit van ROS2 en andere realtime IOT-oplossingen.
Kernel is geïnstalleerd op op x64 gebaseerde Raspbian die hier kan worden verkregen
Opmerking. Deze tutorial, hoewel eenvoudig, vereist basiskennis van het Linux-besturingssysteem.
Mede door beperkingen van dit platform missen alle http-links h. Om ze eenvoudig op te lossen, voegt u "h" toe aan de voorkant van de link
Benodigdheden
x64-gebaseerde pc met Linux
Raspberry Pi 4B met Raspbian 64 al geïnstalleerd
Verbinding met internet.
Stap 1: Benodigd gereedschap verkrijgen
Eerst moeten we neccecery dev-tools gebruiken.
Ze kunnen worden verkregen door de volgende opdrachten uit te voeren in de Linux-terminal:
sudo apt-get install build-essentiële libgmp-dev libmpfr-dev libmpc-dev libisl-dev libncurses5-dev bc git-core bison flexsudo apt-get install libncurses-dev libssl-dev
Stap 2: Native Build-tools samenstellen voor cross-compilatie
De volgende stap is het voorbereiden en compileren van tools voor cross-compilatie van onze kernel.
De eerste tool die we gaan installeren is Binutils. Deze tutorial is getest met binutils versie 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 -- --disable-nls
Nadat de configuratie is voltooid, moeten we het programma compileren met de volgende opdrachten:
maak -jx
sudo make install
waarbij -jx betekent hoeveel taken u wilt uitvoeren i parrarell. Vuistregel is om het niet hoger te stellen dan het aantal threads dat uw systeem heeft. (maak bijvoorbeeld -j16)
en tot slot moeten we het pad exporteren
export PATH=$PATH:/opt/aarch64/bin/
Dan gaan we verder met het bouwen en installeren 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 --with-newlib --without-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
Dan hetzelfde als voorheen maken en installeren we onze compiler
maak all-gcc -jx
sudo make install-gcc
Als alles soepel verliep volgens opdracht
/opt/aarch64/bin/aarch64-linux-gnu-gcc -v
zou een soortgelijke reactie moeten opleveren.
ux-gnu-gcc -v Ingebouwde specificaties gebruiken. 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 Geconfigureerd met:./configure --prefix=/opt/aarch64 --target=aarch64-linux-gnu --with-newlib --without-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 Threadmodel: enkele gcc-versie 8.4.0 (GCC)
Stap 3: Kernel patchen en kernel configureren
Nu is het tijd om onze kernel en RT-patch te krijgen.
Deze tutorial gebruikt rpi kernel v 5.4 en RT patch RT32. Deze combinatie werkte goed voor mij. Alles zou echter goed moeten werken met verschillende versies.
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 vervolgens de pleister uit.
gzip -cd../patch-5.4.54-rt32.patch.gz | patch -p1 --verbose
En initialiseer de configuratie voor Rpi 4B
make O=../kernel-out/ ARCH=arm64 CROSS_COMPILE=/opt/aarch64/bin/aarch64-linux-gnubcm2711_defconfig
Hierna moeten we de menuconfig. invoeren
make O=../kernel-out/ ARCH=arm64 CROSS_COMPILE=/opt/aarch64/bin/aarch64-linux-gnu- menuconfig
Wanneer het start, moeten we naar de bestaande configuratie gaan, ga dan naar
Algemeen -> Voorkoopmodel en selecteer de optie Realtime.
dan slaan we de nieuwe configuratie op en verlaten we het menu.
Stap 4: RT-kernel bouwen
Nu is het compilatietijd. Houd er rekening mee dat het lang kan duren, afhankelijk van de mogelijkheden van uw pc.
make -jx O=../kernel-out/ ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
Zoals eerder betekent -jx aantal banen. Na een succesvolle compilatie moeten we onze kernel inpakken en naar Raspberry Pi sturen. Om dit te doen voeren we de volgende commando's uit.
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_installcp-../ out/arch/arm64/boot/Image../rt-kernel/boot/kernel8.imgcd $INSTALL_MOD_PATHtar czf../rt-kernel.tgz *cd..
Nu zou onze kernel in het rt-kernel.tgz-archief moeten staan en klaar om te worden verzonden en geïnstalleerd.
Stap 5: Nieuwe kernel installeren
De gemakkelijkste manier om onze kernel naar raspbperry te sturen is door scp te gebruiken.
We voeren eenvoudig het volgende commando uit.
scp rt-kernel.tgz pi@:/tmp
Nu moeten we inloggen op onze pi via ssh en onze kernel uitpakken.
ssh pi@
Wanneer we zijn ingelogd, kopiëren we onze bestanden met behulp van de volgende opdrachten.
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 hoeft u alleen nog het /boot/config.txt-bestand te bewerken en de volgende regel toe te voegen.
kernel=kernel8.img
Na het herstarten van pi zou alles goed moeten werken.
Om te controleren of de nieuwe kernel met succes is geïnstalleerd, kunt u uitvoeren:
uname -a
opdracht
Aanbevolen:
Installatie voor externe Bluetooth GPS-provider voor Android-apparaten: 8 stappen
Installatie voor externe Bluetooth GPS-provider voor Android-apparaten: deze instructable legt uit hoe u uw eigen externe Bluetooth-compatibele GPS voor uw telefoon kunt maken, wat dan ook voor ongeveer $ 10. Materiaallijst: NEO 6M U-blox GPSHC-05 bluetooth-module Kennis van interface Blutooth Low energy-modulesArdui
Idee voor doe-het-zelf-activiteit voor weerstations voor 12+ jaar: 4 stappen
Idee voor doe-het-zelf-weerstationactiviteit voor 12-plussers: in deze activiteit zullen deelnemers hun weerstation opzetten, de lucht in sturen en de opnames (licht, temperatuur, vochtigheid) in realtime volgen via de Blynk-app. Bovendien leert u hoe u de geregistreerde waarden publiceert
Systeem voor het bewaken van de luchtkwaliteit voor fijnstofverontreiniging: 4 stappen
Systeem voor monitoring van luchtkwaliteit voor fijnstofverontreiniging: INTRO: 1 In dit project laat ik zien hoe ik een deeltjesdetector bouw met dataweergave, databack-up op SD-kaart en IOT. Visueel geeft een neopixels ringdisplay de luchtkwaliteit aan. 2 Luchtkwaliteit is een steeds belangrijker zorg t
Relaisbord voor Arduino voor minder dan $8: 5 stappen
Relaisbord voor Arduino voor minder dan $8.: Hallo vrienden, vandaag ga ik je vertellen hoe je een relaisbord voor Arduino maakt voor minder dan $8. In dit circuit gaan we geen IC of transistor gebruiken. Dus laten we het doen
3.3V Mod voor ultrasone sensoren (bereid HC-SR04 voor 3.3V Logic op ESP32/ESP8266, Particle Photon, enz.): 4 stappen
3.3V Mod voor ultrasone sensoren (bereid HC-SR04 voor 3.3V Logic op ESP32/ESP8266, Particle Photon, enz.): TL;DR: Knip op de sensor het spoor naar de Echo-pin en sluit het opnieuw aan met een spanningsdeler (Echo trace -> 2.7kΩ -> Echo pin -> 4.7kΩ -> GND). Bewerken: Er is enige discussie geweest over de vraag of de ESP8266 daadwerkelijk 5V-tolerant is op GPIO in