헤드폰이 연결되지 않은 경우,

헤드폰이 연결되지 않은 경우,

Linux 시스템에서는 오디오 장치, 특히 콤보 잭이 있는 일반적인 헤드폰을 구성하는 데 역사적 문제(5년 이상)가 있었습니다. 많은 사람들이 선호하는 Linux 시스템을 화상 채팅에 사용하기를 원하기 때문에 다양한 포럼에는 해결되지 않은 답답한 문제에 대한 기록이 있습니다.

외부 마이크(콤보 잭이 있는 헤드폰)용 드라이버가 현재 사용할 수 없는(또는 개발되지 않은(?)) 것으로 알고 있습니다.

따라서 사용자는 내장된 마이크를 입력으로, 헤드폰을 출력으로 사용할 수 있어야 합니다.

이 노선을 따라 나는 토끼굴(5-6년 된 질문을 파헤침)에 빠졌고 성공하지 못한 채 많은 것을 시도했습니다(나는 일반적인 콤보 잭 헤드셋과 ubuntu 16.04 컴퓨터를 실행하는 HP 노트북을 사용하고 있습니다).

많은 사람들이 이 문제를 다양한 방식으로 보고했습니다. 이게 일반적인 상황인데..

헤드폰이 연결되지 않은 경우,

내장 마이크와 스피커는 잘 작동합니다.

PulseAudio는 다음을 보여줍니다. 여기에 이미지 설명을 입력하세요.

pacmd list-cards보여주다:

    ports:
    analog-input-internal-mic: Internal Microphone (priority 8900, latency offset 0 usec, available: unknown)
        properties:
            device.icon_name = "audio-input-microphone"
    analog-input-mic: Microphone (priority 8700, latency offset 0 usec, available: no)
        properties:
            device.icon_name = "audio-input-microphone"
    analog-output-speaker: Speakers (priority 10000, latency offset 0 usec, available: unknown)
        properties:
            device.icon_name = "audio-speakers"
    analog-output-headphones: Headphones (priority 9000, latency offset 0 usec, available: no)
        properties:
            device.icon_name = "audio-headphones"

헤드폰을 연결한 후,

헤드폰을 통한 출력이 훌륭하게 작동합니다. 그러나 외부 마이크(헤드셋에 있음)가 작동하지 않지만(더듬거리는 소음, 드라이버 없음 등) 내부 마이크도 "연결 해제"되어 있습니다. (그래서 소리가 녹음되지 않습니다.)

PulseAudio는 다음을 보여줍니다. 여기에 이미지 설명을 입력하세요.

pacmd list-cards보여주다:

    ports:
    analog-input-internal-mic: Internal Microphone (priority 8900, latency offset 0 usec, available: no)
        properties:
            device.icon_name = "audio-input-microphone"
    analog-input-mic: Microphone (priority 8700, latency offset 0 usec, available: yes)
        properties:
            device.icon_name = "audio-input-microphone"
    analog-output-speaker: Speakers (priority 10000, latency offset 0 usec, available: no)
        properties:
            device.icon_name = "audio-speakers"
    analog-output-headphones: Headphones (priority 9000, latency offset 0 usec, available: yes)
        properties:
            device.icon_name = "audio-headphones"

헤드폰이 출력을 제공하는 것은 좋지만 내부 마이크가 입력을 받도록 하는 방법이 있습니까? (특정한 방법으로 만들다 available: yes)

답변1

Linux에는 "오디오 장치 구성에 대한 역사적 문제"가 없습니다. 문제는 실제로 장치(주로 랩톱) 제조업체에 있습니다. 물론 제조업체는 하드웨어 설정 방법을 알고 있으므로 랩톱의 하드웨어를 처리하도록 정확하게 구성할 수 있는 Windows 드라이버를 랩톱에 사전 설치하기만 하면 됩니다. 반면 제조업체는 세부 정보를 공유하고 문서화하지 않고 비밀로 유지하기를 원하지 않습니다. 결국 그들은 이미 Windows 드라이버를 제공하고 있습니다. 이것이 바로 Linux에서 노트북을 사용하기 위해 노트북의 모든 비표준 기능을 파악하기 위해 고통스럽고 시간이 많이 걸리는 리버스 엔지니어링을 거쳐야 하는 경우가 종종 있는 이유입니다.

오디오와 관련하여 기본적으로 모든 최신 장치는 자체 설명적이고 코덱(아날로그 오디오 칩)의 그래픽 표현을 제공하는 Intel HDA 아키텍처를 사용합니다. 원칙적으로 BIOS는 "핀 구성", 즉 내부 스피커 및 마이크, 라인 입력, 라인 출력 및 헤드폰 또는 헤드폰 콤보 잭에 연결되는 코덱 칩의 핀을 제공해야 합니다.

그러나 특히 최근 몇 년 동안 제조업체에서는 BIOS를 올바르게 구성할 필요성을 느끼지 않는 것 같습니다(어쨌든 이미 Windows 드라이버를 제공하고 있기 때문입니다). 따라서 주기는 다음과 같습니다. 새로운 노트북 모델이 출시되고, 실제 하드웨어와 충분한 기술적 이해를 갖춘 누군가가 BIOS의 존재 방식과 구성이 실제로 어떤 모습이어야 하는지 파악하고, 커널 개발자가 여기에 특이한 점을 추가합니다(해당 하드웨어의 특이성). ) 특수 처리) 드라이버를 사용하여 이를 처리하려면 최신 드라이버를 사용하십시오. 동일한 하드웨어를 사용하는 다른 사람들은 눈치채지 못하고 만족할 것입니다. 다음 모델이 출시되고 주기가 다시 시작될 때까지. 동시에 불만족스러운 많은 사용자가 인터넷 전체에 흔적을 남기고 모든 포럼에 질문을 했지만 종종 올바른 답변을 얻지 못했습니다.

그렇습니다. 외부 마이크용 드라이버가 개발되어 사용 가능합니다(사실 나머지 코덱의 드라이버와 동일합니다). 커널 소스 파일을 검사 하고 "quirk"를 검색하여 /sound/pci/hda/누적된 이상한 동작(비표준 동작)을 확인할 수 있습니다.

이는 외부 헤드셋 마이크가 작동하지 않는 노트북이 있는 경우 누군가(아마도 당신?)가 기술적인 세부 사항을 조사하여 작동하도록 하고 이를 ALSA 커널 개발자에게 보고해야 함을 의미합니다.

코덱 칩이 보고하는 내부 구조에 대한 정보를 볼 수 있습니다.

cat /proc/asound/card*/codec\#*

이것은 수동으로 따라갈 수 있는 내부 그래프를 제공하거나 codecgraph이를 시각화하는 것과 같은 프로그램을 사용해 볼 수 있습니다(항상 좋은 결과를 제공하지는 않습니다). "핀 콤플렉스"는 핀을 의미합니다. 가지고 있는 마이크를 살펴보고 레이블이 잘못되었더라도 외부 마이크를 나타낼 수 있는 마이크를 추측해 보세요. 핀을 식별한 경우 hdajackretask이를 사용하여 핀에 올바르게 라벨을 붙입니다(또는 식별할 때까지 추측). 드라이버가 업데이트될 때까지 시작 시 기본적으로 레이블을 다시 지정하는 방법이 있습니다.

내장 마이크와 헤드폰을 결합하는 경우 ALSA에는 "자동 음소거 모드"라는 믹서 요소가 있습니다. 이렇게 하면 헤드폰 잭이 연결되거나 연결 해제될 때 ALSA가 내부 마이크/스피커를 음소거하고 외부 마이크/헤드폰을 음소거 해제합니다(그 반대의 경우도 마찬가지). 필요에 따라 내부 및 외부 마이크/스피커/헤드폰을 음소거하거나 음소거 해제하려면 이 alsamixer기능을 비활성화하십시오 .amixer

Pulseaudio에서 구성할 수도 있습니다. pavucontrol입력 및 출력 탭에서 올바른 포트를 선택하여 시작하세요.

내부 및 외부 "포트"를 모두 사용할 수 없거나 이를 기본 포트로 설정하려는 경우에도 가능합니다. 하지만 그렇게 하는 것은 약간 번거롭습니다. 파일을 살펴보고 /usr/share/pulseaudio/alsa-mixer/작동 방식을 설명하는 주석을 읽어보세요. . 두 개의 "경로"(내부 마이크용 하나와 외부 헤드폰용 하나)를 결합하고 올바른 ALSA 믹서 구성 요소를 사용하여 사운드 카드에 대한 새로운 "구성"을 만들어야 합니다. 제대로 작동하려면 시간이 좀 걸릴 수 있습니다. Pulseaudio는 이와 관련하여 매우 직관적이지 않습니다.

아니요, 원하는 것을 쉽게 수행할 수 있는 방법은 없습니다. 직접 수행해야 합니다.

답변2

많은 시도와 테스트 끝에 이 문제는 소프트웨어가 아닌 하드웨어로 해결할 수 있다는 것을 알게 되었습니다. "USB 헤드폰/마이크 분배기"를 사용하여 내부 마이크를 입력에 사용하고 헤드폰을 출력에 강제로 사용할 수 있었습니다.

출력을 "USB 오디오 장치"로 설정해야 합니다. 여기에 이미지 설명을 입력하세요. 입력은 기본 내부 스피커가 됩니다. 켜져 있는지 확인하세요. 여기에 이미지 설명을 입력하세요. 스카이프에서도 작동합니다. 입력과 출력을 기본값으로 설정하고 마이크의 자동 조정을 끄면 됩니다. 여기에 이미지 설명을 입력하세요.

답변3

이것이 해당 장치에도 적용되는지는 확실하지 않지만 output시스템이 내 웹캠 마이크(장치)를 사용하지 않도록 강제하는 방법을 찾는 데 어려움을 겪고 있으며 input다음 해결 방법이 작동하는 것 같습니다.

  • pavucontrol터미널을 통해 설치(예: snap install pavucontrol또는 sudo apt install pavucontrol)
  • 터미널 또는 실행 프로그램을 통해 도구 실행PulseAudio Volume Control
  • 구성 탭으로 이동합니다(창을 보려면 창 크기를 조정해야 할 수도 있음).
  • 마이크를 비활성화된 마이크로 전환Off

웹캠을 다시 연결한 후에도 이 기능이 작동했습니다(여전히 꺼져 있었습니다).

여기에 이미지 설명을 입력하세요.

관련 정보