Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
Ky tutorial do të mbulojë procesin e ndërtimit dhe instalimit të Kernelit Real Time 64 bit në Raspberry Pi. RT Kernel është thelbësor për funksionalitetin e plotë të ROS2 dhe zgjidhjeve të tjera IOT në kohë reale.
Kernel u instalua në Raspbian të bazuar në x64, i cili mund të merret këtu
Shënim. Ky tutorial edhe pse i drejtpërdrejtë kërkon njohuri themelore të sistemit operativ Linux.
Gjithashtu për shkak të kufizimeve të kësaj platforme të gjitha lidhjeve http u mungon h. Për t'i rregulluar ato thjesht, shtoni "h" në pjesën e përparme të lidhjes
Furnizimet
PC i bazuar në x64 që funksionon Linux
Raspberry Pi 4B me Raspbian 64 tashmë të instaluar
Lidhja me internetin.
Hapi 1: Marrja e mjeteve të nevojshme
Së pari ne duhet të zgjedhim mjetet e krijimit të neccecery.
Ato mund të merren duke ekzekutuar komandat e mëposhtme në terminalin Linux
sudo apt-get install build-thelbësore libgmp-dev libmpfr-dev libmpc-dev libisl-dev libncurses5-dev bc git-core bison flexsudo apt-get install libncurses-dev libssl-dev
Hapi 2: Përpilimi i mjeteve amtare të ndërtimit për përpilimin e kryqëzuar
Hapi tjetër është përgatitja dhe përpilimi i mjeteve për përpilimin kryq të kernelit tonë.
Mjeti Firs që do të instalojmë është Binutils ky tutorial u testua me binutils versionin 2.35.
cd ~/Downloadswget ttps: //ftp.gnu.org/gnu/binutils/binutils-2.35.tar.bz2tar xf binutils-2.35.tar.bz2cd binutils-2.35 /./ konfiguro --prefix =/opt/aarch64- target = aarch64-linux-gnu --disable-nls
Pas përfundimit të konfigurimit, ne duhet të përpilojmë programin duke përdorur komandat e mëposhtme
bëj -jx
sudo make install
ku -jx do të thotë sa punë doni të drejtoni i parrarell. Rregulli i përgjithshëm është ta vendosni atë jo më shumë se sasia e fijeve që ka sistemi juaj. (për shembull bëni -j16)
dhe së fundi duhet të eksportojmë rrugën
eksport PATH = $ PATH:/opt/aarch64/bin/
Se ne vazhdojmë me ndërtimin dhe instalimin e 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-pa-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
Në të njëjtën mënyrë si më parë ne bëjmë dhe instalojmë përpiluesin tonë
bëj të gjithë -gcc -jx
sudo make install-gcc
Nëse gjithçka shkoi pa probleme duke ndjekur komandën
/opt/aarch64/bin/aarch64-linux-gnu-gcc -v
duhet të përgjigjet në përgjigje të ngjashme me këtë.
ux-gnu-gcc -v Përdorimi i veçorive të integruara. 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 Konfiguruar me:./configure --prefix =/opt/aarch64 --target = aarch64-linux-gnu --with-newlib-pa-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 Modeli i temës: version i vetëm gcc 8.4.0 (GCC)
Hapi 3: Patching Kernel dhe Konfigurimi i Kernel
Tani është koha për të marrë arnën tonë të kernelit dhe RT.
Ky tutorial do të përdorë rpi kernel v 5.4 dhe RT patch RT32. Ky kombinim funksionoi mirë për mua. Sidoqoftë, gjithçka duhet të funksionojë mirë me versione të ndryshme.
mkdir ~/rpi-kernel
cd ~/rpi-kernel git klon 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
pastaj shpaketoni arnimin.
gzip -cd../patch-5.4.54-rt32.patch.gz | arna -p1 -fjalë e folur
Dhe filloni konfigurimin për Rpi 4B
bëj O =../kernel-out/ARCH = arm64 CROSS_COMPILE =/opt/aarch64/bin/aarch64-linux-gnu- bcm2711_defconfig
Pas kësaj ne kemi nevojë për të hyrë në menuconfig
bëni O =../kernel-out/ARCH = arm64 CROSS_COMPILE =/opt/aarch64/bin/aarch64-linux-gnu- menuconfig
Kur të shfaqet ne kemi nevojë për konfigurimin ekzistues, atëherë shkoni te
E Përgjithshme -> Modeli i Preemtionit dhe zgjidhni opsionin Real Time.
sesa të ruajmë konfigurimin e ri dhe të dalim nga menyja.
Hapi 4: Ndërtimi i kernelit RT
Tani është koha e përpilimit. Vini re se mund të zgjasë një kohë të gjatë në varësi të aftësive të kompjuterit tuaj.
bëj -jx O =../ kernel-out/ ARCH = arm64 CROSS_COMPILE = aarch64-linux-gnu-
Si më parë -jx nënkupton numrin e punëve. Pas përpilimit të suksesshëm, ne duhet të paketojmë Kernel -in tonë dhe ta dërgojmë atë në Raspberry Pi. Për ta bërë këtë, ne ekzekutojmë komandat e mëposhtme.
eksport INSTALL_MOD_PATH = ~/rpi-kernel/rt-kernelexport INSTALL_DTBS_PATH = ~/rpi-kernel/rt-kernelmake O =../kernel-out/ARCH = arm64 CROSS_COMPILE = aarch64-linux-gnu- mods_in jashtë/hark/arm64/boot/Image../rt-kernel/boot/kernel8.imgcd $ INSTALL_MOD_PATHtar czf../rt-kernel.tgz *cd..
Tani kerneli ynë duhet të jetë brenda arkivit rt-kernel.tgz dhe është gati për t'u dërguar dhe instaluar.
Hapi 5: Instalimi i kernelit të ri
Mënyra më e lehtë për të dërguar kernelin tonë në raspbperry është duke përdorur scp.
Ne thjesht ekzekutojmë komandën e mëposhtme.
scp rt-kernel.tgz pi@:/tmp
Tani ne duhet të identifikohemi në pi tonë nëpërmjet ssh dhe të shpaketojmë Kernel -in tonë.
ssh pi@
Kur të regjistroheni ne kopjojmë skedarët tanë duke përdorur komandat e mëposhtme.
cd/tmptar xzf rt -kernel.tgz cd boot sudo cp -rd */boot/cd../lib sudo cp -dr */lib/cd../ mbivendos sudo cp -dr */boot/mbivendos cd../ broadcom sudo cp -dr bcm* /boot /
Pas kësaj ajo që mbetet për të bërë është të redaktoni skedarin /boot/config.txt dhe të shtoni rreshtin vijues.
kernel = kernel8.img
Pas rindezjes pi gjithçka duhet të funksionojë mirë.
Për të kontrolluar nëse kerneli i ri është instaluar me sukses, mund ta ekzekutoni
uname -a
komandë