Сайт | Скачать | Видео | Wiki

Автор Тема: Правка dtb  (Прочитано 56069 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Правка dtb
« : 29 Ноябрь 2018, 14:01:29 »
Получить свой android dtb
поставить терминал в андройд и из него так же пытаться вытаскивать dtb

Распаковать скачанное firmware (или полученный dd img) одним из вариантов:
1. extract-dtb ;
2. 
Код
wget https://gist.githubusercontent.com/jberkel/1087743/raw/5be96af0e1c1346678379b0c0f0330b71df51f25/split_bootimg.pl
chmod a+x ./split_bootimg.pl
./split_bootimg.pl ./recovery.img
3. https://aur.archlinux.org/packages/android-unpackbootimg/
RK3xxx Firmware Tools by SergioPoverony
4. armlogic

Распаковать dtb:
Код
dtc -b 0 -O dts -I dtb -o rk3328-rock64.dts rk3328-rock64.dtb
Запаковать dtb:
Код
dtc -b 0 -O dtb -I dts -o rk3328-rock64.dtb rk3328-rock64.dts
Сравнивать (Команда - Сравнить файлы) и редактировать удобно в mc
Подсветки синтаксиса (в аттаче)
еще полезно выполнить полное сравнение файла trn9 и evb (я пользуюсь наглядной утилитой meld, там сразу видно , в чём различие и можно на лету все править)

получить оригинальный dtb (например из прошивки) с рабочими параметрами
 если это бинарный dtb, то преобразовать утилитой "dtc" в исходник dts
 проанализировать отличия с существующими исходниками из образа, которые оказались наиболее близкими (рабочими) для данной модели или читать документацию к ядру (dts) и писать с нуля нужные секции , основываясь на доках
 пробовать собирать утилитой "dtc" исправленные версии и тестировать на железке

    Разобрал dtb

Я так понял вы разобрали тот dtb, что идёт в Armbian ? Эти исходники есть тут  :)
https://github.com/150balbes/rockchip-kernel/tree/le/arch/arm64/boot/dts/rockchip

нужно получить исходники от вашей модели и сравнивать их с исходниками рабочего dts в ядре (которое идёт в Armbian) и на основании этого создать свой гибридный вариант dtb для ядра Armbian (изменять секции,  и параметры, которые отвечают за SD карту) для теста.  Когда будет рабочий вариант, я смогу включить его в исходники, что-бы входил в образы и ядро при сборке.

как вытащить и работать с dtb
« Последнее редактирование: 23 Март 2020, 15:02:59 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Правка dtb
« Ответ #1 : 11 Декабрь 2018, 14:35:30 »
    делать dtb под этот бокс (как?)

получить оригинальный dtb (например из прошивки) с рабочими параметрами
 если это бинарный dtb, то преобразовать утилитой "dtc" в исходник dts
 проанализировать отличия с существующими исходниками из образа, которые оказались наиболее близкими (рабочими) для данной модели или читать документацию к ядру (dts) и писать с нуля нужные секции , основываясь на доках
 пробовать собирать утилитой "dtc" исправленные версии и тестировать на железке
Разобрал dtb
Код
dtc -b 0 -O dts -I dtb -o rk3328-rock64.dts rk3328-rock64.dtb
Получил текстовый файл 2903 строки.

Пример запуска неработающего ethernet

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re: Правка dtb
« Ответ #2 : 11 Декабрь 2018, 16:43:19 »
 С ethernet решилось просто:
Секция ethernet@ff540000, устанавливаем status = "disabled"
Секция ethernet@ff550000 (phy-is-integrated), status = "okay"
 А вот wifi никак.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Правка dtb
« Ответ #4 : 15 Январь 2019, 12:33:44 »
вытащить свой dtb из родной прошивки и его использовать как донора для данных.
Как это попроще сделать?
Из под андроида его не видно? не получится?
Может просто прошивку у производителя скачать и раздербанить...

Оффлайн balbes150

  • Ветеран
  • *****
  • Сообщений: 599
  • Репутация: +5/-0
Re: Правка dtb
« Ответ #5 : 15 Январь 2019, 16:50:20 »
Как это попроще сделать?
Это зависит от платформы. Для Amlogic - есть инструмент
https://forum.freaktab.com/forum/tv-player-support/amlogic-based-tv-players/opensource-amlogic-tools-rebuild-revamped-customization-tool/725956-11-09-2018-amlogic-tools-v5-5-0-funeral-day

конкретно этим я не пользовался, но принцип я так понял у них похожий. Распаковать прошивку для своего устройства и в каталоге temp должны быть все файлы. Потом из своего dtb преобразовать в DTS утилитой DTC.

Для Rockchip я пока практически не пользовался ни чем, но по инфе , есть несколько инструментов для схожей работы. Вроде есть даже утилита, которая всё вытаскивает сразу из самого устройства через кабель USB (как при прошивке).

http://4pda.ru/forum/index.php?showforum=551

http://4pda.ru/forum/index.php?showtopic=614530

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Правка dtb
« Ответ #6 : 28 Январь 2019, 10:20:57 »
Скачал прошивку андроид своей коробки с сайта производителя
Не знаю как оттуда вытащить dtb
kpartx -av видит один раздел, который не примонтировать - mount не понимает какая ФС
Допустим, я получу выкачаю именно свою прошивку. Такой дамп будет чем-то лучше в плане извлечения dtb ?
На буржуйских форумах никто не выкладывал dtb А5 ?

Оффлайн Gerpes

  • Пользователь
  • **
  • Сообщений: 58
  • Репутация: +0/-0
Re: Правка dtb
« Ответ #7 : 28 Январь 2019, 20:27:42 »
Скачал прошивку андроид своей коробки с сайта производителя
Не знаю как оттуда вытащить dtb
kpartx -av видит один раздел, который не примонтировать - mount не понимает какая ФС
Допустим, я получу выкачаю именно свою прошивку. Такой дамп будет чем-то лучше в плане извлечения dtb ?
На буржуйских форумах никто не выкладывал dtb А5 ?
Андроид .img для телефона когда-то, расковыривал из-под винды какой-то софтиной, вытаскавал system. Там ext*, но как-то по-своему. Обратно уже не слепить. Вроде еще 7z нужен был.
https://www.mediafire.com/file/vyhvxsbddjr59n6/ext.tar.gz/file
Две тулзы, уже не помню для чего какая, для кастомных прошивок. К слову, для бананы так и не нашел этот dtb, в линукс образах его нет. Андроид еще не ковырял. Все равно потом что с ним делать, точно не знаю.
« Последнее редактирование: 28 Январь 2019, 21:36:06 от Gerpes »

Оффлайн balbes150

  • Ветеран
  • *****
  • Сообщений: 599
  • Репутация: +5/-0
Re: Правка dtb
« Ответ #8 : 28 Январь 2019, 21:55:37 »
Не знаю как оттуда вытащить dtb
только после обработки специальной программой-распаковщиком

Допустим, я получу выкачаю именно свою прошивку. Такой дамп будет чем-то лучше в плане извлечения dtb ?
Если есть софт для распаковки - то файл проще разбирать.

К слову, для бананы так и не нашел этот dtb, в линукс образах его нет.
То, что не нашли - не значит, что его нет. Возможно он входит в состав ядра, после обработки утилитой mkimage из ядра и dtb получают , как бы один файл, понятный u-boot как ядро и dtb. По такому принципу ранее лепили Openelec.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Правка dtb
« Ответ #9 : 29 Январь 2019, 09:38:49 »
после обработки специальной программой-распаковщиком
Так не томи - дай рецепты  ;)

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Правка dtb
« Ответ #10 : 30 Январь 2019, 18:23:33 »
Код
root@2a:1# ext2simg /dev/mmcblk2boot0 b0a
error: Unknown code ext2 19 while reading /dev/mmcblk2boot0

root@2a:1# ext2simg /dev/mmcblk2boot1 b0a
error: Unknown code ext2 19 while reading /dev/mmcblk2boot1

root@2a:1#
root@2a:1# ext2simg /dev/mmcblk2rpmb  b0a
error: Unknown code ext2 36 while reading /dev/mmcblk2rpmb

root@2a:1#
root@2a:1# ext2simg /dev/mmcblk2  b0a
error: Unknown code ext2 19 while reading /dev/mmcblk2


только после обработки специальной программой-распаковщиком
https://stackoverflow.com/questions/8663891/how-to-mount-the-android-img-file-under-linux
https://forum.xda-developers.com/showthread.php?t=1588461
http://4pda.ru/forum/lofiversion/index.php?t660562-120.html
Код
# file mxq_rk3328_d4_8.1_IT6334_a5xmax+_20181012_r1.img 
mxq_rk3328_d4_8.1_IT6334_a5xmax+_20181012_r1.img: data
simg2img /mnt/mmcblk0p2/-2a-work/img/mxq_rk3328_d4_8.1_IT6334_a5xmax+_20181012_r1.img  sys.raw
Invalid sparse file format at header magi
Failed to read sparse file
Что я сделал не так?
img отсюда
« Последнее редактирование: 30 Январь 2019, 18:25:26 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Правка dtb
« Ответ #11 : 30 Январь 2019, 18:44:58 »
https://unix.stackexchange.com/questions/64628/how-to-extract-boot-img
Что-то вроде распаковывает...
Код
9		mxq_rk3328_d4_8.1_IT6334_a5xmax+_20181012_r1.img-base
1 mxq_rk3328_d4_8.1_IT6334_a5xmax+_20181012_r1.img-cmdline
10 mxq_rk3328_d4_8.1_IT6334_a5xmax+_20181012_r1.img-pagesize
487263498 mxq_rk3328_d4_8.1_IT6334_a5xmax+_20181012_r1.img-ramdisk.gz
329728 mxq_rk3328_d4_8.1_IT6334_a5xmax+_20181012_r1.img-zImage

# gzip -d mxq_rk3328_d4_8.1_IT6334_a5xmax+_20181012_r1.img-ramdisk.gz
gzip: mxq_rk3328_d4_8.1_IT6334_a5xmax+_20181012_r1.img-ramdisk.gz: not in gzip format

simg2img /mnt/ssh/pra/190101/android_bootimg_tools.gz/1/mxq_rk3328_d4_8.1_IT6334_a5xmax+_20181012_r1.img-ramdisk.gz q.rqw
Invalid sparse file format at header magi
Failed to read sparse file
:'(
« Последнее редактирование: 30 Январь 2019, 18:58:20 от sfs »

Оффлайн balbes150

  • Ветеран
  • *****
  • Сообщений: 599
  • Репутация: +5/-0
Re: Правка dtb
« Ответ #12 : 30 Январь 2019, 21:54:41 »
Так не томи - дай рецепты
дык я уже давал ссылки на софт. Сам я пока это не проверял для RK.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re: Правка dtb
« Ответ #13 : 31 Январь 2019, 08:57:09 »
уже давал ссылки на софт.
Какой-то подход виндузятный. Нужно понимание, как это работает.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re: KI Plus S905D 1GB 8GB
« Ответ #14 : 31 Январь 2019, 09:00:06 »
Утилита создаёт полную (точную) бинарную копию всей eMMC.
dd ;)
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64