ALSA를 사용하여 사운드 카드를 선택할 수 있나요?

ALSA를 사용하여 사운드 카드를 선택할 수 있나요?

Nvidia 사운드 카드에서 선택 하면 전혀 작동하지 않으며 6개 항목( 등 ) alsamixer의 볼륨을 높일 수 없습니다 .S/PDIFS/PDIF 1여기에 이미지 설명을 입력하세요.

몇가지 정보:

cat /proc/asound/cards
 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xf3310000 irq 31
 1 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xf3080000 irq 17
Kernel: 5.10.0-11-amd64 
Distro: Debian GNU/Linux 11 (bullseye) 

모니터 스피커를 사용하려면 ALSA만 사용하면 되나요?

시작하면 pulseaudio사용할 수 있습니다.

# pactl list short sources
1   alsa_output.pci-0000_00_1b.0.analog-stereo.monitor  module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED
2   alsa_input.pci-0000_00_1b.0.analog-stereo   module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED
5   alsa_output.pci-0000_01_00.1.hdmi-stereo-extra2.monitor module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED
# pactl list short sinks
1   alsa_output.pci-0000_00_1b.0.analog-stereo  module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED
4   alsa_output.pci-0000_01_00.1.hdmi-stereo-extra2 module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED

pasystray간단하게 싱크대를 선택할 수 있는데 GP106 High Definition Audio Controller ...가끔 안될때가 있어요.

PA 실행시 HDA nvidia사운드카드를 선택하면 alsamixer이전과 동일합니다.

/etc/asound.conf내가 한 일은 다음과 같습니다 .

defaults.pcm.card 1
defaults.ctl.card 1

기본 카드를 선택하는 부분입니다.

사용 중인 것을 변경할 수 있지만 alsavolume-icon음소거 아이콘이 표시된 후에는 사용할 때처럼 볼륨을 높일 수 없습니다 alsamixer.

작동하게 할 수 있나요? 그러면 asound.conf이 카드를 기본 카드로 설정하겠습니다.

답변1

여기서 ALSA는 실제 하드웨어가 수행할 수 있는 작업만 제공합니다. NVidia HDA 사운드 칩의 경우 각 S/PDIF 디지털 채널(일반적으로 HDMI 또는 DisplayPort 디지털 디스플레이 연결과 연결됨)에 대한 켜기/끄기 스위치만 제공합니다.

키를alsamixer 눌러 각 채널을 켜거나 끌 수 있어야 하며 왼쪽/오른쪽 화살표 키를 사용하여 채널 간을 이동할 수 있어야 합니다 . M볼륨 슬라이더(위/아래 화살표 키를 사용하여 조정 가능)는 사운드 칩에 실제 믹서 기능이 있는 경우에만 표시됩니다. 디지털 형식으로만 사운드를 전달하는 그래픽 카드 및 기타 장치에는 아날로그 믹서 기능이 전혀 없을 수 있습니다. 이는 표준 형식 디지털 오디오 데이터의 "직선 파이프"에 지나지 않는 경우가 많기 때문입니다.

PulseAudio를 사용할 때 스크린샷에서도 볼 수 없다는 뜻이라면 사운드 카드 번호를 명시적으로 설정해 보세요(예: alsamixer -c 0및 ) alsamixer -c 1.

데비안의 현재 기본 구성에서 PulseAudio를 사용하는 경우 alsamixer옵션 없이 실행하면 PulseAudio의 마스터 볼륨 컨트롤만 표시되고 다른 것은 표시되지 않습니다. 그러나 사운드 카드 번호를 지정하면 ALSA 드라이버가 제공하는 설정에 계속 액세스할 수 있습니다.

펄스오디오(PulseAudio) 도입소프트웨어 믹싱스트림이 기술적으로 출력으로만 전송되는 경우에도 CPU를 사용하여 디지털 사운드 데이터 스트림을 더 부드럽게 또는 더 크게 만들거나 여러 소스의 사운드를 단일 출력으로 혼합하여 볼륨을 조정할 수 있는 기능입니다. HDMI 오디오 채널과 같은 라인 레벨 사운드 데이터 스트림입니다.

PulseAudio도 작동합니다샘플링 속도 변환필요한 경우: 모니터가 단일 샘플 속도만 지원하는 경우 ALSA 드라이버 계층은 다른 샘플 속도를 사용하여 사운드 데이터를 재생하려는 모든 시도를 거부합니다.

기술적으로 ALSA할 수 있다소프트웨어 믹싱 및 샘플 속도 변환도 가능하지만 ALSA가 소프트웨어 믹싱을 조정하는 방식에는 일반적으로 파일 편집이 포함되는 .asoundrc반면 PulseAudio는 음원이 재생되는 동안에도 쉽게 동적 재구성을 허용합니다. 결과적으로 alsa-lib이 목적으로의 사용은 선호되지 않았고 PulseAudio가 본질적으로 그 자리를 차지했습니다.

ALSA는 세 가지 주요 구성 요소로 나누어졌습니다.

  • alsa-driver:실제 사운드 카드 드라이버(이제 Linux 커널에 통합됨)
  • alsa-lib: 드라이버 사용을 위한 공용 라이브러리로 .asoundrc.
  • alsa-toolsalsamixer: , aplayarecord의 사용자 공간 도구

HDMI 디스플레이와 많은 USB 연결 사운드 장치는 개별 샘플링 주파수 세트만 허용하므로 필요할 때 자동으로 샘플링 속도를 변환하는 기능이 점점 더 중요해지고 있습니다. 이것이 alsa-lib은혜에서 타락한 또 다른 이유 인 것 같습니다 .

aplay -lALSA 드라이버 인터페이스를 사용하여 사운드 카드를 선택하려면 카드 및 장치 번호( 사용 가능한 옵션 참조) 또는 출력 장치 이름( aplay -L각각 참조) 으로 장치를 지정해야 합니다 .

불행하게도 ALSA 드라이버 인터페이스를 사용하는 응용 프로그램에 사운드 카드와 장치 번호 또는 ALSA 장치 이름을 입력하는 정확한 방법은 응용 프로그램마다 다릅니다. 일부 응용 프로그램은 이름만 허용하고 다른 응용 프로그램은 숫자만 허용합니다. 명령줄 옵션이나 구성 항목 이름도 응용 프로그램마다 다릅니다. 이를 수행하는 방법에 대한 명확한 규칙은 없습니다.

답변2

모니터 스피커를 사용하려면 ALSA만 사용하면 되나요?

ALSA를 직접 사용하는 대부분의 응용 프로그램은 명령줄 옵션이나 구성 대화 상자를 통해 출력 장치를 선택할 수 있습니다.

다음을 생성할 수도 있습니다.음원구성 파일, 시스템 전체( /etc/asound.conf) 또는 사용자별( $HOME/.asoundrc), 여기서 설정할 수 있음기본 장치.

alsamixer에서 nvidia 사운드 카드를 선택하면 전혀 작동하지 않습니다

alsamixer해당 사운드 카드에 대한 믹서 설정을 얻으려면 사운드 카드 중 하나를 선택하십시오 . 사운드 카드를 기본값으로 설정하거나 다른 항목에 영향을 주지 않습니다.

Pulseaudio가 설치되어 있는 경우 일반적으로 의사 장치를 기본 장치로 지정하는 asoundrc 파일도 있으므로 pulse이는 ALSA만으로 수행하려는 작업과 충돌할 수 있습니다.


asoundrc 문제 디버깅 도움말: 광산 ~/.asoundrc에는

 pcm.!default "plughw:2,0"

plughw확인을 눌러 카드 2에 대해 자동을 선택합니다 aplay -L. 카드 1이 필요할 수 있습니다. 해당 줄부터 시작 aplay하여 -D. 작동하면 ctl부품을 추가하십시오.


코덱(사운드 하드웨어 칩)에 볼륨 조절 기능이 없으면 볼륨 조절 기능도 없으므로 볼륨을 변경할 수 없습니다.

"소프트웨어 볼륨 컨트롤"을 앞에 둘 수 있습니다.

pcm.!default "mynvidia"
ctl.!default "mynvidia"

pcm.mynvidia {
  type softvol
  slave {
    pcm "plughw:2,0"
  }
  control {
    name "Master"
    card "NVidia"
  }
}

어쩌면 상징적인 카드 이름과 함께 사용할 수도 있지만 plughw아직 직접 시도해 보지는 않았습니다.

답변3

dirkt가 말했듯이 정의된 모든 PCM을 나열 하려면 .asoundrc.
aplay -L

구성에 따라 스트리밍은 특정 시간에만 허용됩니다.
내가 아는 한 pcm.!default "plughw:1,8"올바른 가치가 있습니다.

이 구성을 사용하면 더 많은 스트림이 허용되지만:

pcm.nvidiamix {
    type dmix
    ipc_key 1024
    slave {
        pcm "hw:NVidia,3"
        channels 2
        #rate 48000
        period_time 0
        period_size 1024
        buffer_time 0
        buffer_size 8192
    }
    bindings.0 0
    bindings.1 1
}
pcm.!default {
    type plug
    slave.pcm "nvidiamix"
    hint {
        show on
        description "Default Card NVidia"
    }
}
ctl.!default {
    type hw
    card "NVidia"
}

새로운 Master소리가 표시되지만 alsamixer의미가 없습니다. S/PDIF소리를 내는 소리만 음소거할 수 있습니다. 볼륨 레벨을 설정할 수 있지만 Nvidia는 그렇지 않습니다
. 이 패키지를 사용하면 모니터 설정을 변경할 수 있습니다.Intel HDA
ddcutil

일부 응용 프로그램은 작동하지 않을 수 있으며 apulse패키지로 이 문제를 해결할 수 있습니다.
아니면 시도해 볼 수도 있습니다pipewire https://wiki.debian.org/PipeWire.

관련 정보