|Enable HDMI and audio over HDMI on Raspberry Pi|
|Wednesday, 04 January 2017 19:23|
This is just a note so I do not forget during the next update... If the Pi is running in a headless state most of the time and a display or projector only attached e.g. for movie viewing, Pi has to be told to enable the HDMI port and set it to a specific mode (the correct timing and resolution) at boot time.
First, boot the Pi with running display attached and query the HDMI mode using
$ tvservice -s state 0x12000a [HDMI CEA (16) RGB lim 16:9], 1920x1080 @ 59.94Hz, progressive
This tells us that the display is running in a 1920x1080 CEA (could be DMT in your case) mode. In order to find out the correct mode number we check the available modes by running (replace CEA by DMT if this was indicated in the last command's output)
$ tvservice -m CEA Group CEA has 16 modes: mode 1: 640x480 @ 60Hz 4:3, clock:25MHz progressive mode 2: 720x480 @ 60Hz 4:3, clock:27MHz progressive mode 3: 720x480 @ 60Hz 16:9, clock:27MHz progressive mode 4: 1280x720 @ 60Hz 16:9, clock:74MHz progressive mode 5: 1920x1080 @ 60Hz 16:9, clock:74MHz interlaced mode 6: 720x480 @ 60Hz 4:3, clock:27MHz x2 interlaced (prefer) mode 16: 1920x1080 @ 60Hz 16:9, clock:148MHz progressive mode 17: 720x576 @ 50Hz 4:3, clock:27MHz progressive mode 18: 720x576 @ 50Hz 16:9, clock:27MHz progressive mode 19: 1280x720 @ 50Hz 16:9, clock:74MHz progressive mode 20: 1920x1080 @ 50Hz 16:9, clock:74MHz interlaced mode 21: 720x576 @ 50Hz 4:3, clock:27MHz x2 interlaced (native) mode 31: 1920x1080 @ 50Hz 16:9, clock:148MHz progressive mode 32: 1920x1080 @ 24Hz 16:9, clock:74MHz progressive mode 33: 1920x1080 @ 25Hz 16:9, clock:74MHz progressive mode 34: 1920x1080 @ 30Hz 16:9, clock:74MHz progressive
The actual mode used in this case is number 16. Now we can edit the file /boot/config.txt to include the necessary options:
hdmi_force_hotplug=1 # make sure, the HDMI port is switched on always hdmi_group=1 # the HDMI mode group (1: CEA, 2: DMT) hdmi_mode=16 # the mode number we found earlier goes here
After the next reboot the display should be working at the desired resolution even when switched on later. Another issue happens when HDMI is also used for audio output. The output has to be set to HDMI as opposed to DVI. This is done by adding the line
hdmi_drive=2 # set output to HDMI and send audio over HDMI
For more details regarding the possible options, please consult the official documentation.