Orodha ya maudhui:
- Vifaa
- Hatua ya 1: Kupata Zana za Neccesery
- Hatua ya 2: Kukusanya Zana za Kuunda Asili za Mkusanyiko wa Msalaba
- Hatua ya 3: Kuchukua Kernel na Kusanidi Kernel
- Hatua ya 4: Kujenga RT Kernel
- Hatua ya 5: Kusanikisha Kernel mpya
Video: Mkusanyiko wa 64bit RT Kernel kwa Raspberry Pi 4B.: Hatua 5
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:48
Mafunzo haya yatashughulikia mchakato wa ujenzi na usanidi wa 64 bit Real Time Kernel kwenye Raspberry Pi. RT Kernel ni muhimu kwa utendaji kamili wa ROS2 na suluhisho zingine za Real Time IOT.
Kernel iliwekwa kwenye Raspbian ya x64 ambayo inaweza kupatikana hapa
Kumbuka. Mafunzo haya ingawa moja kwa moja yanahitaji ujuzi wa kimsingi wa mfumo wa uendeshaji wa Linux.
Pia kwa sababu ya mapungufu ya jukwaa hili viungo vyote vya http vinakosa h. Ili kuzirekebisha rahisi ongeza "h" mbele ya kiunga
Vifaa
x64 PC inayoendesha Linux
Raspberry Pi 4B na Raspbian 64 tayari imewekwa
Uunganisho kwenye mtandao.
Hatua ya 1: Kupata Zana za Neccesery
Kwanza tunahitaji kuchagua zana za neccecery dev.
Wanaweza kupatikana kwa kutekeleza amri zifuatazo kwenye terminal ya Linux
Sudo apt-get install-muhimu libgmp-dev libmpfr-dev libmpc-dev libisl-dev libncurses5-dev bc git-core bison flex sudo apt-get kufunga libncurses-dev libssl-dev
Hatua ya 2: Kukusanya Zana za Kuunda Asili za Mkusanyiko wa Msalaba
Hatua inayofuata ni kuandaa na kukusanya zana za mkusanyiko wa punje yetu.
Chombo cha firs ambacho tutasakinisha ni Binutils mafunzo haya yalijaribiwa na toleo la binutils 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 - lengo = aarch64-linux-gnu - inayoweza kuharibika-nls
Baada ya kumaliza usanidi tunahitaji kukusanya programu kwa kutumia amri zifuatazo
fanya -jx
Sudo kufanya kufunga
ambapo -jx inamaanisha ni kazi ngapi unataka kufanya i parrarell. Utawala wa kidole gumba ni kuiweka sio juu kuliko kiwango cha nyuzi ambazo mfumo wako unazo. (kwa mfano fanya -j16)
na mwishowe tunahitaji kusafirisha njia
Njia ya kuuza nje = $ PATH: / opt / aarch64 / bin /
Kuliko tunaendelea na ujenzi na usanidi wa 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 - bila vichwa / - vizuizi-nls - zinazoshirikiwa-zilizoshirikiwa-nyuzi - inayoweza-libssp -disable-decimal-float / - inayoonekana-libquadmath -disable-libvtv -disable-libgomp -disable-libatomic / --able-languages = c -disable-multilib
Kuliko sawa na kabla ya sisi kutengeneza na kusanikisha mkusanyaji wetu
fanya yote-gcc -jx
Sudo kufanya kufunga-gcc
Ikiwa kila kitu kilikwenda vizuri kufuata amri
/ opt / aarch64 / bin / aarch64-linux-gnu-gcc -v
inapaswa kufanya resoult katika nafasi sawa na hii.
ux-gnu-gcc -v Kutumia vijenzi vilivyojengwa. COLLECT_GCC = / opt / aarch64 / Bin / aarch64-linux-gnu-gcc./configure --prefix = / opt / aarch64 --target = aarch64-linux-gnu --with-newlib - bila vichwa -disable-nls -disable-shared -disable-threads -disable-libssp -disable-decimal-kuelea -disable-libquadmath -disable-libvtv -disable-libgomp -disable-libatomic -inable-languages = c -disable-multilib Thread model: toleo moja la gcc 8.4.0 (GCC)
Hatua ya 3: Kuchukua Kernel na Kusanidi Kernel
Sasa ni wakati wake wa kupata kernel yetu na kiraka cha RT.
Mafunzo haya yatatumia rpi kernel v 5.4 na RT kiraka RT32. Mchanganyiko huu ulinifanyia kazi vizuri. Walakini kila kitu kinapaswa kufanya kazi vizuri na matoleo tofauti.
mkdir ~ / rpi-kernel
cd ~ / rpi-kernel git clone ttps: //github.com/raspberrypi/linux.git -b rpi-5.4. 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
kisha ondoa kiraka.
gzip -cd../patch-5.4.54-rt32.patch.gz | kiraka -p1 - kibali
Na usanidi wa utangulizi wa Rpi 4B
fanya O =.. / kernel-out / ARCH = arm64 CROSS_COMPILE = / opt / aarch64 / bin / aarch64-linux-gnu- bcm2711_defconfig
Zaidi ya hayo tunahitaji kuingia kwenye menuconfig
fanya O =.. / kernel-out / ARCH = arm64 CROSS_COMPILE = / opt / aarch64 / bin / aarch64-linux-gnu- menuconfig
Wakati inapoacha tunahitaji usanidi uliopo, kisha nenda kwa
Jumla -> Mfano wa Utangulizi na uchague chaguo la Saa Halisi.
kuliko tunavyohifadhi usanidi mpya na kutoka kwenye menyu.
Hatua ya 4: Kujenga RT Kernel
Sasa wakati wake wa kukusanya. Kumbuka inaweza kuchukua muda mrefu kulingana na uwezo wako wa PC.
fanya -jx O =.. / kernel-out / ARCH = arm64 CROSS_COMPILE = aarch64-linux-gnu-
Kama kabla -jx inamaanisha idadi ya kazi. Baada ya mkusanyiko uliofanikiwa tunahitaji kupakia Kernel yetu na kuituma kwa Raspberry Pi. Ili kufanya hivyo tunafanya amri zifuatazo.
kuuza nje INSTALL_MOD_PATH = ~ / rpi-kernel / rt-kerneleportport INSTALL_DTBS_PATH = ~ / rpi-kernel / rt-kernelmake O =.. / kernel-out / ARCH = arm64 CROSS_COMPILE = aarch64-linux-gnu- modules_install dtbs_installcp.. nje / upinde / arm64 / boot / Picha../rt-kernel/boot/kernel8.imgcd $ INSTALL_MOD_PATHtar czf../rt-kernel.tgz * cd..
Sasa kernel yetu inapaswa kuwa ndani ya kumbukumbu ya rt-kernel.tgz na iko tayari kutumwa na kusanikishwa.
Hatua ya 5: Kusanikisha Kernel mpya
Njia rahisi zaidi ya kupeleka punje yetu kwa raspbperry ni kwa kutumia scp.
Tunafanya tu amri ya kufuata.
scp rt-kernel.tgz pi @: / tmp
Sasa tunahitaji kuingia kwenye pi yetu kupitia ssh na kufungua Kernel yetu.
ssh pi @
Wakati tumeingia tunaiga faili zetu kwa kutumia amri zifuatazo.
cd / dalili 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 /
Baada ya hapo kilichobaki kufanya ni kuhariri / boot/config.txt faili na kuongeza laini inayofuata.
kernel = kernel8.img
Baada ya kuanza tena pi kila kitu kinapaswa kufanya kazi vizuri.
Kuangalia ikiwa kernel mpya imewekwa kwa ufanisi unaweza kutekeleza
uname -a
amri
Ilipendekeza:
Mafunzo ya Mkusanyiko wa AVR 2: 4 Hatua
Mafunzo ya AVR Assembler 2: Mafunzo haya ni mwendelezo wa " Mafunzo ya Mkusanyiko wa AVR 1 " Ikiwa haujapitia Mafunzo ya 1 unapaswa kuacha sasa na ufanye hiyo ya kwanza.Katika mafunzo haya tutaendelea na masomo yetu ya programu ya lugha ya mkutano wa atmega328p u
Mafunzo ya Mkusanyiko wa AVR 1: Hatua 5
ASR Assembler Mafunzo 1: Nimeamua kuandika safu kadhaa za mafunzo juu ya jinsi ya kuandika programu za kusanyiko za Atmega328p ambayo ni mdhibiti mdogo anayetumiwa katika Arduino. Ikiwa watu watabaki na hamu nitaendelea kuweka moja kwa wiki au hivyo hadi nitakapomaliza
Mafunzo ya Mkusanyiko wa AVR 6: 3 Hatua
Mafunzo ya AVR Assembler 6: Karibu kwenye Mafunzo ya 6! Mafunzo ya leo yatakuwa mafupi ambapo tutatengeneza njia rahisi ya kuwasiliana na data kati ya atmega328p moja na nyingine kwa kutumia bandari mbili zinazowaunganisha. Kisha tutachukua roller ya kete kutoka kwenye Mafunzo ya 4 na Sajili
Mafunzo ya Mkusanyiko wa AVR 8: 4 Hatua
Mafunzo ya AVR Assembler 8: Karibu kwenye Mafunzo ya 8! Katika mafunzo haya mafupi tutachukua tofauti kutoka kwa kuanzisha vipengee vipya vya programu ya lugha ya mkutano ili kuonyesha jinsi ya kuhamisha vifaa vyetu vya kuiga kwa " iliyochapishwa " bodi ya mzunguko.
Mafunzo ya Mkusanyiko wa AVR 7: 12 Hatua
Mafunzo ya AVR Assembler 7: Karibu kwenye Mafunzo ya 7! Leo tutaonyesha kwanza jinsi ya kutumia keypad, na kisha tuonyeshe jinsi ya kutumia bandari za kuingiza Analog kuwasiliana na kitufe. Tutafanya hivyo kwa kutumia usumbufu na waya moja kama pembejeo. Tutakata keypad kwa hivyo t