İçindekiler:
- Gereçler
- 1. Adım: Gerekli Araçların Alınması
- 2. Adım: Çapraz Derleme için Yerel Derleme Araçlarını Derleme
- Adım 3: Çekirdeğe Yama Yapma ve Çekirdeği Yapılandırma
- 4. Adım: RT Çekirdeği Oluşturma
- Adım 5: Yeni Çekirdeği Yükleme
Video: Raspberry Pi 4B için 64bit RT Çekirdek Derlemesi: 5 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
Bu eğitim, Raspberry Pi üzerinde 64 bit Gerçek Zamanlı Çekirdek oluşturma ve kurulum sürecini kapsayacaktır. RT Kernel, ROS2 ve diğer Gerçek Zamanlı IOT çözümlerinin tam işlevselliği için çok önemlidir.
Çekirdek, buradan edinilebilecek x64 tabanlı Raspbian üzerine kuruldu.
Not. Bu öğretici, basit olmasına rağmen, temel Linux işletim sistemi bilgisi gerektirir.
Ayrıca bu platformun sınırlamaları nedeniyle tüm http bağlantılarında h. Bunları düzeltmek için bağlantının önüne "h" ekleyin
Gereçler
Linux çalıştıran x64 tabanlı bilgisayar
Raspbian 64 yüklü Raspberry Pi 4B
İnternete bağlantı.
1. Adım: Gerekli Araçların Alınması
Öncelikle gerekli geliştirme araçlarını edinmemiz gerekiyor.
Linux terminalinde aşağıdaki komutlar yürütülerek elde edilebilirler.
sudo apt-get install build-essential libgmp-dev libmpfr-dev libmpc-dev libisl-dev libncurses5-dev bc git-core bizon flexsudo apt-get install libncurses-dev libssl-dev
2. Adım: Çapraz Derleme için Yerel Derleme Araçlarını Derleme
Bir sonraki adım, çekirdeğimizin çapraz derlemesi için araçları hazırlamak ve derlemektir.
Yükleyeceğimiz ilk araç Binutils'dir, bu öğretici binutils sürüm 2.35 ile test edilmiştir.
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 -- hedef=aarch64-linux-gnu --disable-nls
Yapılandırma bittikten sonra aşağıdaki komutları kullanarak programı derlememiz gerekiyor.
-jx yap
sudo kurulum yap
nerede -jx, kaç tane iş çalıştırmak istediğiniz anlamına gelir i parrarell. Temel kural, sisteminizin sahip olduğu iş parçacığı miktarından daha yüksek olmamasıdır. (örneğin yapmak -j16)
ve son olarak yolu dışa aktarmamız gerekiyor
dışa aktar YOL=$YOL:/opt/aarch64/bin/
Daha sonra GCC'nin inşası ve kurulumuna devam ediyoruz.
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_prequires./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
Derleyicimizi oluşturup kurmadan öncekiyle aynı
all-gcc -jx yap
sudo make install-gcc
Komutu takip ederek her şey yolunda giderse
/opt/aarch64/bin/aarch64-linux-gnu-gcc -v
buna benzer bir yanıtla sonuçlanmalıdır.
ux-gnu-gcc -v Yerleşik özellikleri kullanma. COLLECT_GCC=/opt/aarch64/bin/aarch64-linux-gnu-gcc COLLECT_LTO_WRAPPER=/opt/aarch64/libexec/gcc/aarch64-linux-gnu/8.4.0/lto-wrapper Hedef: aarch64-linux-gnu Şunlarla yapılandırılır:./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 İş parçacığı modeli: tek gcc sürüm 8.4.0 (GCC)
Adım 3: Çekirdeğe Yama Yapma ve Çekirdeği Yapılandırma
Şimdi çekirdeğimizi ve RT yamamızı alma zamanı.
Bu eğitimde rpi kernel v 5.4 ve RT yaması RT32 kullanılacaktır. Bu kombinasyon benim için iyi çalıştı. Ancak her şey farklı sürümlerle iyi çalışmalıdır.
mkdir ~/rpi-çekirdek
cd ~/rpi-kernel git klonu ttps://github.com/raspberrypi/linux.git -b rpi-5.4.y wget ttps://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt /5.4/eski/patch-5.4.54-rt32.patch.gz mkdir kernel-out cd linux
sonra yamayı paketinden çıkarın.
gzip -cd../patch-5.4.54-rt32.patch.gz | yama -p1 --verbose
Ve Rpi 4B için yapılandırmayı başlatın
yap O=../kernel-out/ ARCH=arm64 CROSS_COMPILE=/opt/aarch64/bin/aarch64-linux-gnu- bcm2711_defconfig
Bundan sonra menuconfig'e girmemiz gerekiyor
yap O=../kernel-out/ ARCH=arm64 CROSS_COMPILE=/opt/aarch64/bin/aarch64-linux-gnu- menuconfig
Açıldığında mevcut konfigürasyona ihtiyacımız var, ardından
General -> Preemtion Model ve Real Time seçeneğini seçin.
yeni konfigürasyonu kaydedip menüden çıkıyoruz.
4. Adım: RT Çekirdeği Oluşturma
Şimdi derleme zamanı. Bilgisayarınızın özelliklerine bağlı olarak uzun zaman alabileceğini unutmayın.
make -jx O=../kernel-out/ ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
Daha önce olduğu gibi -jx iş sayısı anlamına gelir. Başarılı bir derlemeden sonra Kernel'imizi paketleyip Raspberry Pi'ye göndermemiz gerekiyor. Bunun için aşağıdaki komutları uyguluyoruz.
dışa aktar INSTALL_MOD_PATH=~/rpi-kernel/rt-kernelexport INSTALL_DTBS_PATH=~/rpi-kernel/rt-kernelmake O=../kernel-out/ ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- module_install dtbs_installcp../kernel out/arch/arm64/boot/Image../rt-kernel/boot/kernel8.imgcd $INSTALL_MOD_PATHtar czf../rt-kernel.tgz *cd..
Artık çekirdeğimiz rt-kernel.tgz arşivinde ve gönderilmeye ve kurulmaya hazır olmalıdır.
Adım 5: Yeni Çekirdeği Yükleme
Çekirdeğimizi raspbperry'ye göndermenin en kolay yolu scp kullanmaktır.
Biz sadece aşağıdaki komutu yürütüyoruz.
scp rt-kernel.tgz pi@:/tmp
Şimdi pi'mize ssh ile giriş yapmamız ve Çekirdeğimizi açmamız gerekiyor.
ssh pi@
Giriş yaptığımızda aşağıdaki komutları kullanarak dosyalarımızı kopyalıyoruz.
cd /tmptar xzf rt-kernel.tgz cd önyüklemesi sudo cp -rd * /boot/ cd../lib sudo cp -dr * /lib/ cd../overlays sudo cp -dr * /boot/overlays cd../ Broadcom sudo cp -dr bcm* /boot/
Bundan sonra yapılması gereken /boot/config.txt dosyasını düzenlemek ve aşağıdaki satırı eklemektir.
çekirdek=kernel8.img
Pi'yi yeniden başlattıktan sonra her şey iyi çalışıyor olmalı.
Yeni çekirdeğin başarıyla yüklenip yüklenmediğini kontrol etmek için çalıştırabilirsiniz.
unname -a
emretmek
Önerilen:
Bilgisayar Derlemesi 1 KCTC 2. Oturum: 14 Adım
Bilgisayar Yapısı 1 KCTC 2. Oturum: Yapınızı tamamlamak için aşağıdaki parçalara ihtiyacınız olacak:1) Anakart2) CPU3) Isı emici + Fan4) RAM5) Bilgisayar Kasası6) Sabit Disk7) Güç Kaynağı8) Grafik Kartı
Steam Punk UPS'inizi Wi-fi Yönlendiriciniz için Saatlerce Çalışma Süresi Elde Etmek İçin: 4 Adım (Resimlerle)
Wi-fi Yönlendiriciniz için Saatlerce Çalışma Süresi Elde Etmek İçin UPS'inizi Steam Punk: Yönlendiricinizi ve fiber ONT'yi çalıştıran transformatörlerin onu geri dönüştürebilmesi için UPS'nizin 12V DC pil gücünü 220V AC güce dönüştürmesi konusunda temelde nahoş bir şey var. 12V DC! Ayrıca [tipik olarak
555 Zamanlayıcı Atmega328'i Kesintiye Uğratmak İçin Sinyal Yaymak İçin: 7 Adım
555 Zamanlayıcı Sinyali Kesinti Vermek İçin Atmega328: Bu devrenin temel amacı enerji tasarrufu yapmaktır. Bu yüzden, arduino hakkında konuşmayacağım çünkü kartın kendisinin nihai bir ürün için gereksiz güç yükü var. Gelişim için harikadır. Ancak, batt üzerinde çalışan nihai projeler için pek iyi değil
COVID 19 için Uygulanan Arduino için Sıcaklık Sensörü: 12 Adım (Resimlerle)
Arduino için Sıcaklık Sensörü Applied for COVID 19: Arduino için sıcaklık sensörü, insan vücudunun bir işlemcisinin sıcaklığını ölçmek istediğimizde temel bir unsurdur. Arduino ile sıcaklık sensörü, ısı seviyesini alıp ölçmek için temas halinde veya yakın olmalıdır. İşte böyle
Kulüpler, Öğretmenler için Makerspaces vb. için basit "Robot Kiti": 18 Adım
Kulüpler, Teachers Makerspaces vb. için Basit "Robot Kiti": Fikir, "Orta TN Robotik Sanatlar Topluluğu" üyelerimiz için küçük ama genişletilebilir bir kit oluşturmaktı. Özellikle çizgi takibi ve hızlı yolculuk gibi yarışmalar için kit etrafında atölye çalışmaları planlıyoruz. Bir Arduino ekledik