GNU/Linux >> Znalost Linux >  >> Linux

Jak upravit soubor kernel DTB

Proč nevygenerujete nové dtb?

DTB (Device tree blob/binary) je hardwarová databáze, která představuje hardwarové komponenty desky.

U-boot předá jádru informační strukturu desky, která je odvozena z hlavičkového souboru v U-Bootu.

DTB je kompilován speciálním kompilátorem, který vytváří binární soubor ve správné formě, aby mu U-Boot a Linux porozuměli.

DTC (Device Tree Compiler) překládá soubor stromu zařízení do strojově čitelného binárního souboru, kterému U-Boot a jádro Linuxu rozumí.

Přímý způsob použití DTC.

$ dtc -O dtb -o arm_board.dtb -b 0 arm_board.dts

získat strom zařízení v textu z dtb.

dtc -I dtb -O dts arm_board.dtb

board.dts je binárně vytvořen výše uvedeným příkazem. -O určuje výstupní formát. -o flag je výstupní soubor. -b 0 určuje fyzický spouštěcí CPU.

Pak udělejte

$ make ARCH=arm arm_board.dtb

Dalším přístupem může být použití make dtbs toto zavolá dtc. arch/arm/boot/dts/Makefile uvádí, které DTB by měly být generovány v době sestavení. Další způsob, jak jej zkompilovat. make to vloží do tohoto umístění stromu jádra /arch/arm/boot/dts

Podívejte se na tento strom zařízení pro figuríny


Chci to aktualizovat o 2 roky více zkušeností na toto téma.

Soubory DTS v úložišti Linuxu jsou směsí DTS a Direktivy preprocesoru C (#include, #define atd.). Když je tedy zkompilován původní DTB, preprocesor se spojí s odkazovanými soubory a vytvoří čistý soubor DTS. dtc převede jeden soubor DTS na soubor DTB.

Pokud tedy chcete upravit soubor DTS jádra a zkompilovat jej, máte dvě možnosti:

  1. Stačí spustit make dtbs který toto vše automaticky zvládá
  2. Ručně spusťte preprocesor (cpp -nostdinc -I <include dir> -undef -x assembler-with-cpp ... ) a poté zkompilujte výstup s dtc .

Linux
  1. Jak přejmenovat soubor v Linuxu?

  2. Jak třídit soubor na místě

  3. Jak globálně upravit výchozí PYTHONPATH (sys.path)?

  1. Jak uložit nebo exportovat vlastní konfiguraci jádra Linuxu?

  2. Co je soubor u-Boot dtb a jak jej mohu použít (BeagleBoard xM)?

  3. Jak včas nakonfigurovat jádro Linuxu, aby se restartovalo v panice?

  1. Jak upravit soubor na místě?

  2. Jak downgradovat jádro na 12.10?

  3. CentOS / RHEL 7 :Jak upravit příkazový řádek jádra