Talaan ng mga Nilalaman:

64bit RT Kernel Compilation para sa Raspberry Pi 4B.: 5 Mga Hakbang
64bit RT Kernel Compilation para sa Raspberry Pi 4B.: 5 Mga Hakbang

Video: 64bit RT Kernel Compilation para sa Raspberry Pi 4B.: 5 Mga Hakbang

Video: 64bit RT Kernel Compilation para sa Raspberry Pi 4B.: 5 Mga Hakbang
Video: Making flash memory from SD Card 2024, Nobyembre
Anonim
64bit RT Kernel Compilation para sa Raspberry Pi 4B
64bit RT Kernel Compilation para sa Raspberry Pi 4B

Saklaw ng tutorial na ito ang proseso ng pagbuo at pag-install ng 64 bit na Real Time Kernel sa Raspberry Pi. Ang RT Kernel ay mahalaga para sa buong pagpapaandar ng ROS2 at iba pang mga solusyon sa Real Time IOT.

Ang Kernel ay na-install sa x64 based Raspbian na maaaring makuha dito

Tandaan Ang tutorial na ito kahit na prangka na nangangailangan ng pangunahing kaalaman sa operating system ng Linux.

Dahil din sa mga limitasyon ng platform na ito lahat ng mga link sa http ay kulang sa h. Upang ayusin ang mga ito simpli magdagdag ng "h" sa harap ng link

Mga gamit

x64 batay sa PC na tumatakbo sa Linux

Ang Raspberry Pi 4B na may naka-install na Raspbian 64

Koneksyon sa Internet.

Hakbang 1: Pagkuha ng Mga Neccesery Tool

Una kailangan naming pumili ng mga tool sa neccecery dev.

Maaari silang makuha sa pamamagitan ng pagpapatupad ng mga sumusunod na utos sa Linux terminal

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

Hakbang 2: Mga Compilng Native Build Tools para sa Cross Compilation

Susunod na hakbang ay ang preapare at compile ng mga tool para sa cross compilation ng aming kernel.

Ang tool na Firs na mai-install namin ay Binutils ang tutorial na ito ay nasubukan sa bersyon ng 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

Matapos matapos ang pagsasaayos kailangan naming mag-compile ng programm gamit ang mga sumusunod na utos

gumawa -jx

sudo gumawa ng pag-install

kung saan -jx nangangahulugang kung gaano karaming mga trabaho ang nais mong patakbuhin i parrarell. Ang Rule of thumb ay upang ilagay ito nang hindi mas mataas kaysa sa dami ng mga thread na mayroon ang iyong system. (halimbawa gumawa -j16)

at sa wakas kailangan nating i-export ang landas

i-export ang PATH = $ PATH: / opt / aarch64 / bin /

Kaysa sa magpatuloy kami sa pagbuo at pag-install ng 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 --without-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

Kaysa sa katulad ng bago namin ginawa at mai-install ang aming tagatala

gumawa ng all-gcc -jx

sudo gumawa ng install-gcc

Kung ang lahat ay naging maayos na pagsunod sa utos

/ opt / aarch64 / bin / aarch64-linux-gnu-gcc -v

dapat mag-resoult sa pagtugon na katulad nito.

ux-gnu-gcc -v Paggamit ng built-in na mga detalye. COLLECT_GCC = / opt / aarch64 / bin / aarch64-linux-gnu-gcc COLLECT_LTO_WRAPPER = / opt / aarch64 / libexec / gcc / aarch64-linux-gnu / 8.4.0 / lto-wrapper Target: aarch64-linux-gnu Naisaayos sa:./configure --prefix = / opt / aarch64 --target = aarch64-linux-gnu --with-newlib --without-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 model: solong gcc bersyon 8.4.0 (GCC)

Hakbang 3: Pag-patch ng Kernel at Pag-configure ng Kernel

Oras na nito upang makuha ang aming kernel at patch ng RT.

Ang tutorial na ito ay gagamit ng rpi kernel v 5.4 at RT patch RT32. Ang kombinasyon na ito ay gumagana nang maayos para sa akin. Gayunpaman ang lahat ay dapat gumana nang maayos sa iba't ibang mga bersyon.

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

pagkatapos ay i-unpack ang patch.

gzip -cd../patch-5.4.54-rt32.patch.gz | patch -p1 --asalita

At ang pagsasaayos ng pauna para sa Rpi 4B

gumawa ng O =.. / kernel-out / ARCH = arm64 CROSS_COMPILE = / opt / aarch64 / bin / aarch64-linux-gnu- bcm2711_defconfig

Bukod dito kailangan namin upang ipasok ang menuconfig

gumawa ng O =.. / kernel-out / ARCH = arm64 CROSS_COMPILE = / opt / aarch64 / bin / aarch64-linux-gnu- menuconfig

Kapag pinupuri ito kailangan namin ng mayroon nang pagsasaayos, pagkatapos ay pumunta sa

Pangkalahatan -> Model ng Preemtion at piliin ang pagpipiliang Real Time.

kaysa sa makatipid kami ng bagong pagsasaayos at lumabas sa menu.

Hakbang 4: Pagbuo ng RT Kernel

Ngayon ang oras ng pagtitipon nito. Tandaan na maaaring magtagal ito depende sa iyong mga kakayahan sa PC.

gumawa -jx O =.. / kernel-out / ARCH = arm64 CROSS_COMPILE = aarch64-linux-gnu-

Tulad ng dati -jx nangangahulugang bilang ng mga trabaho. Matapos ang matagumpay na pagtitipon kailangan naming i-pack ang aming Kernel at ipadala ito sa Raspberry Pi. Upang magawa ito, nagpapatupad kami ng mga sumusunod na utos.

i-export ang 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 dtbs_installcp out / arch / arm64 / boot / Image../rt-kernel/boot/kernel8.imgcd $ INSTALL_MOD_PATHtar czf../rt-kernel.tgz * cd..

Ngayon ang aming kernel ay dapat na nasa loob ng archive ng rt-kernel.tgz at handa na itong ipadala at mai-install.

Hakbang 5: Pag-install ng Bagong Kernel

Ang pinakamadaling paraan ng pagpapadala ng aming kernel sa raspbperry ay sa pamamagitan ng paggamit ng scp.

Nagpapatupad lamang kami ng follwing command.

scp rt-kernel.tgz pi @: / tmp

Ngayon kailangan naming mag-login sa aming pi sa pamamagitan ng ssh at i-unpack ang aming Kernel.

ssh pi @

Kapag naka-log in kinopya namin ang aming mga file gamit ang mga sumusunod na utos.

cd / tmptar xzf rt-kernel.tgz cd boot sudo cp -rd * / boot / cd../lib sudo cp -dr * / lib / cd../overlays sudo cp -dr * / boot / overlay ng cd../ broadcom sudo cp -dr bcm * / boot /

Pagkatapos nito ay ang natitirang gawin ay i-edit ang /boot/config.txt file at idagdag ang sumusunod na linya.

kernel = kernel8.img

Pagkatapos ng pag-reboot ng pi lahat dapat na gumana nang maayos.

Upang suriin kung matagumpay na na-install ang bagong kernel maaari kang magpatupad

uname -a

utos

Inirerekumendang: