Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conditional filter to set HDMI as the default display - Feature support #1136

Closed
paulenuta opened this issue May 15, 2019 · 21 comments
Closed

Comments

@paulenuta
Copy link

paulenuta commented May 15, 2019

Please add a new condition in config.txt to allow disabling the RPILCD when HDMI display is connected at boot.

# general config.txt settings
...
[HDMI]
# settings here are applied only if a HDMI monitor is connected
display_default_lcd=0
disable_touchscreen=1
hdmi_group=2
hdmi_mode=16
...

I have a Raspberry Pi DSI LCD as default/primary display, but if a HDMI display is attached I need to have this one as default/primary display for the system.
Currently, if a Raspberry Pi DSI LCD is detected it will be used as the default display, but if we connect an HDMI display we need
display_default_lcd=0
or
ignore_lcd=1
in config.txt to make HDMI the default display.
Raspberry Pi Forum link

@popcornmix
Copy link
Contributor

Can you try using the [edid=...] filter?
https://www.raspberrypi.org/documentation/configuration/config-txt/conditional.md

@paulenuta
Copy link
Author

Can you try using the [edid=...] filter?
https://www.raspberrypi.org/documentation/configuration/config-txt/conditional.md

I will try, but this way I'll be bound only to a specific HDMI monitor.

@paulenuta
Copy link
Author

paulenuta commented May 15, 2019

Just tested [EDID=] filter and I can confirm that it works, at least with the monitor I have now.
This is /home/boot/config.txt content:

[EDID=LEN-LEN_L22e-20]
display_default_lcd=0
#display_lcd_rotate=0
#display_hdmi_rotate=0
#hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=9

@paulenuta
Copy link
Author

@popcornmix since the [EDID=...] worked, does also mean that it will be easier to implement an [HDMI] condition?

@JamesH65
Copy link
Contributor

It's probably not hugely difficult, its just finding the time to do it, in an already busy schedule, and it won't use [HDMI], but a simpler config item.

@paulenuta
Copy link
Author

paulenuta commented May 16, 2019 via email

@JamesH65
Copy link
Contributor

It's in the firmware so closed source I am afraid.

@paulenuta
Copy link
Author

No happy news?

@JamesH65
Copy link
Contributor

Not had time and this area of the code is under a lot of churn right now due to work on the KMS driver. I'd prefer to wait until that is stable before digging in.

@paulenuta
Copy link
Author

Since Pi 4 is out, any chance to get this option sooner @JamesH65, @pelwell ?

@paulenuta
Copy link
Author

Hi there,
any update on this issue?

@JamesH65
Copy link
Contributor

JamesH65 commented Aug 2, 2019

No, not as yet.

@paulenuta
Copy link
Author

Hi @JamesH65 hope you'll get some time for this.
Thanks!

@JamesH65
Copy link
Contributor

We've just merged a change to the firmware that enables [edid=*] to mean any connected HDMI monitor. So you can use this to define settings to set only if an HDMI device is attached.

Should be in the next rpi-update, in the next few days. Once it's in I'll close this issue.

popcornmix added a commit that referenced this issue Sep 20, 2019
…om user space

See: raspberrypi/linux#3203

kernel: dts: Add DTS for Pi 2B rev 1.2 with BCM2837
See: raspberrypi/linux#3235

firmware: ldconfig: Support [edid=*] to mean any HDMI monitor
See: #1136

firmware: image_fx: Remove restriction that output stride must match input stride
firmware: image_fx: Remove spamming log line

userland: bcm_host: Add support for querying processor type and fkms status
popcornmix added a commit to Hexxeh/rpi-firmware that referenced this issue Sep 20, 2019
…om user space

See: raspberrypi/linux#3203

kernel: dts: Add DTS for Pi 2B rev 1.2 with BCM2837
See: raspberrypi/linux#3235

firmware: ldconfig: Support [edid=*] to mean any HDMI monitor
See: raspberrypi/firmware#1136

firmware: image_fx: Remove restriction that output stride must match input stride
firmware: image_fx: Remove spamming log line

userland: bcm_host: Add support for querying processor type and fkms status
@JamesH65
Copy link
Contributor

@paulenuta Did this change fix your issue?

@paulenuta
Copy link
Author

@paulenuta Did this change fix your issue?

Yes. I'll be back with confirmation after testing.

Thanks a lot for your support.

@paulenuta
Copy link
Author

paulenuta commented Sep 30, 2019

Just tested [EDID=*] and it works with "ignore_lcd=1" but not with "display_default_lcd=0" contrary to what I was saying previously.
I'll search for that testing card and monitor to verify my comment on [EDID=LEN-LEN_L22e-20].

pi@MyHouse-pi:~ $ cat /boot/config.txt
dtparam=i2c_arm=on,i2c_arm_baudrate=400000
#dtparam=i2c=on,i2c_baudrate=400000
#dtparam=i2s=on
dtparam=spi=on

# Enable PI_OS LivePIN
#dtoverlay=gpio-poweroff,gpiopin=27,active_low

# Enable MCP74912 RTC
#dtoverlay=i2c-rtc,mcp7941x

# Enable I2C UARTEXP 2 modules
# ttySC2, ttySC3
#dtoverlay=sc16is752-i2c-02
# ttySC0, ttySC1
#dtoverlay=sc16is752-i2c-01

# Enable PI UART
enable_uart=1

# Test EDID Filter
[EDID=*]
ignore_lcd=1
display_default_lcd=0
disable_touchscreen=0
#hdmi_group=1
#hdmi_mode=5
#hdmi_force_hotplug=1
[ALL]
pi@MyHouse-pi:~ $ echo LCD disable , HDMI WORKING
LCD disable , HDMI WORKING
pi@MyHouse-pi:~ $ tvservice -s -l -n
state 0xa [HDMI CEA (16) RGB lim 16:9], 1920x1080 @ 60.00Hz, progressive
device_name=XXX-AAA
1 attached device(s), display ID's are :
Display Number 2, type HDMI 0

@owlyowl
Copy link

owlyowl commented Sep 15, 2024

Sorry where do you get the Eid for the HDMI input? from I'm new to all this

@6by9
Copy link

6by9 commented Sep 16, 2024

https://en.wikipedia.org/wiki/Extended_display_identification_data
It's provided by the monitor (or other HDMI sink) to tell the source what it is and what modes it supports.

tvservice is now deprecated as we've moved to the kernel display stack. You probably want edid-decode to decode the EDID, but you don't say what you're actually wanting to do with it.

@owlyowl
Copy link

owlyowl commented Sep 16, 2024 via email

@6by9
Copy link

6by9 commented Sep 16, 2024

Open a new issue or forum post with the details of what you're trying to do.

Most of the content on this thread is largely out of date due to the changes in display drivers.
The EDID conditional filters will still work, but commands like ignore_lcd=1, display_default_lcd=0, disable_touchscreen=0, and hdmi_* are all deprecated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants