Բովանդակություն:
- Պարագաներ
- Քայլ 1: Ձեռք բերելով անհրաժեշտ գործիքներ
- Քայլ 2. Կազմեք մայրենի կառուցման գործիքներ խաչաձև կազմման համար
- Քայլ 3: Կարկատել միջուկը և կազմաձևել միջուկը:
- Քայլ 4: RT միջուկի կառուցում
- Քայլ 5: Նոր միջուկի տեղադրում
Video: 64bit RT Kernel Compilation for Raspberry Pi 4B.: 5 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:45
Այս ձեռնարկը կներառի Raspberry Pi- ի վրա 64 բիթ իրական ժամանակի միջուկի կառուցման և տեղադրման գործընթացը: RT Kernel- ը վճռորոշ նշանակություն ունի ROS2- ի և Իրական ժամանակի IOT լուծումների լիարժեք գործունակության համար:
Միջուկը տեղադրվել է x64 հիման վրա Raspbian- ի վրա, որը կարելի է ձեռք բերել այստեղ
Նշում. Այս ձեռնարկը, թեև պարզ է, պահանջում է Linux օպերացիոն համակարգի հիմնական գիտելիքներ:
Նաև այս հարթակի սահմանափակումների պատճառով http- ի բոլոր հղումները չունեն h: Պարզապես դրանք շտկելու համար ավելացրեք «h» հղման առջևի մասում:
Պարագաներ
Linux- ով աշխատող x64 համակարգիչ
Raspberry Pi 4B- ն Raspbian 64 -ով արդեն տեղադրված է
Միացում ինտերնետին:
Քայլ 1: Ձեռք բերելով անհրաժեշտ գործիքներ
Նախևառաջ մենք պետք է օպտիմալացնենք մաքրման գործիքների գործիքները:
Դրանք կարելի է ձեռք բերել ՝ Linux տերմինալում կատարելով հետևյալ հրամանները
sudo apt-get տեղադրել կառուցել-էական libgmp-dev libmpfr-dev libmpc-dev libisl-dev libncurses5-dev bc git-core bison flexsudo apt-get install libncurses-dev libssl-dev
Քայլ 2. Կազմեք մայրենի կառուցման գործիքներ խաչաձև կազմման համար
Հաջորդ քայլը գործիքների նախապատրաստումն ու կազմումն է `մեր միջուկի խաչաձև կազմման համար:
Firs գործիքը, որը մենք տեղադրելու ենք, Binutils է: Այս ձեռնարկը փորձարկվել է 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- target = aarch64-linux-gnu -disable-nls
Կազմաձևման ավարտից հետո մենք պետք է կազմենք ծրագիրը ՝ օգտագործելով հետևյալ հրամանները
կատարել -jx
sudo make install
որտեղ -jx նշանակում է, թե քանի աշխատատեղ եք ցանկանում գործարկել i parrarell- ում: Գործնական կանոնն այն է, որ այն ոչ ավելի բարձր լինի, քան ձեր համակարգում առկա թելերի քանակը: (օրինակ `make -j16)
և վերջապես մենք պետք է ճանապարհը արտահանենք
արտահանել PATH = $ PATH:/opt/aarch64/bin/
Մենք անցնում ենք 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-առանց վերնագրերի \-անջատել-nls-անջատել-կիսել-անջատել-թելերը --disable-libssp -disable-decimal-float / --disable-libquadmath -disable-libvtv -disable-libgomp -disable-libatomic / --enable-languages = c -disable-multilib
Նույնը, ինչ նախկինում մենք պատրաստում և տեղադրում էինք մեր կոմպիլյատորը
կատարել բոլոր -gcc -jx
sudo make install-gcc
Եթե ամեն ինչ հարթ ընթանար հրամանին հետևելով
/opt/aarch64/bin/aarch64-linux-gnu-gcc -v
պետք է արձագանքել նմանատիպ պատասխանին:
ux-gnu-gcc -v Օգտագործելով ներկառուցված ակնոցներ: COLLECT_GCC =/opt/aarch64/bin/aarch64-linux-gnu-gcc COLLECT_LTO_WRAPPER =/opt/aarch64/libexec/gcc/aarch64-linux-gnu/8.4.0/lto-wrapper Թիրախ ՝ aarch64-linux-gnu Կազմաձևված է ՝./configure --prefix =/opt/aarch64 --target = aarch64-linux-gnu --with-newlib-առանց-վերնագրերի-disal-nls-անջատել-կիսվել-անջատել-թելեր-disable-libssp --disable-decimal-float --disable-libquadmath --disable-libvtv --disable-libgomp-disisable-libatomic --enable-languages = c --disable-multilib Թեմայի մոդել. մեկ gcc տարբերակ 8.4.0 (GCC)
Քայլ 3: Կարկատել միջուկը և կազմաձևել միջուկը:
Այժմ ժամանակն է ձեռք բերել մեր միջուկը և RT կարկատը:
Այս ձեռնարկը կօգտագործի rpi միջուկ v 5.4 և RT կարկատել RT32: Այս համադրությունը լավ աշխատեց ինձ համար: Այնուամենայնիվ, ամեն ինչ պետք է լավ աշխատի տարբեր տարբերակներով:
mkdir ~/rpi-kernel
cd ~/rpi-kernel 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
ապա բացեք կարկատակը:
gzip -cd../patch-5.4.54-rt32.patch.gz | կարկատել -p1 -խոսուն խոսք
Եվ սկզբնական կազմաձևում Rpi 4B- ի համար
կատարել O =../kernel-out/ARCH = arm64 CROSS_COMPILE =/opt/aarch64/bin/aarch64-linux-gnu- bcm2711_defconfig
Դրանից հետո մենք պետք է մտնենք menuconfig
կատարել O =../kernel-out/ARCH = arm64 CROSS_COMPILE =/opt/aarch64/bin/aarch64-linux-gnu- menuconfig
Երբ այն հայտնվում է, մեզ անհրաժեշտ է գոյություն ունեցող կազմաձևը, այնուհետև անցեք
Ընդհանուր -> Preemtion Model և ընտրեք Real Time տարբերակ:
քան մենք պահպանում ենք նոր կոնֆիգուրացիան և դուրս ենք գալիս ընտրացանկից:
Քայլ 4: RT միջուկի կառուցում
Այժմ դրա կազմման ժամանակն է: Ուշադրություն դարձրեք, դա կարող է երկար տևել ՝ կախված ձեր համակարգչի հնարավորություններից:
make -jx O =../ kernel-out/ ARCH = arm64 CROSS_COMPILE = aarch64-linux-gnu-
Ինչպես նախկինում -jx նշանակում է աշխատատեղերի քանակ: Հաջող հավաքագրումից հետո մենք պետք է փաթեթավորենք մեր միջուկը և ուղարկենք այն Raspberry Pi- ին: Դա անելու համար մենք կատարում ենք հետևյալ հրամանները.
արտահանել 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_in out/arch/arm64/boot/Image../rt-kernel/boot/kernel8.imgcd $ INSTALL_MOD_PATHtar czf../rt-kernel.tgz *cd..
Այժմ մեր միջուկը պետք է լինի rt-kernel.tgz արխիվի ներսում և պատրաստ է ուղարկվել և տեղադրվել:
Քայլ 5: Նոր միջուկի տեղադրում
Մեր միջուկը raspbperry ուղարկելու ամենահեշտ ձևը scp- ի օգտագործումն է:
Մենք պարզապես կատարում ենք հետևյալ հրամանը.
scp rt-kernel.tgz pi@:/tmp
Այժմ մենք պետք է մուտքագրենք մեր pi- ն ssh- ի միջոցով և բացենք մեր միջուկը:
ssh pi@
Մուտք գործելիս մենք պատճենում ենք մեր ֆայլերը ՝ օգտագործելով հետևյալ հրամանները:
cd/tmptar xzf rt -kernel.tgz cd boot sudo cp -rd */boot/cd../lib sudo cp -dr */lib/cd../ overdoys sudo cp -dr */boot/overlays cd../ broadcom sudo cp -dr bcm* /boot /
Դրանից հետո մնում է խմբագրել /boot/config.txt ֆայլը և ավելացնել հետևյալ տողը:
միջուկ = միջուկ 8.img
Pi- ի վերագործարկումից հետո ամեն ինչ պետք է լավ աշխատի:
Ստուգելու համար, թե արդյոք նոր միջուկը հաջողությամբ տեղադրվել է, կարող եք կատարել
անանուն -ա
հրաման
Խորհուրդ ենք տալիս:
Arduino մեքենայի հետադարձ կայանման ահազանգման համակարգ - Քայլ առ քայլ: 4 քայլ
Arduino մեքենայի հետադարձ կայանման ահազանգման համակարգ | Քայլ առ քայլ. Այս նախագծում ես նախագծելու եմ մի պարզ Arduino մեքենայի հետադարձ կայանման սենսորային միացում ՝ օգտագործելով Arduino UNO և HC-SR04 ուլտրաձայնային տվիչ: Այս Arduino- ի վրա հիմնված Car Reverse ազդանշանային համակարգը կարող է օգտագործվել ինքնավար նավարկության, ռոբոտների ռանգի և այլ տեսականու համար
Քայլ առ քայլ համակարգչային շենք. 9 քայլ
Քայլ առ քայլ համակարգչի կառուցում. Պարագաներ. Սարքավորումներ. Մայրական համակարգիչ CPU coolerPSU (Էներգամատակարարման միավոր) Պահեստավորում (HDD/SSD) RAMGPU (պարտադիր չէ) Գործ CaseTools: Պտուտակահան ESD ապարանջան/matsthermal paste w/aplikator
Երեք բարձրախոս շղթա -- Քայլ առ քայլ ձեռնարկ ՝ 3 քայլ
Երեք բարձրախոս շղթա || Քայլ առ քայլ ձեռնարկ. Բարձրախոսների սխեման ուժեղացնում է շրջակա միջավայրից ստացված աուդիո ազդանշանները MIC- ում և այն ուղարկում է խոսնակին, որտեղից արտադրվում է ուժեղացված ձայնը:
Քայլ առ քայլ կրթություն ռոբոտաշինության մեջ `հանդերձանքով. 6 քայլ
Քայլ առ քայլ կրթություն ռոբոտաշինության մեջ ՝ հանդերձանքով. Իմ սեփական ռոբոտը կառուցելուց մի քանի ամիս անց (խնդրում եմ անդրադառնալ այս բոլորին), և երկու անգամ մասերի խափանումից հետո, ես որոշեցի մի քայլ հետ գնալ և նորից մտածել իմ մասին ռազմավարություն և ուղղություն: Մի քանի ամսվա փորձը երբեմն շատ հատուցող էր, և
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ) `8 քայլ
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ). Ուլտրաձայնային ձայնային փոխարկիչներ L298N Dc կանացի ադապտեր էներգիայի մատակարարում արական dc pin Arduino UNOBreadboard և անալոգային նավահանգիստներ ՝ կոդը փոխարկելու համար (C ++)