Ne u-boot dtb dosyası nedir ve nasıl kullanabilirim (BeagleBoard xM)?


13

BeagleBoard xM (Rev. C) için özel bir Linux oluşturmaya çalışıyorum. Ben C / C ++ bir sürü yapmak ama sıfırdan Linux inşa ve yükleme bir acemi değilim.

Umut verici görünen Yocto Project derleme aracını ( https://www.yoctoproject.org/ ) kullandım - u-Boot önyükleme yükleyicisi, Linux çekirdeği ve kök dosya sistemi için dosyalar oluşturdu.

Bu sayfada mikro SD kartın Yocto tarafından oluşturulan dosyalarla ayarlanması için talimatlar verilmektedir. Ancak, görüntü dosyaları kurulum talimatlarında belirtilmeyen bir ".dtb" dosyası içerir.

Bu dosyanın kart donanımı ile bir ilgisi var mı? Çeşitli siteler yükleme dtd dosyaları söz (belki uEnv.txt?) Ama ayrıntılı bilgi bulamadım.

MLO ve u-boot.img ile önyükleme bölümünü ayarlamak için yukarıdaki talimatları kullandım ve uEnv.txt ile biraz uğraştım. Ayrıca kök dosya sistemi ile ikinci bir bölüm kurdum.

Önyükleme ve giriş yapabildim (seri bağlantı noktası konsolu üzerinden), ancak video ve ethernet dahil tüm USB cihazları gibi kart donanımının çoğuna benzemiyordu. Bunun nedeni .dtb dosyasını kullanmadığım için olabilir mi?

Birisi dtb'yi ve beagle tahtasında nasıl kullanılacağını açıklayabilir mi? Teşekkürler!


Dosya adını yanlış okuduğum ortaya çıkıyor - aslında bir ".dtd" dosyası olduğunu düşündüm ama GERÇEKTEN ".dtb" - bu yüzden bu konuda bilgi bulamadım. Soru şimdi güncellendi.
Jeremy

Kavramı daha iyi anlamak için QEMU sanal cihazı ile minimal örnek: stackoverflow.com/questions/17488320/…
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功

Yanıtlar:


13

Ne arayacağımı anladıktan sonra kendi sorumu cevaplıyorum. Bir "dtb" dosyası bir Aygıt Ağacı Blob'u (veya İkili) içerir (güzel açıklama burada ). Bu, kart hakkındaki donanım bilgilerini Linux çekirdeğine aktarmanın yeni (er) yoludur.

U-Boot ile belleğe yüklenebilir ve çekirdeğe aktarılabilir.

Kullandığım u-Boot komutları şunlardır:

setenv bootargs 'console=tty0 console=ttyO2,115200n8 root=/dev/mmcblk0p2 rootwait rootfstype=ext4 rw'
fatload mmc 0:1 0x80300000 zImage
fatload mmc 0:1 0x815f0000 beagle-xm.dtb
bootz 0x80300000 - 0x815f0000

Görüntü çekirdeği ve beagle-xm.dtb aygıt ağacı blobudur. UEnv.txt içinde bir "uenvcmd = ..." değişkeni ayarlayarak önyükleme işlemini otomatikleştirdim (yukarıdakilerle birlikte), ancak biraz çirkin ve muhtemelen daha iyi yollar var.

Bunun önyüklendiğini ve aygıt ağacını yüklediğini söylediğini unutmayın. Ancak, hala bir USB cihazım veya videom yok (anlayabildiğim kadarıyla). Ancak bunun farklı bir sorun olabileceğinden şüpheleniyorum.


3
Bu, kart hakkındaki donanım bilgilerini Linux çekirdeğine aktarmanın yeni (er) yoludur. Donanım bilgilerini çekirdeğe aktarmanın daha önceki bir yolu yoktu. Bunun yerine, çekirdek tüm bilgileri statik olarak içermelidir ve bu nedenle tüm bu eşlemeleri listelemek için panoya özgü bir C dosyasına sahip olacaktır. Bu, çekirdek bakış açısından bir bakım kabusu oldu.
BatchyX

Teşekkürler! Dtb dosyasını nasıl yükleyeceğimi anladım ve Linux şimdi sürücüleri yüklemekle ilgili çeşitli mesajlar başlatıyor ve yayınlıyor, ancak herhangi bir USB cihazı (ethernet modülü dahil) göremiyorum. Yeni soruya bakın: bağlantı . Belki Linux'ta manuel olarak yapılandırmam gereken bir şey var mı?
Jeremy

Ama dtb dosyası için hangi adresi kullanmalıyım? Örneğin, zImage'ım 0x43000000 adresine giderse (0x80300000 üzerindeki örnek yerine), dtb nereye gitmeli?
André van Schoubroeck

2

Ben beaglebone siyah Ubuntu 14.04 kullanıyorum, bu yüzden benim kurulum biraz farklı olabilir, ama işte nasıl özel bir dtb yükledi:

UEnv.txt dosyasına aşağıdakileri içeren bir satır ekleyin: dtb=name-of-desired.dtb

Aranan konumlar burada belirtildiği gibi olmalıdır . Benim için bu, /boot/dtbs/linux-kernel/linux-çekirdeğin yüklü sürümün adı olduğu yerdi.


0

2 dtb olduğunu unutmayın. U-boot dtb ve çekirdek dtb. Bunlar 2 farklı şey. U-boot board dts / dtb her zaman kullanılmaz, zorunlu değildir, u-boot btw u-boot içine gömmek veya u-boot için bitiştirmek "u-boot" dtb kullanabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.