Sommario:
- Forniture
- Passaggio 1: ottenere gli strumenti necessari
- Passaggio 2: compilazione di strumenti di compilazione nativi per la compilazione incrociata
- Passaggio 3: applicare le patch al kernel e configurare il kernel
- Passaggio 4: creazione del kernel RT
- Passaggio 5: installazione del nuovo kernel
Video: Compilazione del kernel RT a 64 bit per Raspberry Pi 4B .: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
Questo tutorial tratterà il processo di creazione e installazione di Real Time Kernel a 64 bit su Raspberry Pi. RT Kernel è fondamentale per la piena funzionalità di ROS2 e altre soluzioni IOT in tempo reale.
Il kernel è stato installato su Raspbian basato su x64 che può essere ottenuto qui
Nota. Questo tutorial, sebbene semplice, richiede una conoscenza di base del sistema operativo Linux.
Inoltre, a causa delle limitazioni di questa piattaforma, tutti i collegamenti http mancano di h. Per risolverli, aggiungi semplicemente "h" nella parte anteriore del collegamento
Forniture
PC basato su x64 con Linux
Raspberry Pi 4B con Raspbian 64 già installato
Connessione a Internet.
Passaggio 1: ottenere gli strumenti necessari
Per prima cosa dobbiamo ottenere gli strumenti di sviluppo necessari.
Possono essere ottenuti eseguendo i seguenti comandi nel terminale 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
Passaggio 2: compilazione di strumenti di compilazione nativi per la compilazione incrociata
Il prossimo passo è preparare e compilare strumenti per la compilazione incrociata del nostro kernel.
Il primo strumento che installeremo è Binutils, questo tutorial è stato testato con binutils versione 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 -- --disable-nls
Al termine della configurazione, è necessario compilare il programma utilizzando i seguenti comandi
make -jx
sudo make install
dove -jx significa quanti lavori vuoi eseguire i parrarell. La regola generale è di metterlo non più alto della quantità di thread che il tuo sistema ha. (ad esempio make -j16)
e infine dobbiamo esportare il percorso
export PATH=$PATH:/opt/aarch64/bin/
Quindi procediamo con la costruzione e l'installazione di 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 --senza-intestazioni / --disable-nls --disable-shared --disable-threads --disable-libssp --disable-decimal-float / --disable-libquadmath --disable-libvtv --disable-libgomp --disable-libatomic / --enable-languages=c --disable-multilib
Lo stesso di prima che creiamo e installiamo il nostro compilatore
make all-gcc -jx
sudo make install-gcc
Se tutto è andato liscio seguendo il comando
/opt/aarch64/bin/aarch64-linux-gnu-gcc -v
dovrebbe dar luogo a una risposta simile a questa.
ux-gnu-gcc -v Usando le specifiche integrate. COLLECT_GCC=/opt/aarch64/bin/aarch64-linux-gnu-gcc COLLECT_LTO_WRAPPER=/opt/aarch64/libexec/gcc/aarch64-linux-gnu/8.4.0/lto-wrapper Target: aarch64-linux-gnu Configurato con:./configure --prefix=/opt/aarch64 --target=aarch64-linux-gnu --with-newlib --senza-intestazioni --disable-nls --disable-shared --disable-threads --disable-libssp --disable-decimal-float --disable-libquadmath --disable-libvtv --disable-libgomp --disable-libatomic --enable-languages=c --disable-multilib Modello di thread: single gcc versione 8.4.0 (GCC)
Passaggio 3: applicare le patch al kernel e configurare il kernel
Ora è il momento di ottenere il nostro kernel e la patch RT.
Questo tutorial utilizzerà il kernel rpi v 5.4 e la patch RT RT32. Questa combinazione ha funzionato bene per me. Tuttavia, tutto dovrebbe funzionare correttamente con versioni diverse.
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
quindi decomprimere la patch.
gzip -cd../patch-5.4.54-rt32.patch.gz | patch -p1 --verbose
E inizializza la configurazione per Rpi 4B
make O=../kernel-out/ ARCH=arm64 CROSS_COMPILE=/opt/aarch64/bin/aarch64-linux-gnu- bcm2711_defconfig
Dopodiché dobbiamo entrare nel menuconfig
make O=../kernel-out/ ARCH=arm64 CROSS_COMPILE=/opt/aarch64/bin/aarch64-linux-gnu-menuconfig
Quando viene avviato, abbiamo bisogno della configurazione esistente, quindi vai a
Generale -> Modello di prelazione e selezionare l'opzione in tempo reale.
quindi salviamo la nuova configurazione e usciamo dal menu.
Passaggio 4: creazione del kernel RT
Ora è il momento della compilazione. Nota che potrebbe richiedere molto tempo a seconda delle capacità del tuo PC.
make -jx O=../kernel-out/ ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
Come prima -jx significa numero di lavori. Dopo aver compilato con successo, dobbiamo impacchettare il nostro kernel e inviarlo a Raspberry Pi. Per fare ciò eseguiamo i seguenti comandi.
export 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_installcp../kernel- out/arch/arm64/boot/Image../rt-kernel/boot/kernel8.imgcd $INSTALL_MOD_PATHtar czf../rt-kernel.tgz *cd..
Ora il nostro kernel dovrebbe essere all'interno dell'archivio rt-kernel.tgz ed è pronto per essere inviato e installato.
Passaggio 5: installazione del nuovo kernel
Il modo più semplice per inviare il nostro kernel a raspbperry è usare scp.
Eseguiamo semplicemente il seguente comando.
scp rt-kernel.tgz pi@:/tmp
Ora dobbiamo accedere al nostro pi tramite ssh e decomprimere il nostro kernel.
ssh pi@
Una volta effettuato l'accesso, copiamo i nostri file utilizzando i seguenti comandi.
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/
Dopodiché ciò che resta da fare è modificare il file /boot/config.txt e aggiungere la riga seguente.
kernel=kernel8.img
Dopo aver riavviato pi tutto dovrebbe funzionare correttamente.
Per verificare se il nuovo kernel è stato installato con successo puoi eseguire
uname -a
comando
Consigliato:
Usare l'estensione del petto di Hope per trovare un lavoro di ordinanza del tempio incompleto all'interno del tuo albero genealogico su Family Search: 11 passaggi
Usare l'estensione di Hope's Chest per trovare il lavoro delle ordinanze del tempio incompleto all'interno del tuo albero genealogico su Family Search: Lo scopo di questa istruzione è dimostrare come cercare nel tuo albero genealogico in Family Search per gli antenati con il lavoro delle ordinanze del tempio incompleto usando l'estensione Hope's Chest. L'uso di Hope's Chest può accelerare notevolmente la ricerca di incomp
Raspberry Pi MMA8452Q Esercitazione su Python per accelerometro digitale a 3 assi a 12 bit / 8 bit: 4 passaggi
Raspberry Pi MMA8452Q Accelerometro digitale a 3 assi a 12 bit/8 bit Tutorial Python: MMA8452Q è un accelerometro microlavorato a tre assi, capacitivo, intelligente, a bassa potenza con 12 bit di risoluzione. Le opzioni flessibili programmabili dall'utente sono fornite con l'ausilio di funzioni integrate nell'accelerometro, configurabili su due interruzioni
Come configurare un debugger del kernel di Windows sulla rete: 6 passaggi
Come configurare un debugger del kernel di Windows sulla rete: il debug è uno strumento popolare utilizzato per individuare la causa principale di un bug. Un insetto può manifestarsi in molti modi diversi. può causare un arresto anomalo del sistema (schermata blu/BSOD), può causare un arresto anomalo dell'applicazione, può causare il blocco del sistema per nominare un fe
Interessante guida alla programmazione per il progettista - Controllo del processo del programma - Dichiarazione del ciclo: 8 passaggi
Interessante guida alla programmazione per il progettista - Controllo del processo del programma - Dichiarazione del ciclo: Controllo del processo del programma - Dichiarazione del ciclo Da questo capitolo, entrerai in contatto con un importante e potente punto di conoscenza - Dichiarazione del ciclo. Prima di leggere questo capitolo, se vuoi disegnare 10.000 cerchi nel programma, puoi farlo solo con un ter
Riparare un IBook G4 rotto con problemi di panico del kernel aeroportuale: 4 passaggi
Riparare un IBook G4 rotto con problemi di panico nel kernel dell'aeroporto: Ciao a tutti! Finalmente ho realizzato qualcosa che vale la pena fare un Instructable su:-) Probabilmente sei qui perché il tuo buon iBook ha iniziato a comportarsi in modo strano dopo l'aggiornamento da Mac OS 10.4. da 8 a 10.4.9. Nel modo in cui ottieni sempre ke