Beagleboard talk:BeagleBoneBlack HDMI
- [View source↑]
|Thread title||Replies||Last modified|
|How to force a resolution||1||00:53, 26 June 2018|
|Resolution information||1||00:50, 26 June 2018|
I followed the instructions on this page but noticed that it didn't really mention how to make the changes permanent.
This works for my Samsung LED Monitor S24D300HL.
root@beaglebone:~# tail -n6 /etc/gdm/Init/Default # Use xrandr! export XAUTHORITY=`ls /var/run/gdm/auth-for-root-*/database` export DISPLAY=:0 xrandr --output HDMI-0 --mode 1680x1050 exit 0
720x480-16@60 was a supported mode for the HDMI in the 3.8 kernel, and it is a CEA mode with audio. It isn't mentioned in the list of resolutions, though it is referenced further down the page. Has this mode been removed in the newer 3.12/13/14 kernels?
In the "Connecting to a TV or Display" section, there is this line:
"If the board does not see a display connected, it will default to 720x480 resolution and outputs that signal on the HDMI port."
If no EDID information is received (either the display isn't plugged in or the display provides no EDID), the resolution defaults to 1024x768. This is done in the function drm_fb_helper_single_fb_probe() in drivers/gpu/drm/drm_fb_helper.c in the kernel. I only have 3.8/12/13 kernel sources trees handy at the moment, and the default is 1024x768 for all of them. Unfortunately, 1024x768 is not a CEA mode, so audio over HDMI will not be enabled (and no ALSA device will be created in /dev) if the display is not plugged into the BBB at boot.
These issues no longer exist in recent kernels. With kernel 4.14.51-bone16, all modes I've tried (1920x1080@30, 1324x768@60, 1280x1024@60, 1152x864@75, 1024x768@60, 800x600@60, 720x480@60) worked and included audio.
If no display is connected at boot, the creation of the legacy fbdev (/dev/fb0) seems to be deferred until a display is connected. The ALSA output exists regardless, and I can send audio to the output, which is silently discarded. Once I connect my tv, the kernel automatically performs mode selection, creates the legacy fbdev, and starts sending video *and* audio to my tv. The transition appears to be invisible to the ALSA application.