custom edid and RK3399

  • Hi, I'm trying to use custom edid with this guide . edid.cpio is copied to /flash and

    Code
    initrd=/edid.cpio drm.edid_firmware=edid/edid.bin video=HDMI-A-1:D

    added to extlinux.conf

    but I'm getting folowing error https://snipboard.io/I16Eci.jpg

    If I add the same text and use the same edid.cpio file with x86 AMD libreelec, it's working, Wondering how to get it working with rockchip

    Tried both LE10, 11 . My box is Hugsun X99 RK3399

    thanks in advance


    Edited once, last by rix81 (July 1, 2022 at 5:49 PM).

  • The guide is wrong and only works on x86_64 - the firmware files need to be put in /usr/lib/firmware, not /lib/firmware.

    But you can save yourself a lot of hassle and simply use the create-edid-cpio script in LE10/11 - it creates a /flash/edid.cpio with the contents from /storage/.config/firmware/edid

    So you just need to put your edid in the .config/firmware/edid directory, run the script and adjust kernel command line.

    so long,

    Hias

  • I already have Edid.bin file, I've created it on X86 Libreelec. And it's working there

    Now I'm trying to use it with Rockchip LE, TV is the same, so I guess it should work.

    edid.cpio file that has edid.bin inside of it is copied to flash, and text added to extlinux.conf (as I mentioned in 1st post)

    But I getting error "Failed to execute /init" (screenshot is on 1st post)

    Any help would be appreciated

    The reason (at least one of them) why I need custom edid, I've disabled ycbcr support in that file, In x86 LE it causes to swith to RGB, so I expect the same with rockchip LE.

  • If you copied the edid.cpio from x86 or created it on RK using the guide you will get that error as the guide is faulty and only works (by chance) on x86_64.

    On RK (and all other ARM devices running 32bit userspace) /lib/ is a symlink to /usr/lib and the cpio will trash that , creating a /lib directory - containing only the firmware file but no /lib/ld.so is gone and init can't be run - hence the error you got.

    On x86_64 64-bit userspae is used so the trashed /lib symlink doesn't matter as it's using the /lib64 symlink.

    The solution is to create the cpio with /usr/lib/firmware (the real directory), this will work both on x86_64 and arm - or just use the script I mentioned, which creates a correct edid.cpio file

    so long,

    Hias

  • HiassofT - thank you!

    I've run create-edid-cpio , it created edid.cpio with folowing structure,

    usr

    usr\lib

    usr\lib\firmware

    usr\lib\firmware\edid

    it seems, edid.bin is not present there. How can I move my file edid.bin inside edid.cpio in windows? Sorry not linux user, pretty hard to figure out

  • You have to copy the edid.bin to /storage/.config/firmware/edid (eg using scp/WinSCP) - it's important that the file is placed both there and in the edid.cpio.

    Note: the directory isn't present by default, you have to create it manually

    Code
    mkdir -p /storage/.config/firmware/edid/

    then scp the file in there and run the create-edid-cpio script

    so long,

    Hias

  • HiassofT thank you very much, it's working!

    As ycbcr was disabled in my custom edid file, I got RGB output.

    But despite if x86 hdmi output becomes full RGB, with rockchip it's limited.

    This is another question, how to get full hdmi range on rockchip with LE

    Sad that brightness/contrast controls unavaliable with HW decoder. It might help to workaround range problem

  • Might be worth opening a separate thread for the limited/full range issue.

    I can't really help with that as I'm not really familiar with RK. As mandated by the HDMI standard all CTA (aka "TV") modes like 1920x1080p60 are output with limited range - some video drivers allow to override that but I have no idea if that's the case with RK.

    so long,

    Hias