Hi there,
I have LibreELEC 11.0.6 running on RPi 3. I recently switched TVs from an unsatisfactory smart 4K down to a half-HD (720p, native resolution is 1360x768@60Hz) I had previously. Now, the problem is, even if I turn on the TV first, then LibreELEC, the TV displays "not supported" because the previous resolution is out of range for this TV. Usually, I leave the LibreELEC box turned on and just turn off the TV when I don't watch it. Of course, as I don't have a working display, everything has to be done through SSH, or the Web interface (which is unaffected).
I came across a similar topic, but the proposed solution (capture EDID and set it up as a boot parameter) didn't work for me.
Another topic gave a slightly different solution, that didn't work wither. It advised to put "video=HDMI-A-1:1360x768M@60" (I adapted from the topic according to my TV) among the kernel parameters in /flash/cmdline.txt
What I tried, in details:
Setting the resolution from the Web interface
- System > Display > Resolution
- Selected 1360x768
- Save
- The TV briefly flashed and I could see the Estuary skin color, but then turned dark and kept on displaying "Not supported".
Capturing EDID and using it as a boot parameter
The Wiki page doesn't give any specifics for RPi, so I loosely followed the x86_64 Intel instructions:
Mounted /flash with read-write permissions: mount -o remount,rw /flash
Tested display connection: tail /sys/class/drm/*/status
Got:
==> /sys/class/drm/card0-HDMI-A-1/status <==
connected
==> /sys/class/drm/card0-Writeback-1/status <==
unknown
Dumped EDID: getedid create
Got:
Created the path and the actual EDID file:
mkdir -p /storage/.config/firmware/edid
cat /sys/class/drm/card0-HDMI-A-1/edid > /storage/.config/firmware/edid/edid.bin
Then the cpio archive that will be loaded:
cd ~
mkdir -p cpio/lib/firmware/edid
cp .config/firmware/edid/edid.bin cpio/lib/firmware/edid/
cd cpio/
find . -print | cpio -ov -H newc > ../edid.cpio
Moved the file to the boot partition /flash:
There it is:
# ls /flash
LICENCE.broadcom bcm2711-rpi-400.dtb
SYSTEM bcm2711-rpi-cm4-io.dtb
SYSTEM.md5 bcm2711-rpi-cm4.dtb
bcm2708-rpi-0-w.dtb bcm2711-rpi-cm4s.dtb
bcm2708-rpi-b-plus.dtb bcm2712-rpi-5-b.dtb
bcm2708-rpi-b-rev1.dtb bootcode.bin
bcm2708-rpi-b.dtb cmdline.txt
bcm2708-rpi-cm.dtb config.txt
bcm2708-rpi-zero-w.dtb config.txt.old
bcm2708-rpi-zero.dtb distroconfig-composite.txt
bcm2709-rpi-2-b.dtb distroconfig.txt
bcm2709-rpi-cm2.dtb edid.cpio
bcm2710-rpi-2-b.dtb fixup.dat
bcm2710-rpi-3-b-plus.dtb hat_map.dtb
bcm2710-rpi-3-b.dtb kernel.img
bcm2710-rpi-cm3.dtb kernel.img.md5
bcm2710-rpi-zero-2-w.dtb overlays
bcm2710-rpi-zero-2.dtb start.elf
bcm2711-rpi-4-b.dtb
Display More
That's were the instructions for x86_64 don't work anymore: there's no syslinux.cfg or extlinux.conf in /flash on LibreELEC, so I edited cmdline.txt instead. It now looks like this:
boot=/dev/mmcblk0p1 disk=/dev/mmcblk0p2 quiet
initrd=/edid.cpio drm.edid_firmware=HDMI-A-1:edid/edid-HDMI-A-1.bin video=HDMI-A-1:D
According to the Wiki, a reboot is the last step. Except that it doesn't work. In the Web interface, the claimed resolution is correct at 1360x768, even kmsprint gives the correct resolution:
Connector 0 (32) HDMI-A-1 (connected)
Encoder 0 (31) TMDS
Crtc 3 (90) [email protected] 85.500 1360/256/112/64/+ 768/18/6/3/+ 60 (60.02) P|D
Plane 4 (91) fb-id: 296 (crtcs: 0 1 2 3) 0,0 1360x768 -> 0,0 1360x768 (XR24 AR24 AB24 XB24 RG16 BG16 AR15 XR15 RG24 BG24 YU16 YV16 YU24 YV24 YU12 YV12 NV12 NV21 NV16 NV61 RGB8 BGR8 XR12 AR12 XB12 AB12 BX12 BA12 RX12 RA12)
FB 296 1360x768 XR24
What I want to achieve
Set LibreELEC so it automatically probes for the highest supported resolution or, if probe gives no result (TV is turned off or disconnected), then use the latest one, much like a laptop does when first connecting to an unknown projector.
While at it:
I also wanted to give it a slight overclock and perhaps allocate more RAM to the GPU in order to get a more "fluid" experience and finally allow for basic x265 decoding. How much RAM should I give the GPU in LibreELEC?
I'd like the boot time splash screen to be displayed with a 16/9 ratio. For as long as I can remember, the splash screen LibreELEC logo was always stretched from 4/3. This really is a minor detail.