Obsah:

64 -bitová kompilácia jadra RT pre Raspberry Pi 4B.: 5 krokov
64 -bitová kompilácia jadra RT pre Raspberry Pi 4B.: 5 krokov

Video: 64 -bitová kompilácia jadra RT pre Raspberry Pi 4B.: 5 krokov

Video: 64 -bitová kompilácia jadra RT pre Raspberry Pi 4B.: 5 krokov
Video: BigTreeTech - SKR 3 - TMC2130 with Sensorless Homing 2024, Júl
Anonim
64 -bitová kompilácia jadra RT pre Raspberry Pi 4B
64 -bitová kompilácia jadra RT pre Raspberry Pi 4B

Tento tutoriál sa bude zaoberať procesom budovania a inštalácie 64 -bitového jadra v reálnom čase na Raspberry Pi. RT Kernel je rozhodujúci pre plnú funkčnosť ROS2 a ďalších riešení IOT v reálnom čase.

Jadro bolo nainštalované na serveri Raspbian x64, ktorý nájdete tu

Poznámka. Tento návod, aj keď je jednoduchý, vyžaduje základné znalosti operačného systému Linux.

Aj kvôli obmedzeniam tejto platformy chýbajú všetkým odkazom http h. Ak ich chcete opraviť, zjednodušene pridajte „h“do prednej časti odkazu

Zásoby

Počítač s procesorom x64 s operačným systémom Linux

Raspberry Pi 4B s už nainštalovaným Raspbian 64

Pripojenie na internet.

Krok 1: Získanie nástrojov Neccesery Tools

Najprv musíme získať nástroje pre vývojárov neccecery.

Môžete ich získať vykonaním nasledujúcich príkazov v termináli Linux

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

Krok 2: Kompilácia natívnych zostavovacích nástrojov pre krížovú kompiláciu

Ďalším krokom je príprava a kompilácia nástrojov na krížovú kompiláciu nášho jadra.

Prvým nástrojom, ktorý budeme inštalovať, je Binutils, tento návod bol testovaný s binutils verzie 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

Po dokončení konfigurácie musíme program skompilovať pomocou nasledujúcich príkazov

urobiť -jx

sudo vykonať inštaláciu

kde -jx znamená, koľko úloh chcete spustiť, a to paralelne. Pravidlom je, aby to nebolo vyššie ako množstvo vlákien, ktoré váš systém má. (napríklad značka -j16)

a nakoniec musíme cestu exportovať

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

Potom pristúpime k výstavbe a inštalácii 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

Je to rovnaké ako predtým, ako vyrobíme a nainštalujeme náš kompilátor

make all -gcc -jx

sudo make install-gcc

Ak všetko prebehlo hladko podľa príkazu

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

by mal resoult v odpovedi podobnej tejto.

ux-gnu-gcc -v Použitie vstavaných špecifikácií. COLLECT_GCC =/opt/aarch64/bin/aarch64-linux-gnu-gcc COLLECT_LTO_WRAPPER =/opt/aarch64/libexec/gcc/aarch64-linux-gnu/8.4.0/lto-wrapper Cieľ: aarch64-linux-gnu Konfigurované pomocou:./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 Thread model: single gcc version 8.4.0 (GCC)

Krok 3: Oprava jadra a konfigurácia jadra

Teraz je čas získať opravu jadra a RT.

Tento tutoriál bude používať rpi kernel v 5.4 a RT patch RT32. Mne sa táto kombinácia osvedčila. V rôznych verziách by však malo všetko fungovať správne.

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 jadro-out cd linux

potom rozbaľte náplasť.

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

A inicializujte konfiguráciu pre Rpi 4B

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

Ďalej musíme vstúpiť do konfigurácie ponuky

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

Akonáhle to bude potrebné, budeme potrebovať existujúcu konfiguráciu, potom choďte na

Všeobecné -> Preemtion Model a vyberte možnosť Real Time.

než uložíme novú konfiguráciu a opustíme ponuku.

Krok 4: Vytvorenie jadra RT

Teraz je čas na kompiláciu. V závislosti od možností vášho počítača to môže trvať dlho.

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

Ako predtým -jx znamená počet pracovných miest. Po úspešnej kompilácii musíme zabaliť naše jadro a odoslať ho na Raspberry Pi. Aby sme to urobili, vykonáme nasledujúce príkazy.

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

Teraz by naše jadro malo byť v archíve rt-kernel.tgz a pripravené na odoslanie a nainštalovanie.

Krok 5: Inštalácia nového jadra

Najjednoduchší spôsob odoslania nášho jadra na server raspbperry je pomocou scp.

Jednoducho vykonáme nasledujúci príkaz.

scp rt-kernel.tgz pi@:/tmp

Teraz sa musíme prihlásiť k svojmu pí prostredníctvom ssh a rozbaliť naše jadro.

ssh pi@

Keď sme prihlásení, kopírujeme naše súbory pomocou nasledujúcich príkazov.

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 /

Potom zostáva upraviť súbor /boot/config.txt a pridať nasledujúci riadok.

jadro = kernel8.img

Po reštarte počítača by malo všetko fungovať dobre.

Ak chcete skontrolovať, či bolo nové jadro úspešne nainštalované, môžete spustiť

uname -a

príkaz

Odporúča: