Fundamental issues within kernel source code: need to address problem to Xiaomi

Search This thread

Zenkrey

Senior Member
Jun 14, 2015
78
212
Hi everyone.
I'm the developer of the 75Hz display overclock for Mi 9T. I'm working on a better / cleaner way to enable this mod, however, with sadness, I discovered that the kernel source code for Davinci (K20 / Mi 9T) is fundamentally broken. The section I'm talking about is the device tree, an important component which is used to control peripherals on boot. The source code provided by Xiaomi, once compiled, produces a binary that doesn't contain the information necessary to manage the Samsung display. This results in a boot with black screen. If you really desire a future for the custom development of this device, it's important to raise the matter to Xiaomi itself, in a public manner.

Let me know what you think of this and if you had a similar experience after compilation of the kernel source.

Thanks

# Edit: update
https://forum.xda-developers.com/showpost.php?p=79961451&postcount=6
 
Last edited:

HelpMeruth

Senior Member
Aug 29, 2015
897
741
Sweden
That's sad to hear, planning to buy they mi9t in a couple of weeks ill be sure to compile the kernel and check if the issue is still present by then.
Thanks for bringing this up :)
 

Zenkrey

Senior Member
Jun 14, 2015
78
212
Made a breakthrough:
Unpacked dtbo.img from global firmware 10.3.6. Decoded the .dtb into .dts. Taken the 13 .dts relevant to the device (check Makefile). Re-encoded and repacked in a new, smaller dtbo.img.
I flashed this new dtbo.img through fastboot, booting successfully the device.
By taking the .dts provided by Xiaomi in the Mi 9T / K20 repo and compiling them, then packing them into a dtbo.img, and then flashing said .img through fastboot causes an unsuccessfull boot and a black screen.
So, I took the first .dts (from the source) and compared it to the correspondent .dts (from the decoded global firmware) and got this interesting diff (green one is the one working, red one is from the source that doesn't work):

https://pastebin.com/wNu0mVy0

So, there is obviously something wrong going on.
 

flubba86

Senior Member
May 7, 2010
75
26
Made a breakthrough:
Unpacked dtbo.img from global firmware 10.3.6. Decoded the .dtb into .dts. Taken the 13 .dts relevant to the device (check Makefile). Re-encoded and repacked in a new, smaller dtbo.img.
I flashed this new dtbo.img through fastboot, booting successfully the device.
So, there is obviously something wrong going on.

Have you tried taking the decoded .dts files and placing them in the kernel source tree to see if it builds a working kernel? (Or is that irrelevant, is it only used for building the dtbo.img?)
 

Zenkrey

Senior Member
Jun 14, 2015
78
212
Have you tried taking the decoded .dts files and placing them in the kernel source tree to see if it builds a working kernel? (Or is that irrelevant, is it only used for building the dtbo.img?)

They would compile, of course, but that is not the best way to fix the issue. The problem, here, are the wrong commands used to control the display.
 
  • Like
Reactions: shaon121

Top Liked Posts

  • There are no posts matching your filters.
  • 23
    Hi everyone.
    I'm the developer of the 75Hz display overclock for Mi 9T. I'm working on a better / cleaner way to enable this mod, however, with sadness, I discovered that the kernel source code for Davinci (K20 / Mi 9T) is fundamentally broken. The section I'm talking about is the device tree, an important component which is used to control peripherals on boot. The source code provided by Xiaomi, once compiled, produces a binary that doesn't contain the information necessary to manage the Samsung display. This results in a boot with black screen. If you really desire a future for the custom development of this device, it's important to raise the matter to Xiaomi itself, in a public manner.

    Let me know what you think of this and if you had a similar experience after compilation of the kernel source.

    Thanks

    # Edit: update
    https://forum.xda-developers.com/showpost.php?p=79961451&postcount=6
    14
    Made a breakthrough:
    Unpacked dtbo.img from global firmware 10.3.6. Decoded the .dtb into .dts. Taken the 13 .dts relevant to the device (check Makefile). Re-encoded and repacked in a new, smaller dtbo.img.
    I flashed this new dtbo.img through fastboot, booting successfully the device.
    By taking the .dts provided by Xiaomi in the Mi 9T / K20 repo and compiling them, then packing them into a dtbo.img, and then flashing said .img through fastboot causes an unsuccessfull boot and a black screen.
    So, I took the first .dts (from the source) and compared it to the correspondent .dts (from the decoded global firmware) and got this interesting diff (green one is the one working, red one is from the source that doesn't work):

    https://pastebin.com/wNu0mVy0

    So, there is obviously something wrong going on.
    1
    Have you tried taking the decoded .dts files and placing them in the kernel source tree to see if it builds a working kernel? (Or is that irrelevant, is it only used for building the dtbo.img?)

    They would compile, of course, but that is not the best way to fix the issue. The problem, here, are the wrong commands used to control the display.