You are not logged in.
Hello.
I'm currently trying to get my analog sound to work so my headphones and mic will work.
Currently my digital sound via GPU from HDMI and DP monitors plays just fine, but from what I've seen via the wiki, I don't think that's where I get my headphone sound from (I hope I'm wrong). So I tried just sending all my sound to my internal card and this just results in no sound at all.
This file contains all the information I've used to try and fix this issue (with help from the wiki of course - also I hope this is ok. I figured it would be easier on the eyes).
Things I have tried:
- editing .asoundrc as many different ways as recommended to assign the internal card as the primary. Doing this results in no sound at all from any source.
- adding an 'options' line in the modprobe.conf file to enable the card
- Verifying mute options are off and sound is up via amixer and alsamixer
- Testing both rear and front panels with headphones
I'm sure I'm missing something obvious and I apologize in advance for that.
Any help on this would be most welcome.
Thank you.
Last edited by QueenVakarian (2020-01-05 07:58:35)
Offline
Plug them into the front panel and check
speaker-test -c2 -Dhw:1
Offline
Plug them into the front panel and check
speaker-test -c2 -Dhw:1
I get the following:
speaker-test -c2 -Dhw:1
speaker-test 1.2.1
Playback device is hw:1
Stream parameters are 48000Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
Playback open error: -2,No such file or directory
Offline
Remove the asoundrc , reboot.
speaker-test -c 2 -Dfront
The front PCM is always the front output from the internal card, HDMI devices don't have a front PCM.
Doing it this way ensures the card order doesn't mattter.
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
(A works at time B) && (time C > time B ) ≠ (A works at time C)
Offline
Remove the asoundrc , reboot.
speaker-test -c 2 -Dfront
The front PCM is always the front output from the internal card, HDMI devices don't have a front PCM.
Doing it this way ensures the card order doesn't mattter.
Sorry for the late reply, my internet has been out x.x
Below is what I get after removing the .asoundrc & rebooting:
$ speaker-test -c 2 -Dfront
speaker-test 1.2.1
Playback device is front
Stream parameters are 48000Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
Playback open error: -2,No such file or directory
I also ran the standard sound test again and this is what I got:
$ speaker-test -c 2
speaker-test 1.2.1
Playback device is default
Stream parameters are 48000Hz, S16_LE, 2 channels
Using 16 octaves of pink noise
ALSA lib pcm_dmix.c:1089:(snd_pcm_dmix_open) unable to open slave
Playback open error: -2,No such file or directory
Offline
Time to get into details, run alsa-info.sh (comes with alsa-utils) and post the output.
Also the output of pacman -Qs pulse .
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
(A works at time B) && (time C > time B ) ≠ (A works at time C)
Offline
Time to get into details, run alsa-info.sh (comes with alsa-utils) and post the output.
Also the output of pacman -Qs pulse .
$ pacman -Qs pulse
local/lib32-libpulse 13.0-1
A featureful, general-purpose sound server (32-bit client libraries)
local/libpulse 13.0-2
A featureful, general-purpose sound server (client library)
Offline
That confirms you are running a pure alsa system.
Apart from the model=Generic option you set, I see nothing special.
Since you have one Generic audio chip (the alc1220) and a nvidia hdmi audiochip which needs another model it may influence things .
Remove that option.
create /etc/modprobe.d/alsa-base.conf with this content :
# first detected chip will get index 1 , 2nd detected chip gets index 0
# this effectively makes the card that's detected second the primary card and the first detected card secondary
# very useful when 2 or more cards use the same kernel module .
options snd_hda_intel index=1,0
NOTE: I'm not 100% sure whether the index array is comma-delimited or space-delimited .
reboot, then run
aplay -v /usr/share/sounds/alsa/Front_Center.wav
Both as normal user and as root please.
Try using the diff command from diffutils pacakge to check if both outputs are the same.
Post both when they differ, just one if they are the same.
Last edited by Lone_Wolf (2020-01-04 19:07:02)
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
(A works at time B) && (time C > time B ) ≠ (A works at time C)
Offline
That confirms you are running a pure alsa system.
Apart from the model=Generic option you set, I see nothing special.
Since you have one Generic audio chip (the alc1220) and a nvidia hdmi audiochip which needs another model it may influence things .
Remove that option.create /etc/modprobe.d/alsa-base.conf with this content :
# first detected chip will get index 1 , 2nd detected chip gets index 0 # this effectively makes the card that's detected second the primary card and the first detected card secondary # very useful when 2 or more cards use the same kernel module . options snd_hda_intel index=1,0
NOTE: I'm not 100% sure whether the index array is comma-delimited or space-delimited .
reboot, then run
aplay -v /usr/share/sounds/alsa/Front_Center.wav
Both as normal user and as root please.
Try using the diff command from diffutils pacakge to check if both outputs are the same.
Post both when they differ, just one if they are the same.
That actually gave me sound on my headphones. I confirmed with a video from yt.
However, I'm still left at that point with no sound from my monitor once my headphones are unplugged.
Am I unable to use both at the same time? (without file configuration that is)
Edit: Mic is also working
Output:
$ aplay -v /usr/share/sounds/alsa/Front_Center.wav
Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono
Plug PCM: Route conversion PCM (sformat=S32_LE)
Transformation table:
0 <- 0
1 <- 0
Its setup is:
stream : PLAYBACK
access : RW_INTERLEAVED
format : S16_LE
subformat : STD
channels : 1
rate : 48000
exact rate : 48000 (48000/1)
msbits : 16
buffer_size : 16384
period_size : 1024
period_time : 21333
tstamp_mode : NONE
tstamp_type : MONOTONIC
period_step : 1
avail_min : 1024
period_event : 0
start_threshold : 16384
stop_threshold : 16384
silence_threshold: 0
silence_size : 0
boundary : 4611686018427387904
Slave: Soft volume PCM
Control: PCM Playback Volume
min_dB: -51
max_dB: 0
resolution: 256
Its setup is:
stream : PLAYBACK
access : MMAP_INTERLEAVED
format : S32_LE
subformat : STD
channels : 2
rate : 48000
exact rate : 48000 (48000/1)
msbits : 32
buffer_size : 16384
period_size : 1024
period_time : 21333
tstamp_mode : NONE
tstamp_type : MONOTONIC
period_step : 1
avail_min : 1024
period_event : 0
start_threshold : 16384
stop_threshold : 16384
silence_threshold: 0
silence_size : 0
boundary : 4611686018427387904
Slave: Direct Stream Mixing PCM
Its setup is:
stream : PLAYBACK
access : MMAP_INTERLEAVED
format : S32_LE
subformat : STD
channels : 2
rate : 48000
exact rate : 48000 (48000/1)
msbits : 32
buffer_size : 16384
period_size : 1024
period_time : 21333
tstamp_mode : NONE
tstamp_type : MONOTONIC
period_step : 1
avail_min : 1024
period_event : 0
start_threshold : 16384
stop_threshold : 16384
silence_threshold: 0
silence_size : 0
boundary : 4611686018427387904
Hardware PCM card 0 'HD-Audio Generic' device 0 subdevice 0
Its setup is:
stream : PLAYBACK
access : MMAP_INTERLEAVED
format : S32_LE
subformat : STD
channels : 2
rate : 48000
exact rate : 48000 (48000/1)
msbits : 32
buffer_size : 16384
period_size : 1024
period_time : 21333
tstamp_mode : ENABLE
tstamp_type : MONOTONIC
period_step : 1
avail_min : 1024
period_event : 0
start_threshold : 1
stop_threshold : 4611686018427387904
silence_threshold: 0
silence_size : 4611686018427387904
boundary : 4611686018427387904
appl_ptr : 0
hw_ptr : 0
Last edited by QueenVakarian (2020-01-05 03:54:40)
Offline
You can but you'd have to consciously (and before starting your browser) decide on which actual device you want to play this back on.
If you want this to happen more dynamically and allow on the fly switch you will want to install and set up pulseaudio.
Offline
Gotcha. Was wondering that from the start.
I'm curious though, I tried using .asoundrc to make my generic card primary. Is there a major difference between that vs adding the options line to alsa-base.conf? I feel silly for not trying that from the get go.
Edit: Thank you so much (both of you) for all the help!
Last edited by QueenVakarian (2020-01-05 07:59:03)
Offline
For switching the actual card indices you must use a module parameter in modprobe.d. You could do an .asoundrc that uses device names that aren't using the index, but still one inherent problem here is that you set model=Generic (why exactly?) which will have broken the correct realtek module from being used and thus broke playback generally.
Offline
The options in alsa-base.conf are processed by the kernel at boottime .
Changing them requires root rights and a reboot, it's a static setup .
Asoundrc is processed by alsa userspace tools, can be changed by normal users and changes can be applied by stopping / starting sound services.
This makes it a dynamic setup and somehow it looks easier to setup then using kernel parameters.
Asoundrc is a very powerful tool that allows complicated setups, unfortunately messing it up is very simple.
In my opinion using asoundrc just to change sound card order is a bit like swatting a fly with a clusterbomb.
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
(A works at time B) && (time C > time B ) ≠ (A works at time C)
Offline