Съдържание:

Компилация от 64 -битово RT ядро за Raspberry Pi 4B.: 5 стъпки
Компилация от 64 -битово RT ядро за Raspberry Pi 4B.: 5 стъпки

Видео: Компилация от 64 -битово RT ядро за Raspberry Pi 4B.: 5 стъпки

Видео: Компилация от 64 -битово RT ядро за Raspberry Pi 4B.: 5 стъпки
Видео: Home Assistant. Урок 1.2 - Установка Ubuntu Server на Raspberry PI 4B или 3B+, boot from USB SSD 2024, Юли
Anonim
64 -битова компилация на RT ядро за Raspberry Pi 4B
64 -битова компилация на RT ядро за Raspberry Pi 4B

Този урок ще обхваща процеса на изграждане и инсталиране на 64 -битово ядро в реално време на Raspberry Pi. RT Kernel е от решаващо значение за пълната функционалност на ROS2 и други IOT решения в реално време.

Ядрото е инсталирано на x64 базиран Raspbian, който може да се намери тук

Забележка. Този урок, макар и ясен, изисква основни познания за операционната система Linux.

Също така поради ограниченията на тази платформа на всички http връзки липсва h. За да ги поправите, просто добавете „h“в предната част на връзката

Консумативи

x64 базиран компютър с Linux

Raspberry Pi 4B с вече инсталиран Raspbian 64

Връзка с интернет.

Стъпка 1: Получаване на Neccesery Tools

Първо трябва да се възползваме от инструменти за разработване на готови инструменти.

Те могат да бъдат получени чрез изпълнение на следните команди в терминала на 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: Съставяне на инструменти за собствено изграждане за кръстосано компилиране

Следващата стъпка е да подготвите и компилирате инструменти за кръстосано компилиране на нашето ядро.

Първият инструмент, който ще инсталираме, е 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. Основното правило е да го поставите не по -високо от количеството нишки, които вашата система има. (например make -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 --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

След същото, както преди, ние правим и инсталираме нашия компилатор

направи 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 --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 Модел на нишката: единична gcc версия 8.4.0 (GCC)

Стъпка 3: Кърпане на ядрото и конфигуриране на ядрото

Сега е време да вземем нашето ядро и RT кръпка.

Този урок ще използва rpi kernel v 5.4 и RT кръпка RT32. Тази комбинация ми се отрази добре. Всичко обаче трябва да работи добре с различни версии.

mkdir ~/rpi-ядро

cd ~/rpi-ядро git клониране 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 --verbose

И първоначална конфигурация за Rpi 4B

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

След това трябва да влезем в менюто config

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

Когато започне, трябва да съществува съществуваща конфигурация, след това отидете на

Общи -> Модел на предимство и изберете опцията в реално време.

след това запазваме нова конфигурация и излизаме от менюто.

Стъпка 4: Изграждане на RT ядро

Сега е времето за компилация. Обърнете внимание, че това може да отнеме много време в зависимост от възможностите на вашия компютър.

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

Сега нашето ядро трябва да бъде в rt-kernel.tgz архива и е готово за изпращане и инсталиране.

Стъпка 5: Инсталиране на ново ядро

Най -лесният начин да изпратим ядрото ни в raspbperry е чрез scp.

Ние просто изпълняваме командата follwing.

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 /

След това остава да редактирате /boot/config.txt файла и да добавите следния ред.

ядро = kernel8.img

След рестартиране на pi всичко трябва да работи добре.

Можете да проверите дали новото ядро е инсталирано успешно, можете да го изпълните

uname -а

команда

Препоръчано: