Sadržaj:

64 -bitna RT Kernel kompilacija za Raspberry Pi 4B.: 5 koraka
64 -bitna RT Kernel kompilacija za Raspberry Pi 4B.: 5 koraka

Video: 64 -bitna RT Kernel kompilacija za Raspberry Pi 4B.: 5 koraka

Video: 64 -bitna RT Kernel kompilacija za Raspberry Pi 4B.: 5 koraka
Video: STM32MP1 3 ЯДРА. МИКРОПРОЦЕССОР + МИКРОКОНТРОЛЛЕР. 2024, Srpanj
Anonim
64 -bitna RT Kernel kompilacija za Raspberry Pi 4B
64 -bitna RT Kernel kompilacija za Raspberry Pi 4B

Ovaj vodič će pokriti proces izgradnje i instalacije 64 -bitne jezgre u stvarnom vremenu na Raspberry Pi. RT Kernel ključan je za potpunu funkcionalnost ROS2 i drugih IOT rješenja u stvarnom vremenu.

Kernel je instaliran na x64 baziran Raspbian koji se može dobiti ovdje

Bilješka. Ovaj vodič, iako jednostavan, zahtijeva osnovno znanje o operacijskom sustavu Linux.

Također zbog ograničenja ove platforme, svim http vezama nedostaje h. Da biste ih popravili, jednostavno dodajte "h" na prednjoj strani veze

Pribor

računalo zasnovano na x64 s Linuxom

Raspberry Pi 4B s već instaliranim Raspbian 64

Veza s internetom.

Korak 1: Nabavite Neccesery alate

Prvo moramo nabaviti potrebne alate za razvoj.

Do njih se može doći izvršavanjem sljedećih naredbi u Linux terminalu

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

Korak 2: Sastavite izvorne alate za izgradnju za unakrsnu kompilaciju

Sljedeći korak je pripremiti i kompajlirati alate za unakrsnu kompilaciju našeg kernela.

Prvi alat koji ćemo instalirati je Binutils, ovaj je vodič testiran s binutils verzijom 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

Nakon dovršetka konfiguracije moramo sastaviti program pomoću sljedećih naredbi

napraviti -jx

sudo make install

gdje -jx znači koliko poslova želite pokrenuti i parrarell. Zlatno pravilo je da ne postavljate više od količine niti koje vaš sustav ima. (na primjer make -j16)

i na kraju moramo izvesti put

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

Zatim nastavljamo s izgradnjom i instalacijom GCC -a

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

Zatim isto kao i prije izrađujemo i instaliramo naš kompajler

napravi sve -gcc -jx

sudo make install-gcc

Ako je sve išlo glatko slijedeći naredbu

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

treba rezultirati u odgovoru sličnom ovome.

ux-gnu-gcc -v Korištenje ugrađenih specifikacija. COLLECT_GCC =/opt/aarch64/bin/aarch64-linux-gnu-gcc COLLECT_LTO_WRAPPER =/opt/aarch64/libexec/gcc/aarch64-linux-gnu/8.4.0/lto-wrapper Cilj: aarch64-linux-gnu Konfigurirano sa:./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 niti: jedna gcc verzija 8.4.0 (GCC)

Korak 3: Zakrpa jezgre i konfiguriranje jezgre

Sada je vrijeme da nabavimo naš kernel i RT zakrpu.

Ovaj vodič će koristiti rpi kernel v 5.4 i RT zakrpu RT32. Ova kombinacija mi je dobro uspjela. Međutim, sve bi trebalo funkcionirati u redu s različitim verzijama.

mkdir ~/rpi-kernel

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

zatim raspakirajte flaster.

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

I početna konfiguracija za Rpi 4B

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

Nakon toga moramo unijeti menuconfig

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

Kad počne, moramo na postojeću konfiguraciju, a zatim idite na

Općenito -> Preemtion Model i odaberite opciju Real Time.

tada spremamo novu konfiguraciju i izlazimo iz izbornika.

Korak 4: Izgradnja RT kernela

Sada je vrijeme za njegovu kompilaciju. Imajte na umu da može potrajati dugo, ovisno o mogućnostima vašeg računala.

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

Kao i prije -jx znači broj poslova. Nakon uspješne kompilacije moramo zapakirati naš kernel i poslati ga na Raspberry Pi. Da bismo to učinili, izvršavamo sljedeće naredbe.

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

Sada bi naše jezgro trebalo biti unutar arhive rt-kernel.tgz i spremno za slanje i instaliranje.

Korak 5: Instaliranje novog kernela

Najlakši način slanja naše jezgre u raspbperry je pomoću scp.

Jednostavno izvršavamo naredbu follwing.

scp rt-kernel.tgz pi@:/tmp

Sada se moramo prijaviti na naš pi putem ssh -a i raspakirati naš kernel.

ssh pi@

Kad smo prijavljeni, kopiramo datoteke pomoću sljedećih naredbi.

cd/tmptar xzf rt -kernel.tgz cd boot sudo cp -rd */boot/cd../lib sudo cp -dr */lib/cd../ prekriva sudo cp -dr */boot/prekriva cd../ broadcom sudo cp -dr bcm* /boot /

Nakon toga preostaje urediti /boot/config.txt datoteku i dodati sljedeći redak.

kernel = kernel8.img

Nakon ponovnog pokretanja pi sve bi trebalo raditi kako treba.

Možete provjeriti je li novo jezgro uspješno instalirano

uname -a

naredba

Preporučeni: