Բովանդակություն:

64bit RT Kernel Compilation for Raspberry Pi 4B.: 5 քայլ
64bit RT Kernel Compilation for Raspberry Pi 4B.: 5 քայլ

Video: 64bit RT Kernel Compilation for Raspberry Pi 4B.: 5 քայլ

Video: 64bit RT Kernel Compilation for Raspberry Pi 4B.: 5 քայլ
Video: Raspberry pi 4 64 bit kernel 2024, Նոյեմբեր
Anonim
64bit RT Kernel Compilation for Raspberry Pi 4B
64bit RT Kernel Compilation for Raspberry Pi 4B

Այս ձեռնարկը կներառի 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- ի վերագործարկումից հետո ամեն ինչ պետք է լավ աշխատի:

Ստուգելու համար, թե արդյոք նոր միջուկը հաջողությամբ տեղադրվել է, կարող եք կատարել

անանուն -ա

հրաման

Խորհուրդ ենք տալիս: