Linux driver derleme ile ilgili birkaç sorum var.

fide

Meraklı ve "nasıl" sorusunu seven biri
Katılım
8 Eylül 2021
Mesajlar
2,333
Raspberry Pi 4 + Sixfab mPCIe shield + Quectel EC25 LTE modül ile Raspberry Pi'yi internete bağlamaya çalışıyorum.
Sizxfab sitesindeki yönergeyi takip ettim ama bir noktada istenen cevaplar gelmedi ve ne yapacağımı bilemedim. Empa ve Qeuctel yetkilileri ile görüştüm. Sağolsun Mehmet Cihangir Bey yardımcı oldu ve güncel driverları paylaştı. Beraber Windowsta sürücü kurulumu yaptık. Ama linux bilgisinin yeterli olmadığını söyledi. Paylaştığı belgelerden biri aşağıda.
Belgenin 24.sayfası 3.7 başlığında anlatılan kernel olayını anlayamadım. Kernel dizini içinde bir ayar dosyasının açılmasını yada oluşturulmasını sonra da bunun derlenmesini istiyor. Bu noktada tıkandım. Linuxten anlayan var mı? Bu konuda yardımcı olabilir misiniz?
2024 ile başlayan rar dosyası içinde driver dosyalarının olduğu klasörler var. Yüzlerce klasör var ama farklı kernel versiyonlarına ait olduklarını düşünüyorum ama net bir bilgim yok.
 

Ekler

Dokümanlarda driver kaynak kodunu linux kernel kaynak kodlarına ekleyip komple linux'u build etmeyi anlatıyor. Bu daha karmaşık bir süreç. Kernel configurasyon programını çalıştırıp driver seçilmesi gerekiyor vs vs.

Onun yerine driver'i ayrı olarak build etmek daha kolay olur. Aşağıda prosedür anlatılıyor.


Eğer kernel kodu bir yerde varsa (github veya tar.gz), ben harici olarak build edip ilgili Makefile ve prosedürü yazabilirim.
 
Abi teşekkür ederim.
Raspberry pi 4~5 üzerinde çalışacağı için raspbian söz konusu. Raspbian açık kaynak mı bilmiyorum. Raspberry foundation bu konuda biraz ketum diye biliyorum. Bazı dosyaları açık olarak vermiyor.
 
farklı kernel versiyonlarına ait olduklarını düşünüyorum
doğru

Kernel dizini içinde bir ayar dosyasının açılmasını
fikrimce, kernel directory adlandırılmış kısımda 20241125.rar driver dosyasında elindeki PI kernel id'sine eşit klasörün isminden bahsediyor.
o klasörün altındakı Makefile dosyasının içinde bcmrpi_defconfig target olmalı.
1750553373097.png
 
export CROSS_COMPILE=arm-none-linux-gnueabi- eksik olabilir, kurulmuş devtool versyon numarası eklenmeli bunun sonuna.
 
Yalnız klasör içinde 6.8 versiyonu var. Raspberry pi kernel 6.12
Kernel versiyonu önemli ise burada başka problem oluşacak.
 
Kernel sürümleri arasında bir geriye doğru uyumluluk garantisi yok. O yüzden 6.8 de doğru bir şekilde derlenen sürücü, 6.12 de derlenmeyebilir. Derlense doğru çalışmayabilir. Deneyip görmek lazım. Raspian dağıtımın hangi sürümü şu anda kurulu karta?
 
Abi bilgisayar başında değilim. Geçince yazayım.
 
Yalnız klasör içinde 6.8 versiyonu var. Raspberry pi kernel 6.12
Kernel versiyonu önemli ise burada başka problem oluşacak.
ubuntu yok mu acaba? Veya klasördeki versyonlarla aynı PI için alternatif kernel?
6.1.1 ile de deneme yapılabilir.

Bu arada - export CROSS_COMPILE=arm-none-linux-gnueabi- çalıştırılması sakıncalı olabilir. Cross compile (bir işletim sistemi üzerinde diğer işletim sistemine için derleyen compiler'ler) için kullanılmış olabilirler.
 
Linux'la uğraşmayalı oldukça uzun zaman oldu ve çok fazla şeyi unutmuşum. O yüzden hiç karışmayayım diyordum ama belki çıkış yolu bulmaya ufacık da olsa bir katkısı olur diye yine de yazmayı tercih ettim.

Slackware Linux üzerinde çalışırken, evet gerektiğinde kernel derlemesi yapıyorduk ama eğer zorunlu değilse yalnızca modülü derleyip, çıkan ürünü (açılışta bir kez) insmod veya modprobe ile kernel'a tanıtıyorduk.

Sizin ZIP dosyanızın içinde modüle ait her şey var. Hangi kernel ile çalışacaksa, onun kurulu olduğu ortamda modüle "make" işlemi yapıp, çıkan ürünü (sanıyorum "quectel-CM") insmod veya modprobe ile devreye sokabilmeniz lazım. Tabii kernel sürümü ile bir uyumsuzluğu yoksa...
 
Eğer raspian üzerine GCC, make, lzma ve benzeri linux derlemesi için gereken bileşenler kurulursa cross compile yapmaya gerek kalmaz. cross compile ne zaman gerekli olur? Linux kernel üzerinde doğrudan çalışıyorsan veya linux gibi derlemesi uzun süren başka bir yazılım bileşeninin derlenmesi gerekiyorsa, çünkü çok sayıda işlemci çekirdeğinin çalıştığı desktop'ta derleme performansı çok daha iyi olur.
 
fidenet@fidenet:~ $ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

fidenet@fidenet:~ $ hostnamectl
Static hostname: fidenet
Icon name: computer
Machine ID: 21488bc3e63f4cf9994308d54b765a01
Boot ID: 88e2ec5cd68d462e8fb1e63dd9e99bdb
Operating System: Debian GNU/Linux 12 (bookworm)
Kernel: Linux 6.12.25+rpt-rpi-v8
Architecture: arm64
 
Abi derleme işi basitmiş. Sadece make komutu ile oldu. Sudo make install komutu ile de driveri kurdu diye düşünüyorum. Ama sonrasında cihazın kendisinde bir sıkıntı ıktı. Seri port bir bağlanıyor sonra susuyor. AT komutuna cevap vermiyor.

Sonra Quectel Communication Manager isimli dosyayı derledim. Onda da garip bir hata çıktı. Chatgpt önerisi ile hatayı düzelttim. Kodu derleyip çalıştırdım ama kod çalışırken sürekli şuna bağlanamadım, buna bağlanaadım diye hata veriyor.
Sanırım bugün begatif enerji günümdeyim. Neye elimi atsam çalışmamaya başlıyor. Saat 11:00den 16:00 kadar LTE modemle uğraştım. En son sinir olup kaldıırdırm. Aldığım bir ürün de ilk defasında çalışsa şaşarım zaten.
Odrive, BLDC Motor sürücü, UWB Decawave DMW1000 kartlar elektronikten soğuttu resmen beni. Bakalım bunu da çözecem inşallah ama başka acil işler var. Onlara geçtim.
 

Forum istatistikleri

Konular
7,874
Mesajlar
130,317
Üyeler
3,159
Son üye
ozencmakine

Son kaynaklar

Son profil mesajları

Mutluluğun resmi illa güzel çizilmiş tablo olmak zorunda değil.Bazen basit bir çizgi,doğru bir renk,yada küçük bir detay
Python Geliştirmeye eklediğim yapay zeka sunucusu, yeni başlayanlar için roket etkisi
Bir insanın zeka seviyesinin en kolay tesbiti, sorduğu sorulardır.
yapay zeka interneti yedi bitirdi, arama motoru kullanan, forumlara yazan kaldı mı ?
az bilgili çok meraklı
Back
Top