Мазмұны:

Raspberry Pi 4B үшін 64 биттік RT ядро компиляциясы.: 5 қадам
Raspberry Pi 4B үшін 64 биттік RT ядро компиляциясы.: 5 қадам

Бейне: Raspberry Pi 4B үшін 64 биттік RT ядро компиляциясы.: 5 қадам

Бейне: Raspberry Pi 4B үшін 64 биттік RT ядро компиляциясы.: 5 қадам
Бейне: Операционные системы написанные на Pascal, Delphi, Lazarus IDE, FreePascal, Turbo Pascal, Modula-2 2024, Шілде
Anonim
Raspberry Pi 4B үшін 64bit RT Kernel Compilation
Raspberry Pi 4B үшін 64bit RT Kernel Compilation

Бұл оқулықта Raspberry Pi -де нақты уақыттық 64 биттік ядро құру және орнату процесі қарастырылады. RT Kernel ROS2 мен басқа да нақты уақыттағы IOT шешімдерінің толық жұмыс істеуі үшін өте маңызды.

Ядро x64 негізіндегі Raspbian -ға орнатылған, оны мына жерден алуға болады

Ескерту. Бұл нұсқаулық Linux операциялық жүйесі туралы қарапайым білімді қажет етеді.

Сондай -ақ, бұл платформаның шектеулеріне байланысты барлық http сілтемелерінде h жоқ. Оларды түзету үшін сілтеменің алдыңғы жағына «h» қосыңыз

Жабдықтар

Linux жүйесінде жұмыс істейтін x64 компьютері

Raspbian 64 бар Raspberry Pi 4B орнатылған

Интернетке қосылу.

1 -қадам: Қажет құралдарды алу

Алдымен біз қажет емес құралдарды алуымыз керек.

Оларды Linux терминалында келесі командаларды орындау арқылы алуға болады

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 моделі: бірыңғай gcc нұсқасы 8.4.0 (GCC)

3 -қадам: ядро түзету және ядро конфигурациясы

Енді біздің ядро мен RT патчын алу уақыты келді.

Бұл оқулықта rpi ядросы v 5.4 және RT патч RT32 қолданылады. Бұл комбинация мен үшін жақсы жұмыс жасады. Дегенмен, әр түрлі нұсқада бәрі жақсы жұмыс істеуі керек.

mkdir ~/rpi-ядро

cd ~/rpi-ядро 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 ядродан шыққан 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 жасаңыз

Ол күлген кезде бізде бар конфигурация қажет, содан кейін өтіңіз

Жалпы -> Алдын алу моделі және нақты уақыт опциясын таңдаңыз.

біз жаңа конфигурацияны сақтап, мәзірден шығамыз.

4 -қадам: RT ядросын құру

Енді оның құрастыру уақыты. Есіңізде болсын, бұл компьютердің мүмкіндіктеріне байланысты ұзақ уақыт алуы мүмкін.

жасау -jx O =../ kernel-out/ ARCH = arm64 CROSS_COMPILE = aarch64-linux-gnu-

Бұрынғыдай -jx жұмыс орындарының санын білдіреді. Сәтті құрастырылғаннан кейін бізге ядро жинап, оны Raspberry Pi -ге жіберу керек. Ол үшін келесі командаларды орындаймыз.

экспорттау INSTALL_MOD_PATH = ~/rpi-ядро/rt-kernelexport INSTALL_DTBS_PATH = ~/rpi-ядро/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

Енді бізге pi -ге ssh арқылы кіріп, өзегімізді ашу керек.

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 файлын өңдеу және келесі жолды қосу керек.

ядро = ядро8.img

Pi қайта жүктелгеннен кейін бәрі жақсы жұмыс істеуі керек.

Жаңа ядро сәтті орнатылғанын тексеру үшін оны орындауға болады

uname -a

бұйрық

Ұсынылған: