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, Juli
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 -bitnog jezgra u stvarnom vremenu na Raspberry Pi. RT kernel je ključan za potpunu funkcionalnost ROS2 i drugih IOT rješenja u realnom vremenu.

Kernel je instaliran na x64 zasnovanom Raspbianu koji se može dobiti ovdje

Bilješka. Ovaj vodič, iako jednostavan, zahtijeva osnovno znanje o operativnom sistemu Linux.

Zbog ograničenja ove platforme, svim http linkovima nedostaje h. Da biste ih popravili, jednostavno dodajte "h" na prednjoj strani veze

Supplies

PC zasnovan na x64 sa Linuxom

Raspberry Pi 4B sa već instaliranim Raspbian 64

Veza sa 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 jezgra.

Prvi alat koji ćemo instalirati je Binutils Ovaj vodič je testiran sa 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 završetka konfiguracije potrebno je kompajlirati program pomoću sljedećih naredbi

make -jx

sudo make install

gdje -jx znači koliko poslova želite pokrenuti u parrarell -u. Opšte pravilo je da to ne postavite više od količine niti koje vaš sistem ima. (na primjer make -j16)

i na kraju moramo izvesti putanju

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 all -gcc -jx

sudo make install-gcc

Ako je sve išlo glatko slijedeći naredbu

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

trebalo bi 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: Zakrpanje 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 funkcionisala. 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 zakrpu.

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 ući u menuconfig

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

Kada se pokrene, 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 vreme kompilacije. 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 potrebno je 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_ 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šeg kernela 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@

Kada smo prijavljeni, kopiramo naše 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 da uredite /boot/config.txt datoteku i dodate sljedeći red.

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

komanda

Preporučuje se: