Cuprins:

Compilație kernel RT pe 64 de biți pentru Raspberry Pi 4B.: 5 pași
Compilație kernel RT pe 64 de biți pentru Raspberry Pi 4B.: 5 pași

Video: Compilație kernel RT pe 64 de biți pentru Raspberry Pi 4B.: 5 pași

Video: Compilație kernel RT pe 64 de biți pentru Raspberry Pi 4B.: 5 pași
Video: OMG😱😱😱😱😱..!!!! Ransomware Menyerang..... 2024, Noiembrie
Anonim
Compilație kernel RT pe 64 de biți pentru Raspberry Pi 4B
Compilație kernel RT pe 64 de biți pentru Raspberry Pi 4B

Acest tutorial va acoperi procesul de construire și instalare a kernelului pe 64 de biți în timp real pe Raspberry Pi. RT Kernel este crucial pentru funcționalitatea completă a ROS2 și a altor soluții IOT în timp real.

Kernel a fost instalat pe Raspbian bazat pe x64, care poate fi obținut aici

Notă. Acest tutorial, deși simplu necesită cunoștințe de bază despre sistemul de operare Linux.

De asemenea, din cauza limitărilor acestei platforme, toate linkurile http lipsesc h. Pentru a le remedia simpli, adăugați „h” în partea din față a linkului

Provizii

PC bazat pe x64 care rulează Linux

Raspberry Pi 4B cu Raspbian 64 deja instalat

Conexiune la Internet.

Pasul 1: Obținerea instrumentelor Neccesery

Mai întâi trebuie să optăm pentru instrumentele de dezvoltare neccecery.

Acestea pot fi obținute executând următoarele comenzi în terminalul 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

Pasul 2: Compilarea instrumentelor de construcție native pentru compilare încrucișată

Următorul pas este pregătirea și compilarea instrumentelor pentru compilarea încrucișată a nucleului nostru.

Instrumentul Firs pe care îl vom instala este Binutils, acest tutorial a fost testat cu binutils versiunea 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

După terminarea configurării, trebuie să compilăm programul folosind următoarele comenzi

face -jx

sudo make install

unde -jx înseamnă câte joburi doriți să executați i parrarell. Regula generală este să o puneți nu mai mult decât cantitatea de fire pe care o are sistemul dvs. (de exemplu make -j16)

și în cele din urmă trebuie să exportăm calea

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

Deci continuăm cu construirea și instalarea 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

Decât la fel ca înainte de a crea și instala compilatorul nostru

face all-gcc -jx

sudo make install-gcc

Dacă totul a decurs fără probleme, urmând comanda

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

ar trebui să rezolve în răspuns similar cu acesta.

ux-gnu-gcc -v Utilizarea specificațiilor încorporate. COLLECT_GCC = / opt / aarch64 / bin / aarch64-linux-gnu-gcc COLLECT_LTO_WRAPPER = / opt / aarch64 / libexec / gcc / aarch64-linux-gnu / 8.4.0 / lto-wrapper Țintă: aarch64-linux-gnu Configurat cu:./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 Modelul firului: versiunea gcc unică 8.4.0 (GCC)

Pasul 3: Patching Kernel și Configurarea Kernel

Acum este timpul să ne procurăm nucleul și patch-ul RT.

Acest tutorial va utiliza rpi kernel v 5.4 și RT patch RT32. Această combinație a funcționat bine pentru mine. Cu toate acestea, totul ar trebui să funcționeze bine cu diferite versiuni.

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

apoi despachetați plasturele.

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

Și inițializați configurația pentru Rpi 4B

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

Apoi, trebuie să intrăm în menuconfig

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

Când se lansează, avem nevoie de configurația existentă, apoi accesați

General -> Model de preemțiune și selectați opțiunea în timp real.

decât salvăm o nouă configurație și ieșim din meniu.

Pasul 4: Construirea RT Kernel

Acum este timpul de compilare. Rețineți că poate dura mult timp, în funcție de capacitățile computerului.

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

Ca și înainte -jx înseamnă numărul de locuri de muncă. După o compilare reușită, trebuie să ne împachetăm nucleul și să îl trimitem la Raspberry Pi. Pentru a face acest lucru, executăm următoarele comenzi.

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

Acum, nucleul nostru ar trebui să fie în arhiva rt-kernel.tgz și să fie gata să fie trimis și instalat.

Pasul 5: Instalarea noului nucleu

Cel mai simplu mod de a trimite nucleul nostru la raspbperry este folosind scp.

Executăm pur și simplu următoarea comandă.

scp rt-kernel.tgz pi @: / tmp

Acum trebuie să ne conectăm la pi-ul nostru prin ssh și să ne despachetăm nucleul.

ssh pi @

Când ne conectăm, ne copiem fișierele folosind următoarele comenzi.

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 /

După aceea, ceea ce rămâne de făcut este să editați fișierul /boot/config.txt și să adăugați următoarea linie.

kernel = kernel8.img

După repornirea pi, totul ar trebui să funcționeze bine.

Pentru a verifica dacă noul kernel a fost instalat cu succes, puteți executa

uname -a

comanda

Recomandat: