Ubuntu – HDMI is not working in Ubuntu 16.04

16.04hdmi

I tried connecting my Ubuntu laptop to my TV via HDMI, apparently it`s not working. I already tried below options:

1.Run sudo apt-get purge nvidia-*

2.Run sudo add-apt-repository ppa:graphics-drivers/ppa

3.Run sudo apt-get update

4.Run sudo apt-get install nvidia-364 (Check what's the latest version... in my case as July 2017 nvidia-381 was avaliable)

But this does not work for me. My TV, Laptop and HDMI cable are fine, as I am easily able to use HDMI and connect to TV using WINDOWS OS

System Details Shows:

Processor: Intel® Core™ i5 CPU M 480 @ 2.67GHz × 4 
Graphics: Intel® Ironlake Mobile

I checked few more links and I found some commands, thought might be helpful, hence sharing the O/P

~$ lsmod | grep -i DRM
drm_kms_helper        151552  1 i915
syscopyarea            16384  1 drm_kms_helper
sysfillrect            16384  1 drm_kms_helper
sysimgblt              16384  1 drm_kms_helper
fb_sys_fops            16384  1 drm_kms_helper
drm                   352256  7 i915,drm_kms_helper

~$ lspci -k | grep -A 2 -i "VGA"
00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 18)
Subsystem: Dell Core Processor Integrated Graphics Controller
Kernel driver in use: i915

Let me know if any other details needed. Please help !!

Best Answer

Redirecting Audio can become quite difficult in some cases.

For example my firefox never liked to play audio thru hdmi while all other software did. Since i use pulse audio, it works like charm; check the end of this answer.

I am using Lubuntu 16.04. It might be different from your desktop, but automatic switching never occured by default. I always had to direct the audio stream manually. In general you have at least two audio-outputs: One analoge audiojack and one digital hdmi, in general on different audio-cards.

The hard way:

First i had to get an overview on the audiocards installed on my htpc (ati motherboard with onboard graphics and onboard cpu):

aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: SB [HDA ATI SB], device 0: ALC887-VD Analog [ALC887-VD Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: SB [HDA ATI SB], device 3: ALC887-VD Digital [ALC887-VD Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

and all the possible audio-streaming channels i could route the sound:

aplay -L

null
    Discard all samples (playback) or generate zero samples (capture)
pulse
    PulseAudio Sound Server
hdmi:CARD=Generic,DEV=0
    HD-Audio Generic, HDMI 0
    HDMI Audio Output
dmix:CARD=Generic,DEV=3
    HD-Audio Generic, HDMI 0
    Direct sample mixing device
dsnoop:CARD=Generic,DEV=3
    HD-Audio Generic, HDMI 0
    Direct sample snooping device
hw:CARD=Generic,DEV=3
    HD-Audio Generic, HDMI 0
    Direct hardware device without any conversions
plughw:CARD=Generic,DEV=3
    HD-Audio Generic, HDMI 0
    Hardware device with all software conversions
default:CARD=SB
    HDA ATI SB, ALC887-VD Analog
    Default Audio Device
sysdefault:CARD=SB
    HDA ATI SB, ALC887-VD Analog
    Default Audio Device
front:CARD=SB,DEV=0
    HDA ATI SB, ALC887-VD Analog
    Front speakers
surround21:CARD=SB,DEV=0
    HDA ATI SB, ALC887-VD Analog
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=SB,DEV=0
    HDA ATI SB, ALC887-VD Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=SB,DEV=0
    HDA ATI SB, ALC887-VD Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=SB,DEV=0
    HDA ATI SB, ALC887-VD Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=SB,DEV=0
    HDA ATI SB, ALC887-VD Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=SB,DEV=0
    HDA ATI SB, ALC887-VD Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
hdmi:CARD=SB,DEV=0
    HDA ATI SB, ALC887-VD Digital
    HDMI Audio Output
dmix:CARD=SB,DEV=0
    HDA ATI SB, ALC887-VD Analog
    Direct sample mixing device
dmix:CARD=SB,DEV=3
    HDA ATI SB, ALC887-VD Digital
    Direct sample mixing device
dsnoop:CARD=SB,DEV=0
    HDA ATI SB, ALC887-VD Analog
    Direct sample snooping device
dsnoop:CARD=SB,DEV=3
    HDA ATI SB, ALC887-VD Digital
    Direct sample snooping device
hw:CARD=SB,DEV=0
    HDA ATI SB, ALC887-VD Analog
    Direct hardware device without any conversions
hw:CARD=SB,DEV=3
    HDA ATI SB, ALC887-VD Digital
    Direct hardware device without any conversions
plughw:CARD=SB,DEV=0
    HDA ATI SB, ALC887-VD Analog
    Hardware device with all software conversions
plughw:CARD=SB,DEV=3
    HDA ATI SB, ALC887-VD Digital
    Hardware device with all software conversions

Now I needed to find out, which of these channels is used by my hdmi cable. Therefor I needed an audioplayer that allowed me to route the audio manually to test each of the above channels, one by one, until i found out, which of them belongs to my hdmi. With a GUI vlc and especially audacious come in handy. On CLI basis we could also use aplay, but i am not familiar with that.

Now, after having found out, which channel belongs to my hdmi cable, it was card 0, device 3, i needed to create a file in my homefolder .asoundrc Asound Wiki with the information what card, and what device to use.

pcm.snd_card {
        type hw
        card 0
        device 3
}

ctl.snd_card {
        type hw
        card 0
        device 3
}

Also i needed to run 'alsamixer'. With F6 i did select my soundcard and had to navigate with the arrow keys to the S/PDIF and activate (unmute) it with the M key.

After a reboot audio thru hdmi worked, but firefox remained unwilling to play audio via hdmi.

Long story short, now i use PulseAudio and i am very happy with it.

The easy way

Since i installed PulseAudio the handling of the audio devices has become very easy. I would suggest you to install: sudo apt-get install gstreamer1.0-pulseaudio pavucontrol pulseaudio-module-x11

pavucontrol is a comfortable GUI to (re)direct your audio-streams to the device/channel you want.

I hope this helps you to find a solution.