Kazalo:

64 -bitna zbirka RT jedra za Raspberry Pi 4B.: 5 korakov
64 -bitna zbirka RT jedra za Raspberry Pi 4B.: 5 korakov

Video: 64 -bitna zbirka RT jedra za Raspberry Pi 4B.: 5 korakov

Video: 64 -bitna zbirka RT jedra za Raspberry Pi 4B.: 5 korakov
Video: BigTreeTech - SKR 3 - TMC2130 with Sensorless Homing 2024, November
Anonim
64 -bitna RT jedrna kompilacija za Raspberry Pi 4B
64 -bitna RT jedrna kompilacija za Raspberry Pi 4B

Ta vadnica bo zajemala postopek izdelave in namestitve 64 -bitnega jedra v realnem času na Raspberry Pi. Jedro RT je ključnega pomena za polno funkcionalnost ROS2 in drugih rešitev v realnem času IOT.

Jedro je bilo nameščeno na Raspbianu na osnovi x64, ki ga lahko dobite tukaj

Opomba. Ta vadnica, čeprav preprosta, zahteva osnovno znanje o operacijskem sistemu Linux.

Tudi zaradi omejitev te platforme vsem http povezavam manjka h. Če jih želite popraviti, preprosto dodajte "h" na sprednji strani povezave

Zaloge

računalnik s sistemom x64 z operacijskim sistemom Linux

Raspberry Pi 4B z že nameščenim Raspbian 64

Povezava z internetom.

1. korak: Pridobite orodja Neccesery

Najprej se moramo odločiti za orodja za razvijanje.

Do njih lahko pridete z izvajanjem naslednjih ukazov v terminalu Linux

sudo apt-get install build-bistven libgmp-dev libmpfr-dev libmpc-dev libisl-dev libncurses5-dev bc git-core bison flexsudo apt-get install libncurses-dev libssl-dev

2. korak: Zberite orodja za domačo gradnjo za navzkrižno sestavljanje

Naslednji korak je priprava in sestavljanje orodij za navzkrižno sestavljanje našega jedra.

Prvo orodje, ki ga bomo namestili, je Binutils, ta vadnica je bila preizkušena z binutils različico 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

Po končani konfiguraciji moramo program sestaviti z naslednjimi ukazi

make -jx

sudo make install

kjer -jx pomeni, koliko delovnih mest želite izvesti v parrarell. Splošno pravilo je, da ga ne postavite več kot količino niti, ki jih ima vaš sistem. (na primer make -j16)

in končno moramo pot izvoziti

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

Nato nadaljujemo z gradnjo in namestitvijo 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

Tako kot prej naredimo in namestimo naš prevajalnik

naredi all -gcc -jx

sudo naredi install-gcc

Če je po ukazu vse potekalo brez težav

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

bi morala dobiti podoben odgovor.

ux-gnu-gcc -v Uporaba vgrajenih specifikacij. 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 z:./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: ena različica gcc 8.4.0 (GCC)

3. korak: Zakrpanje jedra in konfiguracija jedra

Zdaj je čas, da dobimo naše jedro in RT popravek.

Ta vadnica bo uporabljala jedro rpi v 5.4 in RT popravek RT32. Ta kombinacija mi je dobro uspela. Vendar bi moralo z različicami vse delovati v redu.

mkdir ~/rpi-jedro

cd ~/rpi-jedro 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

nato odpakirajte obliž.

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

Inicializiranje konfiguracije za Rpi 4B

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

Po tem moramo vstopiti v menuconfig

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

Ko se začne, moramo na obstoječo konfiguracijo, pojdite na

Splošno -> Preemtion Model in izberite možnost Real Time.

potem shranimo novo konfiguracijo in zapustimo meni.

4. korak: Izdelava jedra RT

Zdaj je čas zbiranja. Upoštevajte, da lahko traja veliko časa, odvisno od zmogljivosti računalnika.

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

Kot prej -jx pomeni število delovnih mest. Po uspešni kompilaciji moramo zapakirati naše jedro in ga poslati v Raspberry Pi. Če želite to narediti, izvedemo naslednje ukaze.

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

Zdaj bi moralo biti naše jedro v arhivu rt-kernel.tgz in pripravljeno za pošiljanje in namestitev.

5. korak: Namestitev novega jedra

Najlažji način pošiljanja našega jedra v raspbperry je uporaba scp.

Preprosto izvedemo ukaz follwing.

scp rt-kernel.tgz pi@:/tmp

Zdaj se morate prijaviti v naš pi prek ssh in razpakirati naše jedro.

ssh pi@

Ko smo prijavljeni, svoje datoteke kopiramo z naslednjimi ukazi.

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

Po tem morate le urediti datoteko /boot/config.txt in dodati naslednjo vrstico.

jedro = kernel8.img

Po ponovnem zagonu pi bi moralo vse delovati v redu.

Če želite preveriti, ali je bilo novo jedro uspešno nameščeno, lahko izvedete

uname -a

ukaz

Priporočena: