On Mon, 9 Dec 2019, Atte wrote:
I tried writing a script that un-mutes everything I
can see and turns it
up, but to no avail:
amixer set 'Master' 100% unmute
amixer sset -c 0 'Master' 100% unmute
amixer sset -c 0 'Headphone' 100% unmute
amixer set -c 0 'Speaker' 100% unmute
amixer set -c 0 'PCM' 100%
If only it was so simple. In days of old when apple computers didn't have
a mouse or often any disc drive, Headphone jacks had extra contacts for
switching speakers off. Not any more. HDA audio has this pin enabling that
allows a mic jack to be mono with 5v power or a stereo output which is
auto detectable or switchable by some applet. (In debian it is probably
hdajackretask) However, I am sure you are looking for a more automated
method. For this there is a tool called hda-verb (say what?). which can
"enable/disable the headphone jack using pins."
An example that works on someone's laptop (doesn't work on my desktop for
sure cause my pin numbers are different):
To enable headphone jack, use:
hda-verb /dev/snd/hwC0D0 0x0f SET_PIN_WIDGET_CONTROL 0x40
To disable headphone jack, use:
hda-verb /dev/snd/hwC0D0 0x0f SET_PIN_WIDGET_CONTROL 0
I am sure that both the file in /dev/snd/ and the value right after that
(0x0f) need to match your system. On my system another (PCI) card picks up
hw:0 and so mine would be hwC1D*
In my file on this stuff I don't seem to have added the file one would use
to look up what these values might be. (not proc/asound it appears) But I
did find it by googling so the stuff is out there.
BTW the acpi system probably detects headphone plug events. Use
acpi_listen to see if this is true on your system. If so you can add a
script to /etc/acpi/events/ (actually a pointer to a script I think) that
will run on a headphone plug event. Some systems leave the headphone jack
always enabled and only need levels changed, but yours seems to need pin
changes too.
If you are using pulseaudio along with jack, I have found it best to
remove both alsa and udev modules from pulse and direct everything through
a pulse-jack bridge. Pulse will give up the audio device to jack just
fine, but will remember the device is there and control levels, mutes and
maybe pins even though jack has the device. Removing the alsa module will
stop this and removing the udev module will stop it from reloading the
alsa module on an alsa reset.
I haven't figured it out yet either. I hope you at least get started in
the right direction.
--
Len Ovens
www.ovenwerks.net