Агуулгын хүснэгт:

Raspberry Pi 4B 64bit RT цөмийн эмхэтгэл.: 5 алхам
Raspberry Pi 4B 64bit RT цөмийн эмхэтгэл.: 5 алхам

Видео: Raspberry Pi 4B 64bit RT цөмийн эмхэтгэл.: 5 алхам

Видео: Raspberry Pi 4B 64bit RT цөмийн эмхэтгэл.: 5 алхам
Видео: ZEITGEIST: MOVING FORWARD | OFFICIAL RELEASE | 2011 2024, Арваннэгдүгээр
Anonim
Raspberry Pi 4B 64bit RT цөмийн эмхэтгэл
Raspberry Pi 4B 64bit RT цөмийн эмхэтгэл

Энэхүү заавар нь Raspberry Pi дээр бодит цагийн 64 битийн цөмийг бүтээх, суурилуулах үйл явцыг хамарна. RT Kernel нь ROS2 болон бусад бодит цагийн IOT шийдлүүдийн бүрэн ажиллагааг хангахад чухал үүрэгтэй.

Цөмийг x64 дээр суурилсан Raspbian дээр суулгасан бөгөөд эндээс авах боломжтой

Тэмдэглэл. Энэхүү заавар нь энгийн боловч Линукс үйлдлийн системийн анхан шатны мэдлэг шаарддаг.

Мөн энэ платформын хязгаарлалтын улмаас бүх http линкүүд h байхгүй байна. Тэдгээрийг засахын тулд линкийн урд талд "h" гэж нэмнэ үү

Хангамж

Linux үйлдлийн системтэй x64 дээр суурилсан компьютер

Raspbian 64 бүхий Raspberry Pi 4B аль хэдийн суулгасан болно

Интернетэд холбогдох.

Алхам 1: Шаардлагатай багаж хэрэгслийг авах

Нэгдүгээрт, бид шаардлагатай багаж хэрэгслийг сонгох хэрэгтэй.

Линукс терминал дээр дараах тушаалуудыг гүйцэтгэх замаар тэдгээрийг олж авах боломжтой

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: Загалмайлах эмхэтгэлд зориулсан төрөлхийн хэрэгслүүдийг эмхэтгэх

Дараагийн алхам бол манай цөмийг хөндлөн хөрвүүлэх хэрэгслийг бэлтгэх, эмхэтгэх явдал юм.

Бидний суулгах 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 хичнээн ажил эрхлэхийг хүсч байгаа гэсэн үг юм. Дүрэм бол таны системд байгаа утаснаас хэтрэхгүй байх явдал юм. (жишээлбэл -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 --with-headers / --disable-nls --disable-shared --disable-threads --disable-libssp --disable-decimal-float / --disable-libquadmath --disable-libvtv --disable-libgomp --disable-libatomic / --enable-languages = c --disable-multilib

Бид хөрвүүлэгчээ хийж, суулгахаас өмнөхтэй адил юм

all -gcc -jx болгох

sudo 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 --with-headers --disable-nls --disable-shared --disable-threads --disable-libssp --disable-decimal-float --disable-libquadmath --disable-libvtv --disable-libgomp --disable-libatomic --enable-languages = c --disable-multilib Thread загвар: single gcc хувилбар 8.4.0 (GCC))

Алхам 3: Цөмийг нөхөх, цөмийг тохируулах

Одоо бидний цөм болон RT засварыг авах цаг боллоо.

Энэхүү заавар нь rpi kernel v 5.4 болон RT patch RT32 -ийг ашиглах болно. Энэ хослол надад сайн ажилласан. Гэсэн хэдий ч бүх зүйл өөр өөр хувилбартай ажиллах ёстой.

mkdir ~/rpi-цөм

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

Үүний дараа бид цэсийг тохируулах хэрэгтэй

O =../kernel-out/ARCH = arm64 CROSS_COMPILE =/opt/aarch64/bin/aarch64-linux-gnu- menuconfig болгох

Энэ нь инээмсэглэх үед бид одоо байгаа тохиргоог хийх хэрэгтэй, дараа нь руу очно уу

Ерөнхий -> Preemtion загварыг сонгоод Real Time сонголтыг сонгоно уу.

Бид шинэ тохиргоог хадгалаад цэснээс гарна.

Алхам 4: RT цөмийг бий болгох

Одоо түүний эмхэтгэх цаг боллоо. Энэ нь таны компьютерийн хүчин чадлаас хамаарч удаан хугацаа шаардагдах болно гэдгийг анхаарна уу.

болгох -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_install dt.. 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

Одоо бид ssh -ээр дамжуулан pi руу нэвтэрч, цөмөө задлах хэрэгтэй.

ssh pi@

Нэвтрэх үед бид дараах тушаалуудыг ашиглан файлуудаа хуулж авдаг.

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/config.txt файлыг засварлаж, дараах мөрийг нэмэх явдал юм.

цөм = kernel8.img

Pi -г дахин ачаалсны дараа бүх зүйл хэвийн ажиллах ёстой.

Шинэ цөм амжилттай суулгасан эсэхийг шалгахын тулд та үүнийг ажиллуулж болно

uname -a

тушаал

Зөвлөмж болгож буй: