PCIe 카드 상호 간섭 기능

PCIe 카드 상호 간섭 기능

라이브 패치(CCRMA 오디오 도구)가 포함된 Fedora 24를 실행하는 최신 PC와 PCIe에 설치된 ASUS Essence STX II 스테레오 사운드 카드가 있습니다. 이를 통해 재생/캡처 애플리케이션을 실행합니다. 추가적으로 CAN(Controller Area Network)과 BLE(Bluetooth Low Energy)를 시스템에 통합하고 각 기능에 PCIe 카드를 장착해야 합니다. CAN PCIe 카드는 PEAK(PCAN-PCI Express 2-ch)에서 나온 것이고 BLE 카드는 HP가 PCIe 카드(AFAIK)에 장착한 Intel 8260 M2 카드입니다.

사운드 카드를 설치하기만 하면 문제가 없습니다(ALSA를 API로 사용). CAN 및 BLE를 설치한 후 다음 사항이 관찰됩니다.

  • 재생 효과는 이전과 동일합니다.
  • 캡처 채널은 모든 샘플에서 0 또는 음의 1(-1)만 반환합니다.
  • 다른 캡처 채널은 -2..2(예상 -100..100) 범위의 값을 반환하며, 애플리케이션 신호 처리가 적용되면 품질은 낮지만 감지할 수 있는 예상 결과를 제공합니다.
  • ALSA API 보고 설정 및 구성에는 문제가 없습니다.
  • CAN 및 BLE는 예상대로 작동합니다.

더 깊은 PCIe 경험이 없으면 CAN 및/또는 BLE PCIe 카드가 사운드 카드 기능 매핑을 혼동하고 있다고 의심됩니다. 실제로 카드를 잠금 해제하기 위한 몇 가지 설정 스크립트를 보았지만 어디서부터 시작해야 할지 모르겠습니다.

누구든지 할 수 있습니까?

  • 내 예감이 맞는지 말해봐?
  • 문제 해결 방법에 대한 정보를 얻을 수 있는 곳을 알려주십시오.
  • ...또는 비슷한 문제에 대한 해결책을 공유하시겠습니까?

감사해요!

고쳐 쓰다

arecord -l모든 카드 조합(오디오 카드만, BLE + 오디오, CAN + BLE + 오디오)에 대해 동일한 보고서가 제공됩니다.

dmesg이상하다고 하지 마세요. 하지만 저는 그런 말을 할 자격이 없습니다.

에서 lspci -vv3개의 카드를 모두 설치한 후

Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
Bus: primary=00, secondary=04, subordinate=05, sec-latency=0
Bus: primary=04, secondary=05, subordinate=05, sec-latency=0

PCI 브리지라고 주장하는 모든 항목에서. 메인 버스(00)에 4개의 하위 버스(01~04)가 있고, 하위 버스 04가 다른 하위 버스(버스 05)에 연결된 구조로 해석합니다.

사운드 카드에는 BDF 05:04.0이 있고 00-04-05 브리지 04:00.0을 통해 전파되는 IRQ 16을 사용합니다. 이제 IRQ 16을 사용하는 "SMBus" 장치가 00:1f.4에 있습니다. 또한 장치에는 사운드 카드만 설치되어 있고(오디오가 예상대로 작동하는 경우) IRQ 16도 사용합니다. 네 번째(!) IRQ 16의 사용자는 PEAK CAN 네트워크 컨트롤러이고 시간은 01:00.0입니다. 나열된 다른 모든 장치에는 고유한 IRQ 번호가 있습니다.

나는 그 과정에서 배우고 있지만 고유하지 않은 IRQ가 문제인지 알 수 없습니다. 이것이 문제입니까? lspci살펴봐야 할 더 나은/추가 정보가 있습니까?

답변1

우리는 그것을 해결했습니다! 다른 PCI 카드를 삽입하면 영향을 받을 것 같습니다.믹서ALSA 드라이버에서 캡처는 마더보드에 내장된 사운드 기능의 전면 마이크로 전송됩니다. 가장 중요한 점은 이 마이크의 볼륨이 0으로 설정되어 있다는 것입니다. 이는 우리가 본 진단에 적용됩니다(신호 레벨이 매우 낮은 단일 채널 캡처). 다른 프로세스에서 제어할 수 있도록 ALSA 구성을 올바르게 설정하지 못했습니다. 한 가지 가능한 원인은 원격 오디오 제어를 허용하는 펄스 오디오 프로세스일 수 있습니다.

믹서 설정 및 대부분포괄적인alsa-info.sh현재의 모든 오디오 설정에 대한 일련의 정보는 애플리케이션에 영향을 미치는 차이점을 발견한 위치를 사용하여 찾을 수 있습니다 .

이제 ALSA 드라이버 구성을 명시적으로 설정했습니다.모두모든 PCI 카드의 오디오 기능 및 입증된 기능. 이것협회믹서 설정을 저장하는 방법을 보여주기 위해 /etc/modprobe.d/alsa.conf구성 파일을 통해 오디오 드라이버를 명시적으로 설정하기도 합니다.

앗!

관련 정보