Linux mint is working flawlessly for me for years. No major problems or any awful experience related to black screens, no sound or crashing applications. Only some minor problems or unexpected user experience. No need to search and manually install drivers in order to get several monitors, mixed sounds, HDMI and DisplayPort to work - most of the devices are plug and play.

And yet sometimes you may want to identify and fix issues related to the sound and video or you to change the system behavior. In this post I'll try to cover as much as possible for audio and graphic stuff related to Linux Mint (indirectly to Ubuntu and Debian). All the steps will help to find, analyze and fix problems in your Linux Mint.

Additional Resources

linux_mint_audio_video_problems

Useful commands for detecting hardware and video problems

inxi -Fxz

List your hardware profile. It's really useful when you want to check what is your system, GPU, CPU, Audio, installation. The output of this command will be (shorten for readability):

System:    Host: vanx-machine Kernel: 4.15.0-45-generic x86_64 bits: 64 gcc: 7.3.0
           Desktop: Cinnamon 3.8.9 (Gtk 3.22.30-1ubuntu2) Distro: Linux Mint 19 Tara
Machine:   Device: desktop Mobo: Micro-Star model: B350 PC MATE (MS-7A34) v: 2.0 serial: N/A
           UEFI: American Megatrends v: A.A0 date: 01/26/2018
Graphics:  Card: NVIDIA GP104 [GeForce GTX 1080] bus-ID: 20:00.0
           Display Server: x11 (X.Org 1.19.6 ) driver: nvidia Resolution: [email protected], [email protected]
           OpenGL: renderer: GeForce GTX 1080/PCIe/SSE2 version: 4.6.0 NVIDIA 390.77 Direct Render: Yes
Audio:     Card-1 Advanced Micro Devices [AMD] Family 17h (Models 00h-0fh) HD Audio Controller
           driver: snd_hda_intel bus-ID: 22:00.3
           Card-2 NVIDIA GP104 High Definition Audio Controller driver: snd_hda_intel bus-ID: 20:00.1

Another way to get this information but using the GUI would be to install program called Hardinfo. You can install it by Software Manager and search for: Hardinfo

HardInfo is a system profiler and benchmark for Linux systems. It is able to obtain information from both hardware and basic software, and organize them in a simple to use GUI.

xrandr

the command will show you all displays, resolution, frame rate and more. You can see what outputs are supported by your GPU.

Screen 0: minimum 8 x 8, current 3200 x 1080, maximum 32767 x 32767
DVI-D-0 connected primary 1280x1024+1920+0 (normal left inverted right x axis y axis) 376mm x 301mm
   1280x1024     60.02*+  75.02    72.00  
   1152x864      75.00  
   1024x768      75.03    70.07    60.00  
   800x600       75.00    72.19    60.32  
   640x480       75.00    72.81    59.94  
   640x350       70.07  
HDMI-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 527mm x 296mm
   1920x1080     60.00*+  59.94    50.00    60.00    50.04  
   1680x1050     59.95  
   1600x1200     60.00  
   1440x900      59.89  
   1280x1024     75.02    60.02  
   1280x960      60.00  
   1280x720      59.94    50.00  
   1152x720      60.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    59.94    59.93  
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
DP-4 disconnected (normal left inverted right x axis y axis)
DP-5 disconnected (normal left inverted right x axis y axis)

For more detailed information you can use:

xrandr --verbose

Which will show all details for a given display as:

Screen 0: minimum 8 x 8, current 3200 x 1080, maximum 32767 x 32767
DVI-D-0 connected primary 1280x1024+1920+0 (0x1bf) normal (normal left inverted right x axis y axis) 376mm x 301mm
    Identifier: 0x1be
    Timestamp:  4656232
    Subpixel:   unknown
    Gamma:      1.0:1.1:1.2
    Brightness: 1.0
    Clones:    
    CRTC:       0
    CRTCs:      0 1 2 3
    Transform:  1.000000 0.000000 0.000000
                0.000000 1.000000 0.000000
                0.000000 0.000000 1.000000
               filter: 
    CscMatrix: 65536 0 0 0 0 65536 0 0 0 0 65536 0 
    EDID: 
        00ffffffffffff0009d1d576c2490000
        0311010380261e78eac5c6a3574a9c23
        124f54bdef80714f8180818c01010101
        010101010101302a009851002a403070
        1300782d1100001ed50980a0205e6310
        10605208782d1100001a000000fd0038
        4c1f530e000a202020202020000000fc
        0042656e51204650393347580a20007c
    BorderDimensions: 4 
        supported: 4
    Border: 0 0 0 0 
        range: (0, 65535)
    SignalFormat: TMDS 
        supported: TMDS
    ConnectorType: DVI-D 
    ConnectorNumber: 0 
    _ConnectorLocation: 0 
  1280x1024 (0x1bf) 108.000MHz +HSync +VSync *current +preferred
        h: width  1280 start 1328 end 1440 total 1688 skew    0 clock  63.98KHz
        v: height 1024 start 1025 end 1028 total 1066           clock  60.02Hz
nvidia-smi 

This information will show you information about the installed drivers:

Mon Mar  4 09:34:21 2019       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.77                 Driver Version: 390.77                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 1080    Off  | 00000000:20:00.0  On |                  N/A |
| 20%   47C    P0    46W / 200W |    701MiB /  8116MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1324      G   /usr/lib/xorg/Xorg                           354MiB |
|    0      2149      G   cinnamon                                      83MiB |
|    0      2358      G   ...-token=DF4AEAFFA13914F68JD5132F34AD7CF8    43MiB |
|    0      2434      G   ...-token=5BD5703B5BB567A1DD0023A3085BDC9C    31MiB |
|    0      6148      G   ...quest-channel-token=7764958154348DD5503    89MiB |
|    0      9074      G   ...-token=409DBFF5A412B19EC22CCC44548DC4AB    58MiB |
|    0     11002      G   ...uest-channel-token=124866327789EED89920    36MiB |
+-----------------------------------------------------------------------------+
lshw -c display

Display information for your video card:

 *-display                 
       description: VGA compatible controller
       product: GP104 [GeForce GTX 1080]
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:20:00.0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: vga_controller bus_master cap_list rom
       configuration: driver=nvidia latency=0
       resources: irq:61 memory:f6000000-f6ffff
sudo service lightdm start
sudo service lightdm stop

This commands will start and stop the X server in other words your graphical interface. They can be used in order to install new drivers or fix problems related to the video and Xorg.

X -configure

Reconfigure X server

Useful commands for detecting audio

aplay -l

This command will list all your Audio cards. This information is really important when you deal with audio problems. The output of this command will help you to test your sound devices and are they working. So you can see the output below:

**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 0: ALC892 Analog [ALC892 Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 2: Microphone [Yeti Stereo Microphone], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

In order to test any of those devices you need to get the card and device number. For example testing:

card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

can be done with this command:

aplay -D plughw:0,3 /usr/share/sounds/alsa/Front_Right.wav

while testing:

card 2: Microphone [Yeti Stereo Microphone], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
aplay -D plughw:2,0 /usr/share/sounds/alsa/Front_Right.wav
pacmd list-cards

This will list detailed information for your audio devices like:

4 card(s) available.
    index: 1
    name: <alsa_card.pci-0000_20_00.1>
    driver: <module-alsa-card.c>
    owner module: 8
    properties:
        alsa.card = "0"
        alsa.card_name = "HDA NVidia"

    profiles:
        output:hdmi-stereo: Digital Stereo (HDMI) Output (priority 5400, available: no)
    active profile: <output:hdmi-stereo-extra1>
    sinks:
        alsa_output.pci-0000_20_00.1.hdmi-stereo-extra1/#0: GP104 High Definition Audio Controller Digital Stereo (HDMI 2)
    sources:
        alsa_output.pci-0000_20_00.1.hdmi-stereo-extra1.monitor/#0: Monitor of GP104 High Definition Audio Controller Digital Stereo (HDMI 2)
    ports:
        hdmi-output-0: HDMI / DisplayPort (priority 5900, latency offset 0 usec, available: no)
            properties:
                device.icon_name = "video-display"

You can search for a given information with this command:

pacmd list-sinks  | grep -e 'name:'  -e 'alsa.device ' -e 'alsa.subdevice '
name: <alsa_output.usb-Blue_Microphones_Yeti_Stereo_Microphone_REV8-00.analog-stereo>
	alsa.subdevice = "0"
	alsa.device = "0"
name: <alsa_output.pci-0000_22_00.3.analog-stereo>
	alsa.subdevice = "0"
	alsa.device = "0"