Sunday 19 June 2016

Lazy sound fix

The machine


The machine I'm trying to run Linux is on, is one I've mentioned before in a blog post about my favourite Linux distribution; the Dell Lattitude e5440. I like it a lot, but nearly whatever Linux Distro I shove on it that's higher than 12.04 LTS Ubuntu, the sound fails to work properly. Mostly, this isn't information anybody needs to know but me, but I might need this post in the future, who knows...

Or, there might just be some of you out there with this model and the same problem. 

The problem


The problem, is well, odd. Using alsamixer in Ubuntu after a fresh boot the HDMI audio output is always selected by default, thus meaning I can't hear any sound. If I toggle muting the volume on and off a few times, I magically get sound out of the speakers. 

The fix


I'd like a proper fix really, but after spending accumulated hours that total days of research, I've called it quits.  If anybody does come up with a nicer, less messier fix I'll happily take it.

Running a script at startup

As I know a few toggles of the mute button fixes the issue, I'm going to write a terminal script that just emulates me doing that. It will run this on startup, so after I'm logged in, the sound works properly. If you're lazy, the script it here.

For those of you who are security aware, all the script is:

#!/bin/bash
amixer -q -D pulse sset Master toggle
amixer -q -D pulse sset Master toggle
amixer -q -D pulse sset Master toggle
amixer -q -D pulse sset Master toggle


Feel free to just copy and paste that into a new file and save it as something. I've called mine mute-unmute.sh

You can see above all it does is what I mentioned before, we use PulseAudio and a master switch and just toggle it off and on. 

Note: if you download the script from the link above, you will most likely need to set permissions on it so the system can execute it by using these commands:

sudo chmod +x [your filename here].sh


Adding it to startup

Once you've done that just search your applications menu for 'startup applications' and click add to add a new one. Navigate to where you saved your script and hit okay. 

That's it. 

Remember to keep the script somewhere safe where it isn't going to get deleted accidentally!


EDIT:

So, unlike me, I gave up. I probed and probed and found out my soundcard and discovered it was a Realtek one. I went to go install drivers and the driver install failed. My original fix was not sufficient as after a few hours I would get some static from the speakers and be in my original situation again.

When I couldn't even get the original sound drivers to install, I gave up and deleted Linux altogether; my OCD couldn't handle it. Even after endless hours of Googling the problem I was having with the sound drivers, I couldn't find a solution and the general consensus was that this was a problem-child-soundcard in Linux. Boooo hoooo.

EDIT... YES, AGAIN:

I did not give up. I have fixed sound issues and discovered it's a problem with the kernel. You can follow my guide here:



No comments:

Post a Comment