Taula de continguts:

Compilació del nucli RT de 64 bits per a Raspberry Pi 4B.: 5 passos
Compilació del nucli RT de 64 bits per a Raspberry Pi 4B.: 5 passos

Vídeo: Compilació del nucli RT de 64 bits per a Raspberry Pi 4B.: 5 passos

Vídeo: Compilació del nucli RT de 64 bits per a Raspberry Pi 4B.: 5 passos
Vídeo: Marlin Firmware - VScode PlatformIO Install - Build Basics 2024, Desembre
Anonim
Compilació del nucli RT de 64 bits per a Raspberry Pi 4B
Compilació del nucli RT de 64 bits per a Raspberry Pi 4B

Aquest tutorial tractarà sobre el procés de construcció i instal·lació del nucli en temps real de 64 bits al Raspberry Pi. RT Kernel és crucial per a la plena funcionalitat de ROS2 i altres solucions IOT en temps real.

El nucli es va instal·lar a Raspbian basat en x64 que es pot obtenir aquí

Nota. Tot i que aquest tutorial requereix coneixements bàsics del sistema operatiu Linux.

A causa de les limitacions d’aquesta plataforma, a tots els enllaços http els falta h. Per solucionar-los, afegiu "h" a la part frontal de l'enllaç

Subministraments

PC basat en x64 amb Linux

Raspberry Pi 4B amb Raspbian 64 ja instal·lat

Connexió a Internet.

Pas 1: Obtenir eines de Neccesery

Primer hem d’optar per eines de desenvolupament de neccecery.

Es poden obtenir executant les ordres següents al terminal 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

Pas 2: Compilar eines de compilació natives per a la compilació creuada

El següent pas és preparar i compilar eines per a la compilació creuada del nostre nucli.

L'eina Firs que instal·larem és Binutils, aquest tutorial s'ha provat amb la versió 2.35 de binutils.

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

Un cop finalitzada la configuració, hem de compilar el programa mitjançant les ordres següents

fer -jx

sudo make install

on -jx significa quantes feines voleu executar i parrarell. La regla general és posar-la com a mínim a la quantitat de fils que té el vostre sistema. (per exemple make -j16)

i finalment hem d'exportar el camí

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

Del que procedim a la construcció i instal·lació de 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

Més que el mateix que abans fabriquem i instal·lem el nostre compilador

fes all-gcc -jx

sudo make install-gcc

Si tot anava bé seguint l’ordre

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

hauria de resoldre en una resposta similar a aquesta.

ux-gnu-gcc -v Utilitzant especificacions integrades. COLLECT_GCC = / opt / aarch64 / bin / aarch64-linux-gnu-gcc COLLECT_LTO_WRAPPER = / opt / aarch64 / libexec / gcc / aarch64-linux-gnu / 8.4.0 / lto-wrapper Objectiu: aarch64-linux-gnu Configurat amb:./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 Model de fil: versió gcc única 8.4.0 (GCC)

Pas 3: Patching del nucli i configuració del nucli

Ara és hora d’obtenir el nostre nucli i el pegat RT.

Aquest tutorial utilitzarà el nucli rpi v 5.4 i el pegat RT32. Aquesta combinació em va funcionar bé. Tot i això, tot hauria de funcionar bé amb diferents versions.

mkdir ~ / rpi-kernel

cd ~ / rpi-kernel git clon 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

després desempaqueteu el pegat.

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

I inicialitzeu la configuració per a Rpi 4B

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

Després d'això, hem d'entrar al menuconfig

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

Quan es posi en marxa, necessitem la configuració existent i aneu a

General -> Model de prevenció i seleccioneu l'opció en temps real.

que desem la configuració nova i sortim del menú.

Pas 4: Construir el nucli RT

Ara és el moment de la compilació. Tingueu en compte que pot trigar molt de temps en funció de les capacitats del vostre PC.

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

Com abans -jx significa el nombre de feines. Després de la compilació, hem d’empaquetar el nucli i enviar-lo a Raspberry Pi. Per fer-ho executem les següents ordres.

exporta INSTALL_MOD_PATH = ~ / rpi-kernel / rt-kernelexport INSTALL_DTBS_PATH = ~ / rpi-kernel / rt-kernelmake O =.. / kernel-out / ARCH = arm64 CROSS_COMPILE = aarch64-linux-gnuern-modules_install.. dtbs_install out / arch / arm64 / boot / Image../rt-kernel/boot/kernel8.imgcd $ INSTALL_MOD_PATHtar czf../rt-kernel.tgz * cd..

Ara el nostre nucli hauria d'estar dins de l'arxiu rt-kernel.tgz i estar a punt per ser enviat i instal·lat.

Pas 5: Instal·lació del nucli nou

La forma més senzilla d’enviar el nostre nucli a raspbperry és mitjançant l’ús de scp.

Simplement executem l’ordre següent.

scp rt-kernel.tgz pi @: / tmp

Ara hem d’iniciar sessió al nostre pi mitjançant ssh i descomprimir el nostre nucli.

ssh pi @

Quan inicieu la sessió, copiem els nostres fitxers mitjançant les ordres següents.

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 /

Després d'això, el que queda per fer és editar el fitxer /boot/config.txt i afegir la següent línia.

nucli = nucli8.img

Després de reiniciar pi, tot hauria de funcionar bé.

Per comprovar si el nucli nou s'ha instal·lat correctament, podeu executar-lo

uname -a

comandament

Recomanat: