Turinys:

64 bitų RT branduolio rinkinys, skirtas „Raspberry Pi 4B“.: 5 žingsniai
64 bitų RT branduolio rinkinys, skirtas „Raspberry Pi 4B“.: 5 žingsniai

Video: 64 bitų RT branduolio rinkinys, skirtas „Raspberry Pi 4B“.: 5 žingsniai

Video: 64 bitų RT branduolio rinkinys, skirtas „Raspberry Pi 4B“.: 5 žingsniai
Video: SKR 1.4 - TMC2130 SPI 2024, Liepa
Anonim
64 bitų RT branduolio rinkinys, skirtas „Raspberry Pi 4B“
64 bitų RT branduolio rinkinys, skirtas „Raspberry Pi 4B“

Ši pamoka apims 64 bitų realaus laiko branduolio kūrimo ir diegimo procesą „Raspberry Pi“. RT branduolys yra labai svarbus visam ROS2 ir kitų realiojo laiko IOT sprendimų funkcionalumui.

Branduolys buvo įdiegtas x64 pagrindu Raspbian, kurį galite rasti čia

Pastaba. Ši pamoka, nors ir paprasta, reikalauja pagrindinių žinių apie „Linux“operacinę sistemą.

Taip pat dėl šios platformos apribojimų visose http nuorodose trūksta h. Norėdami juos pataisyti, tiesiog pridėkite „h“nuorodos priekyje

Prekės

x64 pagrįstas kompiuteris, kuriame veikia „Linux“

„Raspberry Pi 4B“su „Raspbian 64“jau įdiegta

Prisijungimas prie interneto.

1 žingsnis: įsigykite nešiojamųjų įrankių

Pirmiausia turime pasirinkti neccecery dev įrankius.

Juos galima gauti vykdant šias komandas „Linux“terminale

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

2 veiksmas: vietinių kūrimo įrankių, skirtų kryžminiam kompiliavimui, sudarymas

Kitas žingsnis yra paruošti ir surinkti įrankius kryžminiam mūsų branduolio kompiliavimui.

„Firs“įrankis, kurį įdiegsime, yra „Binutils“, ši pamoka buvo išbandyta naudojant „binutils“versiją 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-išjungti-nls

Baigę konfigūraciją, turime surinkti programą naudodami šias komandas

padaryti -jx

sudo make install

kur -jx reiškia, kiek darbų norite atlikti i parrarell. Nykščio taisyklė yra tai, kad jis neturėtų būti didesnis nei siūlų kiekis jūsų sistemoje. (pvz., padaryti -j16)

ir galiausiai turime eksportuoti kelią

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

Toliau tęsiame GCC kūrimą ir montavimą

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. --disable-libssp --disable-decimal-float / --disable-libquadmath --disable-libvtv --disable-libgomp --disable-libatomic / --enable-languages = c --disable-multilib

Ne tas pats, kas prieš tai, kai kuriame ir diegiame kompiliatorių

padaryti all -gcc -jx

sudo make install-gcc

Jei viskas vyko sklandžiai vykdant komandą

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

turėtų sulaukti panašios reakcijos.

ux-gnu-gcc -v Integruotų specifikacijų naudojimas. COLLECT_GCC =/opt/aarch64/bin/aarch64-linux-gnu-gcc COLLECT_LTO_WRAPPER =/opt/aarch64/libexec/gcc/aarch64-linux-gnu/8.4.0/lto-wrapper Tikslas: aarch64-linux-gnu Konfigūruota naudojant:./configure --prefix =/opt/aarch64 --target = aarch64-linux-gnu --with-newlib-be antraščių --disable-nls --disable-shared --disable-threads --disable-libssp --disable-decimal-float --disable-libquadmath --disable-libvtv --disable-libgomp --disable-libatomic --enable-languages = c --disable-multilib Temos modelis: vieno gcc 8.4.0 versija (GCC)

3 veiksmas: branduolio pataisymas ir branduolio konfigūravimas

Dabar atėjo laikas gauti mūsų branduolį ir RT pataisą.

Ši pamoka naudos rpi branduolį v 5.4 ir RT pataisą RT32. Šis derinys man puikiai tiko. Tačiau su skirtingomis versijomis viskas turėtų veikti gerai.

mkdir ~/rpi-branduolys

cd ~/rpi-branduolio git klonas 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 branduolio išvesties cd linux

tada išpakuokite pleistrą.

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

Ir inicijuokite „Rpi 4B“konfigūraciją

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

Po to turime įvesti meniu konfigūraciją

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

Kai jis paleidžiamas, mums reikia esamos konfigūracijos, tada eikite į

Bendra -> Preemtion Model ir pasirinkite Real Time parinktį.

nei išsaugome naują konfigūraciją ir išeiname iš meniu.

4 žingsnis: RT branduolio kūrimas

Dabar jo surinkimo laikas. Atminkite, kad tai gali užtrukti ilgai, atsižvelgiant į kompiuterio galimybes.

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

Kaip ir anksčiau, -jx reiškia darbo vietų skaičių. Po sėkmingo surinkimo turime supakuoti savo branduolį ir nusiųsti jį į „Raspberry Pi“. Norėdami tai padaryti, vykdome šias komandas.

eksportuoti INSTALL_MOD_PATH = ~/rpi-branduolys/rt-kernelexport INSTALL_DTBS_PATH = ~/rpi-branduolys/rt-kernelmake O =../kernel-out/ARCH = arm64 CROSS_COMPILE = aarch64-linux-gnu- modules_install dp.. out/arch/arm64/boot/Image../rt-kernel/boot/kernel8.imgcd $ INSTALL_MOD_PATHtar czf../rt-kernel.tgz *cd..

Dabar mūsų branduolys turėtų būti rt-kernel.tgz archyve ir paruoštas siųsti ir įdiegti.

5 veiksmas: įdiekite naują branduolį

Lengviausias būdas nusiųsti mūsų branduolį į raspbperry yra naudojant scp.

Mes tiesiog vykdome šią komandą.

scp rt-kernel.tgz pi@:/tmp

Dabar turime prisijungti prie savo pi per ssh ir išpakuoti branduolį.

ssh pi@

Prisijungę mes nukopijuojame failus naudodami šias komandas.

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 /

Po to belieka redaguoti /boot/config.txt failą ir pridėti šią eilutę.

branduolys = branduolys8.img

Iš naujo paleidus „Pi“, viskas turėtų veikti gerai.

Norėdami patikrinti, ar naujas branduolys buvo sėkmingai įdiegtas, galite paleisti

uname -a

komandą

Rekomenduojamas: