Obsah:

64bitová RT kompilace jádra pro Raspberry Pi 4B.: 5 kroků
64bitová RT kompilace jádra pro Raspberry Pi 4B.: 5 kroků

Video: 64bitová RT kompilace jádra pro Raspberry Pi 4B.: 5 kroků

Video: 64bitová RT kompilace jádra pro Raspberry Pi 4B.: 5 kroků
Video: BigTreeTech - SKR 3 - TMC2130 with Sensorless Homing 2024, Červenec
Anonim
64bitová kompilace jádra RT pro Raspberry Pi 4B
64bitová kompilace jádra RT pro Raspberry Pi 4B

Tento tutoriál se bude zabývat procesem vytváření a instalace 64bitového jádra v reálném čase na Raspberry Pi. RT Kernel je zásadní pro plnou funkčnost ROS2 a dalších řešení IOT v reálném čase.

Jádro bylo nainstalováno na Raspbian x64, který lze získat zde

Poznámka. Tento tutoriál, i když přímočarý, vyžaduje základní znalosti operačního systému Linux.

Také kvůli omezením této platformy chybí všechny odkazy http h. Chcete -li je opravit, jednoduše přidejte „h“na začátek odkazu

Zásoby

Počítač s procesorem x64 se systémem Linux

Raspberry Pi 4B s již nainstalovaným Raspbian 64

Připojení k internetu.

Krok 1: Získání nástrojů Neccesery Tools

Nejprve musíme získat nástroje pro vývoj neccecery.

Lze je získat spuštěním následujících příkazů v terminálu 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: Compilng Native Build Tools for Cross Compilation

Dalším krokem je příprava a kompilace nástrojů pro křížovou kompilaci našeho jádra.

Prvním nástrojem, který budeme instalovat, je Binutils, tento tutoriál byl testován s binutils verze 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í konfigurace musíme program zkompilovat pomocí následujících příkazů

udělat -jx

sudo provést instalaci

kde -jx znamená, kolik úloh chcete spustit i Parrarell. Pravidlem je, aby to nebylo vyšší než počet vláken, která váš systém má. (například make -j16)

a nakonec musíme cestu exportovat

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

Poté pokračujeme ve stavbě a instalaci 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

Než to samé, co jsme vytvořili a nainstalovali náš kompilátor

make all -gcc -jx

sudo make install-gcc

Pokud vše proběhlo hladce podle příkazu

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

by měl resoult v odpovědi podobné tomuto.

ux-gnu-gcc -v Použití vestavěných specifikací. COLLECT_GCC =/opt/aarch64/bin/aarch64-linux-gnu-gcc COLLECT_LTO_WRAPPER =/opt/aarch64/libexec/gcc/aarch64-linux-gnu/8.4.0/lto-wrapper Cíl: aarch64-linux-gnu Konfigurováno pomocí:./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 jádra a konfigurace jádra

Nyní je čas získat naši opravu jádra a RT.

Tento tutoriál bude používat jádro rpi v 5.4 a RT patch RT32. Tato kombinace se mi osvědčila. S různými verzemi by však vše mělo fungovat dobře.

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 jádro-out cd linux

pak rozbalte opravu.

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

A inicializujte konfiguraci pro Rpi 4B

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

Dále musíme vstoupit do konfiguračního menu

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

Když se objeví, potřebujeme stávající konfiguraci, pak přejděte na

Obecné -> Preemtion Model a vyberte možnost Real Time.

než uložíme novou konfiguraci a opustíme nabídku.

Krok 4: Budování jádra RT

Nyní je čas na kompilaci. V závislosti na schopnostech vašeho počítače to může trvat dlouho.

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

Jako dříve -jx znamená počet úloh. Po úspěšné kompilaci musíme zabalit naše jádro a odeslat jej na Raspberry Pi. K tomu spustíme následující pří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..

Nyní by naše jádro mělo být v archivu rt-kernel.tgz a připraveno k odeslání a instalaci.

Krok 5: Instalace nového jádra

Nejjednodušší způsob, jak poslat naše jádro do raspbperry, je pomocí scp.

Jednoduše provedeme následující příkaz.

scp rt-kernel.tgz pi@:/tmp

Nyní se musíme přihlásit k našemu pí přes ssh a rozbalit naše jádro.

ssh pi@

Když jsme přihlášeni, kopírujeme naše soubory pomocí následujících příkazů.

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 /

Poté zbývá upravit soubor /boot/config.txt a přidat následující řádek.

jádro = kernel8.img

Po restartu pi by vše mělo fungovat dobře.

Chcete -li zkontrolovat, zda bylo nové jádro úspěšně nainstalováno, můžete spustit

uname -a

příkaz

Doporučuje: