If you’re having problems with an external sound card under Linux when it was previously working properly, then you’ll first want to load the pavucontrol program and see if anything happens. Should you have video or audio freezes after that, then try selecting an integrated card if you have one. Should there be no problems with the integrated card no matter which pavucontrol configuration profile you select, and then you’ll need to do a bit of information collection. If on the other hand you still don’t hear anything, then you’ll want to check the physical connections on your sound output devices. Even internal integrated sound systems generally have headphone jacks, so connect a pair and see what happens.
If you’re using GNOME Shell, Unity or KDE Plasma, then you might actually get a notification that you’ve attached a new device. If not, then try issuing the aplay -l command at the CLI prompt and check to see that your hardware playback device shows up. If it does, then try lspci -v | grep Audio after that at the CLI prompt. If you get nothing, then try it again with lspci -v | grep audio, since the command is case sensitive. If nothing shows up, then try safely detaching and reattaching the hardware. If it does show up, then you’ll need to work with alsamixer to fix the issue.
Method 1: Using alsamixer to Fix Audio Issues
Type alsamixer at the CLI prompt to load up a rather colorful piece of ncurses software. Make sure that all of the audio levels are correct. You can use the cursor keys to increase or decrease the audio levels. Push the left and right cursor keys to move between the different settings. Generally, the Master, Headphon, Speaker, PCM and Line Out sound options are the most important to consider for the moment. While some of the labels might appear like glitches at first, terms like “Headphon” and “Mic Boos” were purposefully chosen by the developers to match the width of a standard terminal emulator. Your installation is not faulty if it displays these, even if they do appear unusually named.
Once you’ve readjusted the sound levels here, try generating some sounds in another program. Due to the way that HTML5 objects write to your sound device, it’s a good idea to play an online video or two from a Web browser in order to check the sound system. Should this not help then you can push F6 to try entering a device name. Doing so will pop up a primitive modal pop up box that asks you to select an option other than the default. In most cases, this first option labeled “- (default)” is where your cursor will start out on. You’ll have a second list element, number 0, which may or may not be assigned to the same device. Try setting it to this, and then push Esc to exit and test your sound system. Type alsamixer and push enter to get back into the mixer if it didn’t work. If you’re using bash, then you can generally push up to retrieve the last command entered or, alternatively, type !! and push enter to run the last command you ran.
If your device doesn’t appear or if the default and 0th options are set to your integrated internal device and not your external one, then you can select “enter device name…” and use the device name given by the lspci -v | grep audio command. You could also try changing the Multi Track Rate Reset or Multi Track Internal Clock values. Generally, most devices should be set to 44100. This should restore your sound. Once you’ve tried this, then you’re going to want to give it a test again to see if there’s been a change or not. By this point, you should have been able to restore audio. Some programs tend to set their own values, so you might want to run this mixer or a graphical equivalent now and then. Don’t forget to use the main master volume control that’s located in the system tray next to the clock in LXDE, Xfce4, KDE Plasma, Unity and GNOME Shell either. The “<Master>” control in alsamixer actually modifies the same internal Linux kernel values that the graphical bar does, so feel free to use them interchangeably.
Method 2: Use speaker-test to Inspect Both the Internal Integrated and External Sound Systems
Should you wish to run a further inspection of the internal integrated or the external sound card, then ALSA actually provides you with another utility to do so. Run speaker-test at the command line to generate a stream of generic pink noise to ensure that your attached devices are actually generating sound. You’ll need to hold down CTRL and push C to exit the program if it continuously runs after you’re sure you can hear the pink noise, or you can use some options to generate either a specific tone or run for a specific length of time.
If you know the name of the device that you entered in alsamixer and want to test only it, then run the program as speaker-test -D pcmName, replacing pcmName with the actual name. You can also add -f ### with a number in hertz to generate a specific tone. This is useful if you’ve been able to hear some tones on your sound system, but not a full spectrum of sound so far.
You can use -p or –period followed by a number to set a specific duration for the program, but the way speaker-test measures time is slightly counterintuitive. The value needs to be in microseconds, and you can use -P with an upper case character to set the number of periods in use. Once you’ve ensured that you can hear the sounds this program makes, then you can usually trust that you’ve now configured your external sound card correctly.