Turinys:
- Prekės
- 1 žingsnis: įsigykite nešiojamųjų įrankių
- 2 veiksmas: vietinių kūrimo įrankių, skirtų kryžminiam kompiliavimui, sudarymas
- 3 veiksmas: branduolio pataisymas ir branduolio konfigūravimas
- 4 žingsnis: RT branduolio kūrimas
- 5 veiksmas: įdiekite naują branduolį
Video: 64 bitų RT branduolio rinkinys, skirtas „Raspberry Pi 4B“.: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Š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:
Visas „Python“žiniatinklio sąsajos rinkinys, skirtas „PhidgetSBC3“: 6 veiksmai
Visas „Python“žiniatinklio sąsajos rinkinys, skirtas „PhidgetSBC3“: „PhidgetSBC3“plokštė yra visiškai funkcionalus vienos plokštės kompiuteris, kuriame veikia „Debain Linux“. Jis panašus į aviečių Pi, tačiau turi 8 analoginius jutiklių įėjimus ir 8 skaitmeninius įėjimus bei 8 skaitmeninius išėjimus. Jis pristatomas kartu su žiniatinklio serveriu ir žiniatinklio programa, skirta
„Arduino Nano“-MMA8452Q 3 ašių 12 bitų/8 bitų skaitmeninio akselerometro pamoka: 4 žingsniai
„Arduino Nano“-MMA8452Q 3 ašių 12 bitų/8 bitų skaitmeninio pagreičio matuoklio pamoka: „MMA8452Q“yra protingas, mažos galios, trijų ašių, talpinis, mikromašinis pagreičio matuoklis, turintis 12 bitų skiriamąją gebą. Lanksčios vartotojo programuojamos parinktys pateikiamos naudojant pagreičio matuoklio įterptas funkcijas, kurias galima sukonfigūruoti dviem pertraukomis
Raspberry Pi MMA8452Q 3 ašių 12 bitų/8 bitų skaitmeninio akselerometro „Python“vadovėlis: 4 žingsniai
„Raspberry Pi MMA8452Q“3 ašių 12 bitų/8 bitų skaitmeninio akselerometro „Python“vadovėlis: „MMA8452Q“yra protingas, mažos galios, trijų ašių, talpinis, mikromechaninis pagreičio matuoklis, turintis 12 bitų skiriamąją gebą. Lanksčios vartotojo programuojamos parinktys pateikiamos naudojant pagreičio matuoklio įterptas funkcijas, kurias galima sukonfigūruoti dviem pertraukomis
„HacKIT“: „Civic Privacy Hard“(nusidėvėjimo) rinkinys, skirtas įsilaužimui į „Alexa“, „Google“ir „Siri“: 4 žingsniai
„HacKIT“: „Civic Privacy Hard“(nusidėvėjimo) rinkinys, skirtas įsilaužimui į „Alexa“, „Google“ir „Siri“: pavargote nuo „protingo“; prietaisai jus klauso? Tuomet šis stebėjimo ir įsilaužimo priemonių rinkinys kaip tik jums! „HacKIT“yra žemų ir aukštųjų technologijų pilietinio privatumo (nusidėvėjimo) rinkinys, skirtas pertvarkyti, įsilaužti ir atkurti „Amazon Echo“, „Google Home“
Raspberry Pi MMA8452Q 3 ašių 12 bitų/8 bitų skaitmeninis pagreičio matuoklis „Java“pamoka: 4 žingsniai
„Raspberry Pi MMA8452Q“3 ašių 12 bitų/8 bitų skaitmeninis pagreičio matuoklis „Java“pamoka: „MMA8452Q“yra protingas, mažos galios, trijų ašių, talpinis, mikromechaninis pagreičio matuoklis, turintis 12 bitų skiriamąją gebą. Lanksčios vartotojo programuojamos parinktys pateikiamos naudojant pagreičio matuoklio įterptas funkcijas, kurias galima sukonfigūruoti dviem pertraukomis