สารบัญ:

การรวบรวมเคอร์เนล RT 64 บิตสำหรับ Raspberry Pi 4B.: 5 ขั้นตอน
การรวบรวมเคอร์เนล RT 64 บิตสำหรับ Raspberry Pi 4B.: 5 ขั้นตอน

วีดีโอ: การรวบรวมเคอร์เนล RT 64 บิตสำหรับ Raspberry Pi 4B.: 5 ขั้นตอน

วีดีโอ: การรวบรวมเคอร์เนล RT 64 บิตสำหรับ Raspberry Pi 4B.: 5 ขั้นตอน
วีดีโอ: การทำ Auto Start Up บราวเซอร์แบบเต็มจอ (Kiosk) บน Raspberry Pi 4 2024, กรกฎาคม
Anonim
การรวบรวมเคอร์เนล RT 64 บิตสำหรับ Raspberry Pi 4B
การรวบรวมเคอร์เนล RT 64 บิตสำหรับ Raspberry Pi 4B

บทช่วยสอนนี้จะครอบคลุมขั้นตอนการสร้างและติดตั้งเคอร์เนลแบบเรียลไทม์ 64 บิตบน Raspberry Pi RT Kernel มีความสำคัญอย่างยิ่งต่อการทำงานอย่างเต็มรูปแบบของ ROS2 และโซลูชัน IOT แบบเรียลไทม์อื่นๆ

ติดตั้งเคอร์เนลบน Raspbian ที่ใช้ x64 ซึ่งสามารถรับได้ที่นี่

บันทึก. บทช่วยสอนนี้แม้จะตรงไปตรงมาต้องการความรู้พื้นฐานเกี่ยวกับระบบปฏิบัติการลีนุกซ์

นอกจากนี้ เนื่องจากข้อจำกัดของแพลตฟอร์มนี้ ลิงก์ http ทั้งหมดจึงขาด h. วิธีแก้ไขง่ายๆ ให้เติม "h" ที่ด้านหน้าของลิงก์

เสบียง

พีซีที่ใช้ x64 ที่ใช้ Linux

Raspberry Pi 4B พร้อม Raspbian 64 ติดตั้งแล้ว

การเชื่อมต่อกับอินเทอร์เน็ต

ขั้นตอนที่ 1: รับเครื่องมือที่จำเป็น

ขั้นแรกเราต้องเลือกเครื่องมือ dev ที่ไม่จำเป็น

สามารถรับได้โดยดำเนินการคำสั่งต่อไปนี้ใน Linux terminal

sudo apt-get ติดตั้ง build-essential libgmp-dev libmpfr-dev libmpc-dev libisl-dev libncurses5-dev bc git-core กระทิง flexsudo apt-get ติดตั้ง 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 -- เป้าหมาย = aarch64-linux-gnu --disable-nls

หลังจากการกำหนดค่าเสร็จสิ้น เราจำเป็นต้องคอมไพล์โปรแกรมโดยใช้คำสั่งต่อไปนี้

ทำ -jx

sudo ทำการติดตั้ง

โดยที่ -jx หมายถึงจำนวนงานที่คุณต้องการเรียกใช้ i parrarell กฎทั่วไปคือต้องไม่เกินจำนวนเธรดที่ระบบของคุณมี (เช่น make -j16)

และสุดท้ายเราต้องส่งออกเส้นทาง

ส่งออก PATH=$PATH:/opt/aarch64/bin/

กว่าที่เราดำเนินการสร้างและติดตั้ง GCC

ซีดี..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

กว่าที่เราเคยทำและติดตั้งคอมไพเลอร์ของเรามาก่อน

ทำให้ทั้งหมด-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 กำหนดค่าด้วย:./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 Thread model: single gcc version 8.4.0 (GCC))

ขั้นตอนที่ 3: การแพตช์เคอร์เนลและการกำหนดค่าเคอร์เนล

ตอนนี้ได้เวลารับเคอร์เนลและแพตช์ RT ของเราแล้ว

บทช่วยสอนนี้จะใช้เคอร์เนล rpi v 5.4 และ RT patch RT32 ชุดค่าผสมนี้ใช้ได้ดีสำหรับฉัน อย่างไรก็ตาม ทุกอย่างควรทำงานได้ดีกับเวอร์ชันต่างๆ

mkdir ~/rpi-เคอร์เนล

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/เก่ากว่า/patch-5.4.54-rt32.patch.gz mkdir เคอร์เนลออก cd ลินุกซ์

จากนั้นแกะแพตช์

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

ต่อจากนี้เราต้องเข้าไปที่ menuconfig

ทำให้ O=../kernel-out/ ARCH=arm64 CROSS_COMPILE=/opt/aarch64/bin/aarch64-linux-gnu- menuconfig

เมื่อ lauches เราจำเป็นต้องกำหนดค่าที่มีอยู่ จากนั้นไปที่

ทั่วไป -> Preemtion Model และเลือกตัวเลือก Real Time

กว่าที่เราจะบันทึกการกำหนดค่าใหม่และออกจากเมนู

ขั้นตอนที่ 4: สร้างเคอร์เนล RT

ตอนนี้เป็นเวลารวบรวม โปรดทราบว่าอาจใช้เวลานานขึ้นอยู่กับความสามารถของพีซีของคุณ

ทำ -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_installnelcp-../ 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/

หลังจากนั้นสิ่งที่ต้องทำคือแก้ไขไฟล์ /boot/config.txt และเพิ่มบรรทัดต่อไปนี้

kernel=kernel8.img

หลังจากรีบูต pi ทุกอย่างควรจะทำงานได้ดี

หากต้องการตรวจสอบว่าเคอร์เนลใหม่ติดตั้งสำเร็จหรือไม่ คุณสามารถดำเนินการได้

uname -a

สั่งการ

แนะนำ: