GNU/Linux >> Belajar Linux >  >> Linux

Cara memodifikasi file DTB kernel

Mengapa Anda tidak membuat dtb baru?

DTB(Device tree blob/binary), adalah basis data perangkat keras yang mewakili komponen perangkat keras papan.

U-boot meneruskan struktur informasi papan ke kernel, yang berasal dari file header di U-Boot.

DTB dikompilasi oleh kompiler khusus yang menghasilkan biner dalam bentuk yang tepat untuk dipahami oleh U-Boot dan Linux.

DTC (Device Tree Compiler) menerjemahkan file pohon perangkat ke biner yang dapat dibaca mesin yang dapat dipahami oleh U-Boot dan kernel Linux.

Cara mudah menggunakan DTC.

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

untuk mendapatkan susunan perangkat dalam bentuk teks dari dtb.

dtc -I dtb -O dts arm_board.dtb

board.dts adalah biner yang dibuat oleh perintah di atas. -O menentukan format keluaran. -o bendera adalah file keluaran. -b 0 menentukan CPU booting fisik.

Lalu lakukan

$ make ARCH=arm arm_board.dtb

Pendekatan lain mungkin hanya menggunakan make dtbs ini akan memanggil dtc. arch/arm/boot/dts/Makefile daftar DTB mana yang harus dibuat pada waktu pembuatan. Ini cara lain untuk mengompilasinya. make akan meletakkannya di lokasi kernel tree /arch/arm/boot/dts ini

Lihat Device Tree for Dummies

ini

Hanya ingin memperbarui ini dengan pengalaman 2 tahun lebih banyak di bidang ini.

File DTS di repositori Linux adalah campuran dari DTS dan Arahan preprosesor C (#include, #define, dll.). Jadi ketika DTB asli dikompilasi, praprosesor menautkan ke file referensi untuk membuat file DTS murni. dtc mengonversi file DTS tunggal menjadi file DTB.

Jadi jika Anda ingin memodifikasi file kernel DTS dan mengompilasinya, maka Anda memiliki dua pilihan:

  1. Jalankan saja make dtbs yang secara otomatis menangani semua ini
  2. Jalankan praprosesor secara manual (cpp -nostdinc -I <include dir> -undef -x assembler-with-cpp ... ) lalu kompilasi hasilnya dengan dtc .

Linux
  1. CentOS / RHEL 7 :Cara memodifikasi baris perintah kernel

  2. Bagaimana cara membuat file jarang?

  3. Cara grep \n dalam file

  1. Bagaimana cara menyimpan atau mengekspor konfigurasi kernel Linux khusus?

  2. Apa itu file dtb u-Boot dan bagaimana cara menggunakannya (BeagleBoard xM)?

  3. Bagaimana cara menyalin file secara transaksional?

  1. Cara Memodifikasi File Di Tempat?

  2. Bagaimana Cara Menurunkan Versi Kernel Pada 12.10?

  3. Bagaimana Mengganti Nama File di Linux?