فهرست مطالب:

64bit RT Kernel Compilation for Raspberry Pi 4B.: 5 Step
64bit RT Kernel Compilation for Raspberry Pi 4B.: 5 Step

تصویری: 64bit RT Kernel Compilation for Raspberry Pi 4B.: 5 Step

تصویری: 64bit RT Kernel Compilation for Raspberry Pi 4B.: 5 Step
تصویری: Raspberry Pi CM4 (delidding or scalping) 2024, نوامبر
Anonim
64 بیت RT Kernel Compilation برای رزبری پای 4B
64 بیت RT Kernel Compilation برای رزبری پای 4B

این آموزش مراحل ساخت و نصب کرنل زمان واقعی 64 بیتی روی رزبری پای را پوشش می دهد. RT Kernel برای عملکرد کامل ROS2 و سایر راه حلهای IOT در زمان واقعی بسیار مهم است.

کرنل بر روی Raspbian مبتنی بر x64 نصب شده است که در اینجا قابل دریافت است

توجه داشته باشید. این آموزش اگرچه ساده نیاز به دانش اولیه در مورد سیستم عامل لینوکس دارد.

همچنین به دلیل محدودیت های این پلتفرم ، همه پیوندهای http فاقد h هستند. برای رفع آنها به سادگی "h" را در جلوی پیوند اضافه کنید

تدارکات

کامپیوتر مبتنی بر x64 که لینوکس را اجرا می کند

Raspberry Pi 4B با Raspbian 64 قبلاً نصب شده است

اتصال به اینترنت.

مرحله 1: تهیه ابزارهای مورد نیاز

ابتدا باید ابزارهای neccecery dev را انتخاب کنیم.

آنها را می توان با اجرای دستورات زیر در ترمینال لینوکس به دست آورد

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 /./ پیکربندی --prefix =/opt/aarch64- target = aarch64-linux-gnu --disable-nls

پس از اتمام پیکربندی ، ما باید برنامه را با استفاده از دستورات زیر کامپایل کنیم

make -jx

sudo make install

where -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-بدون-header / --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 make 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 پیکربندی شده با: است. --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 patch RT32 استفاده می شود. این ترکیب برای من خوب کار کرد. با این حال همه چیز باید با نسخه های مختلف خوب کار کند.

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

سپس بسته را باز کنید.

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

و پیکربندی اولیه برای 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

هنگامی که ظاهر می شود به تنظیمات موجود نیاز داریم ، سپس به

عمومی -> Preemtion Model و گزینه Real Time را انتخاب کنید.

نسبت به ذخیره تنظیمات جدید و خروج از منو.

مرحله 4: ساخت هسته RT

اکنون زمان گردآوری آن است. توجه داشته باشید بسته به قابلیت رایانه شما ممکن است زمان زیادی طول بکشد.

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

مانند قبل -jx به معنی تعداد مشاغل است. پس از کامپایل موفقیت آمیز ، ما باید هسته خود را بسته بندی کرده و آن را برای رزبری پای ارسال کنیم. برای انجام این کار ، دستورات زیر را اجرا می کنیم.

صادرات 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_ out/arch/arm64/boot/Image../rt-kernel/boot/kernel8.imgcd $ INSTALL_MOD_PATHtar czf../rt-kernel.tgz *cd..

اکنون کرنل ما باید در بایگانی rt-kernel.tgz باشد و آماده ارسال و نصب باشد.

مرحله 5: نصب New Kernel

ساده ترین راه برای ارسال هسته ما به raspbperry استفاده از scp است.

ما به سادگی دستور follwing را اجرا می کنیم.

scp rt-kernel.tgz pi@:/tmp

اکنون باید از طریق ssh به pi خود وارد شوید و هسته خود را باز کنید.

ssh pi@

هنگام ورود به سیستم ، فایل های خود را با استفاده از دستورات زیر کپی می کنیم.

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

پس از آن کاری که باید انجام دهید این است که فایل /boot/config.txt را ویرایش کرده و خط زیر را اضافه کنید.

kernel = kernel8.img

پس از راه اندازی مجدد pi همه چیز باید خوب کار کند.

برای بررسی اینکه آیا هسته جدید با موفقیت نصب شده است می توانید اجرا کنید

uname -a

فرمان

توصیه شده: