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
iniHanya 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:
- Jalankan saja
make dtbs
yang secara otomatis menangani semua ini - Jalankan praprosesor secara manual (
cpp -nostdinc -I <include dir> -undef -x assembler-with-cpp ...
) lalu kompilasi hasilnya dengandtc
.