Well, darn.
If you do decide to add support - let me know - I'll be happy to provide you with whatever I can to help with the effort.
Well, darn.
If you do decide to add support - let me know - I'll be happy to provide you with whatever I can to help with the effort.
Hello, guys.
Can you help me with DTB/DTS extracting from my Android 7.1.1 TV box?
Thank you!
Whoa! You are genius!!!
I tried to decompile it from boot.img, but it is in the /dev/dtb !!!
Thank you a lot!
You saved me a lot of time!
kszaq , there is some problem with downloaded file.
I tried
dd if=/dev/dtb > /sdcard/dtb.img
and
cat /dev/dtb > /sdcard/dtb.img
but file, downloaded with
adb pull /sdcard/dtb.img
has not same file header, not like in your dtb files, if I view it in HEX...
It also can't be processed with dtc, that was installed on ubuntu with command
sudo apt-get install device-tree-compiler
Result is
dtc -I dtb -O dts -o dts dtb.img
FATAL ERROR: Blob has incorrect magic number
and
boot.img-ramdisk.gz dtb.img env.img extract-dtb.py mmcblk0boot0.img mmcblk0boot1.img mmcblk0rpmb.img split_bootimg.pl
root@scw-97b47e:/tmp/qqq# fdtdump dtb.img
/dts-v1/;
// magic: 0x414d4c5f
// totalsize: 0x2000000 (33554432)
// off_dt_struct: 0x3000000
// off_dt_strings: 0x206d7867
// off_mem_rsvmap: 0x20202020
// version: 538976288
// last_comp_version: 538976288
// boot_cpuid_phys: 0x31303271
// size_dt_strings: 0x20202020
// size_dt_struct: 0x20202020
Segmentation fault
My downloaded file is here dtb.img - Google Drive .
Can you take a loot at him?
Thank you!
Aha, looks like I fixed it, it normally processed with
dtc -I dtb -O dts -o dts dtb.img
and/or
fdtdump dtb.img> dts2
These files are from Beelink GT1 Ultimate, Android 7.1.1
kszaq , I found a very strange thing.
In my extracted dts file there is info
amlogic-dt-id = "gxm_q201_1g";
and
memory@00000000 {
device_type = "memory";
linux,usable-memory = <0x0 0x100000 0x0 0x3ff00000>;
};
Ie, in /etc/dtb there is file for 1GB RAM version of the TV box, but I have Ultimate version, that has 3GB RAM and Android used 3GB very well.
How could it be?
Looks like Android doesn't use that dtb file and developers of Beelink didn't updated DTB file for Ultimate version with 3GB RAM!!!
ArtUrlWWW Your device uses so-called multi-dtb which means that /dev/dtb consists of a few (usually 2-3) device trees for devices with different RAM amount. A correct device tree is chosen automatically by u-boot.
I don't understand the reason why you posted blobs from your device. Isn't any of device tree provided working with your device?
kszaq , you are right, your gmx_q201_3g.dtb works fine with your libreelec distrib for s912, thank you very much for this distrib.
Looks, like you have a very good memory - I wrote, that I have successfully started libreelec with gmx_q201_3g.dtb some time ago .
But currently I am trying to start armbian ubuntu-based distrib from balbes150. I know, that it's not your distrib and, possible, not your area, but I trying to ask you only as an expert, not distrib owner.
After that I've rebooted TV box with CTLR+ALT+DEL and got another view:
I've tried all files from dtb directory and, as result, TV box booted only with kvim****.dtb files, but the similar boot error.
With other files from dtb directory TV box didn't booted at all - it hangs on Beelink boot logo.
Here is my /var/log/ directory from TV box, booted with kvim multiboot dtb - log.zip - Google Drive .
I also tried to start it with gmx_q201_3g.dtb from your libreelec distrib, but armbian distrib hangs on bootloader Beelink logo too.
Can you advise me, how to fix such error?
I tried to start
Armbian_5.37_S9xxx_Ubuntu_xenial_3.14.29_icewm_20171212.img.xz
and
Armbian_5.37_S9xxx_Ubuntu_xenial_3.14.29_mate_20171212.img.xz
from Yandex.Disk
without any success.
As it should be a 1GB/8GB box with gigabit LAN I'd probably start looking at either gxbb_p200_1G_1Gbit.dtb or gxbb_p200_1G_1Gbit_RealtekWiFi.dtb depending on the WiFi the box has.
OK, I figured out, what is the multi-dtb file .
Here is my a very simple Python 3.3 code for my multi-dtb file parsing:
with open("c:\Temp\dtb.img", "rb") as f:
data=f.read()
splitter=b'\xd0\r\xfe\xed'
data2=data.split(splitter)
counter=0
for d in data2:
d=splitter+d
splitter2=b'contribution'+b'\x00'
d=d.split(splitter2)
d=d[0]+splitter2
with open("c:\Temp\dtb_part"+str(counter)+".dtb", "wb") as wf:
wf.write(d)
counter=counter+1
print("")
print("Done")
Display More
It may be useful for somebody in the future, I hope
I plan to test splitted dts files tonight.
OK, I figured out, what is the multi-dtb file .
What is the benefit ?
ArtUrlWWW Please ask Armbian-related questions at their forum, I am not familiar with their build system and to answer any questions one need to know which kernel is used, the exact customizations etc.
What is the benefit ?
To learn and to start Armbian on Beelink GT1 Ultimate.
I also have done it to check, is kszaq's version of gmx_q201_3g.dtb similar to mine - I'll check for differences those decompiled dts data in text format.
I couldn't start balbes150's Armbian with kszaq's version of gmx_q201_3g.dtb , so I have a suspicion, that my dtb file could be different from kszaq's version of gmx_q201_3g.dtb . So, I'll check it now.
To learn and to start Armbian on Beelink GT1 Ultimate.
Maybe You can open a new Thread about Developing Armbian on S 912 in armbian Forum ?
Nope . I am in correct thread, because I plan to provide kszaq a new version of gmx_q201_3g.dtb for my TV box.
Good news, everyone!
My decompiled dts is different from kszaq's gmx_q201_3g.dtb decompiled dts.
So I have a little hope, that my TV box could start with gmx_q201_3g.dtb, splitted from my multi-DTB file and will work with libreelec and balbes150's Armbian.
But it just a hope, I'll check it tonight at home :).
Thank you again for info, kszaq !