תוכן עניינים:

אוסף ליבה של 64 סיביות ל- Raspberry Pi 4B.: 5 שלבים
אוסף ליבה של 64 סיביות ל- Raspberry Pi 4B.: 5 שלבים

וִידֵאוֹ: אוסף ליבה של 64 סיביות ל- Raspberry Pi 4B.: 5 שלבים

וִידֵאוֹ: אוסף ליבה של 64 סיביות ל- Raspberry Pi 4B.: 5 שלבים
וִידֵאוֹ: Marlin Firmware 2.0.x Explained 2024, נוֹבֶמבֶּר
Anonim
אוסף ליבה של 64 ביט RT לפטל פי 4B
אוסף ליבה של 64 ביט RT לפטל פי 4B

הדרכה זו תכסה את תהליך הבנייה וההתקנה של 64 ביט ליבה בזמן אמת ב- Raspberry Pi. ליבת RT חיונית לפונקציונליות המלאה של ROS2 ופתרונות IOT בזמן אמת אחרים.

Kernel הותקן על Raspbian מבוסס x64 שניתן להשיג כאן

הערה. הדרכה זו אם כי פשוטה דורשת ידע בסיסי במערכת ההפעלה Linux.

גם בשל מגבלות פלטפורמה זו כל קישורי ה- http חסרים h. כדי לתקן אותם פשוט הוסף "h" בחזית הקישור

אספקה

מחשב מבוסס x64 שמריץ לינוקס

Raspberry Pi 4B עם Raspbian 64 כבר מותקן

חיבור לאינטרנט.

שלב 1: קבלת כלים נלווים

ראשית עלינו לבחור בכלי התפתחות של הצורך.

ניתן להשיג אותם על ידי ביצוע פקודות הבאות במסוף לינוקס

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 עשה התקנה

כאשר -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-בלי כותרות \-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-ללא כותרות-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 שלנו.

הדרכה זו תשתמש ב- kernel rpi 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 | תיקון -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

כשזה משתבח אנחנו צריכים את התצורה הקיימת, ואז עבור אל

כללי -> מודל Preemtion ובחר באפשרות זמן אמת.

משאנחנו שומרים תצורה חדשה ויוצאים מהתפריט.

שלב 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_installp/ 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 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 ולהוסיף את השורה הבאה.

kernel = kernel8.img

לאחר אתחול pi הכל אמור לעבוד בסדר.

כדי לבדוק אם גרעין חדש הותקן בהצלחה תוכל לבצע

uname -a

פקודה

מוּמלָץ: