Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
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