Taula de continguts:
- Subministraments
- Pas 1: Obtenir eines de Neccesery
- Pas 2: Compilar eines de compilació natives per a la compilació creuada
- Pas 3: Patching del nucli i configuració del nucli
- Pas 4: Construir el nucli RT
- Pas 5: Instal·lació del nucli nou
Vídeo: Compilació del nucli RT de 64 bits per a Raspberry Pi 4B.: 5 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:11
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:
Configuració de bits de fusibles del microcontrolador AVR. Creació i càrrega a la memòria flash del microcontrolador del programa LED intermitent: 5 passos
Configuració de bits de fusibles del microcontrolador AVR. Creació i càrrega a la memòria flash del microcontrolador del programa LED intermitent: en aquest cas, crearem un programa senzill en codi C i el gravarem a la memòria del microcontrolador. Escriurem el nostre propi programa i compilarem el fitxer hexadecimal, utilitzant Atmel Studio com a plataforma de desenvolupament integrada. Configurarem fusible bi
Cable d'àudio aïllat per al nucli coclear CP800: 9 passos
Cable d'àudio aïllat per al nucli coclear CP800: aquest objectiu està dissenyat per proporcionar una connexió segura de la sortida d'àudio del telèfon o la tauleta al processador d'implants coclears Nucleus CP800. Podeu comprar un adaptador de cable de fàbrica a un preu aproximat de 120 dòlars o el podeu crear vosaltres mateixos al cost d’uns 1 dòlar
Wifi Ducky (* compilació per a usuaris de Mac): 6 passos
Wifi Ducky (* compilació per a usuaris de Mac): Preneu el control d’un ordinador connectant aquest dispositiu al port USB. Llista de parts: ✔ Arduino Pro Micro✔ D1 Mini NodeMCU✔ Arduino IDE✔ * Convertidor d’adaptador OTG Micro USB mascle a USB femella opcional ✔ Wire: aquest tutorial està enfocat als usuaris de Mac. Hi ha plens
Compilació de MadMAC: 4 passos
Compilació de MadMAC: breu instructiu per als paranoics en la compilació de MadMAC
Solució d'un IBook G4 trencat amb problemes de pànic del nucli de l'aeroport: 4 passos
Solucionant un IBook G4 trencat amb problemes de pànic del nucli aeroportuari: Hola a tothom! Finalment he aconseguit una cosa que val la pena fer-ne una instrucció sobre :-) Probablement esteu aquí perquè el vostre good'ol iBook va començar a actuar estrany després de l'actualització de Mac OS 10.4. 8 a 10.4.9. De la manera que sempre obteniu ke