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

HDMI output stuck at 640x480 due to `hdmi_safe=1' #30

Open
brujoand opened this issue Dec 23, 2024 · 2 comments
Open

HDMI output stuck at 640x480 due to `hdmi_safe=1' #30

brujoand opened this issue Dec 23, 2024 · 2 comments

Comments

@brujoand
Copy link

brujoand commented Dec 23, 2024

Over here we are setting:

# Enable maximum compatibility on both HDMI ports;
# only the one closest to the power/USB-C port will work in practice.
hdmi_safe:0=1
hdmi_safe:1=1

Which according to RPIconfig means:

Use "safe mode" settings to try to boot with maximum hdmi compatibility. This is the same as the combination of: hdmi_force_hotplug=1, hdmi_ignore_edid=0xa5000080, config_hdmi_boost=4, hdmi_group=2, hdmi_mode=4, disable_overscan=0, overscan_left=24, overscan_right=24, overscan_top=24, overscan_bottom=24

Specifically this the hdmi_mode=4 causes the resolution to be fixed at 640x480. Is this intentional if not could we change this to instead use the expanded options but drop the hdmi_ignore_edid, hdmi_group and hdmi_mode to let the monitor an the pi figure this out on their own?

@frezbo
Copy link
Member

frezbo commented Dec 23, 2024

PR's are welcome

@brujoand
Copy link
Author

brujoand commented Dec 23, 2024

So for my specific usecase I just added the overlay options to completely override the config.txt and instead of the hdmi_safe:x=1 I only used hdim_force_hotplug:x=1 and kept the rest of the default config.txt

If we want these SBC's to work just like any other PC I'm thinking this is what should be the default, and I could add a PR to that effect.

However, adding these options when calling out to the factory for the image is fairly trivial. The current defaults are at least very likely to always work, even if the resolution is limited. And there might be other constellations like compute boards etc that might behave differently . Thus, my vote is actually on keeping this defensive default as is.

For any late adventurers finding this in the future, what I did was just creating this overlay config:

overlay:
  name: rpi_generic
  image: siderolabs/sbc-raspberrypi
  options:
    configTxt: |
      gpu_mem=32
      hdmi_force_hotplug:0=1
      hdmi_force_hotplug:1=1
      kernel=u-boot.bin
      arm_64bit=1
      arm_boost=1
      enable_uart=1
      dtoverlay=disable-bt
      dtoverlay=disable-wifi
customization:
  systemExtensions:
    officialExtensions: []

Throwing it at the factory: curl -X POST --data-binary @assets/rpi-overaly.yaml https://factory.talos.dev/schematics
Which gave me an image id to use for the installer. And it just worked. 🪄

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

2 participants