Hlavní navigace

Vlákno názorů k článku Co je nového u Raspberry Pi? Všechno! od muf - Budu to muset vyzkoušet až budu mít čas,...

  • Článek je starý, nové názory již nelze přidávat.
  • 11. 2. 2015 8:19

    muf (neregistrovaný)

    Budu to muset vyzkoušet až budu mít čas, ale momentálně mně smysl device tree trochu uniká.

    Jsou motivací periférie, které nelze detekovat pomocí PnP mechanismů třeba na PCI(na těchto deskách nebývá), USB atd??
    Proč se ale v případě jednoduchého počítače jako je Raspberry trápit s vytvářením fragmentů device tree, když můžu modul ovladače zavést prostě ručně?
    Znamená zavedení device tree nějaké problémy při práci s GPIO piny, pokud se nebudu hrabat v nastavení device tree? S přímým přístupem problém přece být nemůže a opět, pokud chci na GPIO přistupovat standardně přes /dev/... zavedu odpovídající modul(který jsem si napsal třeba sám) ručně....

    Možná se ptám blbě - moc času jsem Raspberry apod. zatím nevěnoval - ale dokáže to někdo objasnit?

  • 11. 2. 2015 9:08

    Přezdívka

    Já se v tom moc nevyznám, ale pochopil jsem to tak, že je to snaha, aby se nemuselo pro každou desku i jen s minimální odlišností muselo kompilovat jádro, které na jiné desce nepoběží.

  • 11. 2. 2015 9:47

    Ondřej Caletka

    Ano, jde především o periferie na sběrnicích, které nepodporují enumeraci. Tam samotné zavedení modulu ovladače nestačí, ovladač neví, kde a zda je nějaké zařízení zapojeno. V některých případech se dá nové zařízení vynutit za běhu, například u I²C:

    # echo pcf8583 0x50 > /sys/bus/i2c/devices/i2c-1/new_device

    V jiných situacích ale nic takového udělat nejde, příkladem je třeba v článku uvedené softwarově ovládaná 1-Wire, kde je jediná možnost (bez Device Tree) překompilovat kernel.

  • 11. 2. 2015 13:40

    muf (neregistrovaný)

    Modulu můžu předat parametr např. s adresou pokud je napsán tak, že jej rozpozná...

    Chápu to co píšete tak, že se to týká např. nějakého čipu na i2c, který je tam na nějaké adrese. Nelze jej jednoduše detekovat a tak odpovídající modul/ovladač o něm odněkud musí něco vědět.... to je jasné.
    Ale jak si vysvětlit nefunkčnost vlastní i2c sběrnice o které píše autor článku?

  • 11. 2. 2015 14:05

    Ondřej Caletka

    Protože definice I²C řadiče není součástí základního Device Tree pro RPi. A to celkem záměrně, aby se zamezilo konfliktům, kdy stejný I²C řadič ovládá jak VideoCore, tak i CPU. Dříve se to řešilo poměrně nesystémově blacklistem na moduly spi-bcm2708 a i2c-bcm2708. Samozřejmě, je možné jen povolit I²C řadič správným parametrem pro Device Tree, zapsaným do souboru config.txt a tak obnovit chování před zavedením Device Tree.

  • 14. 2. 2015 17:55

    me (neregistrovaný)

    Posledni zmeny v kernelu me zasahly uplne stejne, RTC modul na I2C nebyl dostupny, I2C sbernice nenalezeny. Tento clanek mi hodne pomohl. Krome vytvareni vlastniho dtb souboru se lze take podivat do /boot/overlays, Raspbian tam ma nekolik binarnich dtb souboru pro bezne periferie, me se treba hodil "/boot/overla­ys/ds1307-rtc-overlay.dtb". Do /boot/config.txt jsem pridal radku

    dtoverlay=ds1307-rtc-overlay.dtb

    a po rebootu byla dostupna I2C sbernice i hodiny RTC. Ale nekomu muze stacit jednodussi resene, pridani radky

    dtparam=i2c1

    aktivuje /dev/i2c-1, pak uz muzete pouzivat nastroje ktere znate z minulosti.

    Kompilator dtb souboru je v Raspbianu v balicku device-tree-compiler; komilator "dtc" umi prekladat jak z textu do binarniho formatu tak i preklad opacnym smerem, tedy rozkodovani binarniho formatu do textu.