Πίνακας περιεχομένων:

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

Βίντεο: 64bit RT Kernel Compilation for Raspberry Pi 4B.: 5 Steps

Βίντεο: 64bit RT Kernel Compilation for Raspberry Pi 4B.: 5 Steps
Βίντεο: Great 1080 N64 Performance. Raspberry Pi 4 2250Mhz 5.4 Kernel & test firmware. Retropie 4.6 2024, Νοέμβριος
Anonim
64bit RT Kernel Compilation για Raspberry Pi 4B
64bit RT Kernel Compilation για Raspberry Pi 4B

Αυτό το σεμινάριο θα καλύψει τη διαδικασία κατασκευής και εγκατάστασης πυρήνα πραγματικού χρόνου 64 bit στο Raspberry Pi. Ο πυρήνας RT είναι ζωτικής σημασίας για την πλήρη λειτουργικότητα του ROS2 και άλλων λύσεων IOT σε πραγματικό χρόνο.

Ο πυρήνας εγκαταστάθηκε σε Raspbian που βασίζεται σε x64 και μπορείτε να τον βρείτε εδώ

Σημείωση. Αυτό το σεμινάριο αν και απλό απαιτεί βασικές γνώσεις για το λειτουργικό σύστημα Linux.

Επίσης, λόγω των περιορισμών αυτής της πλατφόρμας, όλοι οι σύνδεσμοι http δεν διαθέτουν h. Για να τα διορθώσετε, προσθέστε "h" στο μπροστινό μέρος του συνδέσμου

Προμήθειες

PC που βασίζεται σε x64 και τρέχει Linux

Το Raspberry Pi 4B με το Raspbian 64 έχει ήδη εγκατασταθεί

Σύνδεση στο Διαδίκτυο.

Βήμα 1: Λήψη εργαλείων Neccesery

Πρώτα πρέπει να επιλέξουμε τα εργαλεία neccecery dev.

Μπορούν να ληφθούν εκτελώντας τις ακόλουθες εντολές στο τερματικό 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. Ο βασικός κανόνας είναι να το πείτε όχι μεγαλύτερο από το ποσό των νημάτων που διαθέτει το σύστημά σας. (για παράδειγμα 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-δεκαδικό-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 Διαμόρφωση με:./configure --prefix =/opt/aarch64 --target = aarch64-linux-gnu --with-newlib --χωρίς κεφαλίδες --disable-decimal-float --disable-libquadmath --disable-libvtv --disable-libgomp --disable-libatomic --enable-languages = c --disable-multilib Μοντέλο νήματος: έκδοση single gcc 8.4.0 (GCC)

Βήμα 3: Συμπίεση πυρήνα και διαμόρφωση πυρήνα

Τώρα ήρθε η ώρα να πάρουμε τον πυρήνα και το έμπλαστρο RT.

Αυτό το σεμινάριο θα χρησιμοποιήσει τον πυρήνα rpi v 5.4 και την ενημερωμένη έκδοση κώδικα 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

Μετά από αυτό πρέπει να εισέλθουμε στο menuconfig

κάντε O =../kernel-out/ARCH = arm64 CROSS_COMPILE =/opt/aarch64/bin/aarch64-linux-gnu- menuconfig

Όταν ανοίξει, χρειαζόμαστε την υπάρχουσα διαμόρφωση, μετά πηγαίνετε στο

Γενικά -> Μοντέλο Preemtion και επιλέξτε την επιλογή Real Time.

από το να αποθηκεύσουμε νέα διαμόρφωση και να βγούμε από το μενού.

Βήμα 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- mods_n 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 και να προσθέσετε την ακόλουθη γραμμή.

πυρήνας = πυρήνας8.img

Μετά την επανεκκίνηση του pi όλα πρέπει να λειτουργούν καλά.

Για να ελέγξετε εάν ο νέος πυρήνας εγκαταστάθηκε με επιτυχία, μπορείτε να εκτελέσετε

uname -a

εντολή

Συνιστάται: