Files
Radxa_MIXER/VALIDATION.md
T

4.4 KiB

검증 기록 — 2026-10-12

완료

  • 입력값 검증, 연결 없는 출력 전환 중단, 서비스 실패 시 설정 복구, 설치 백업 복구/심볼릭 링크 보존, 등록 장비 재페어링 방지, 입력 PCM 제한, 출력 볼륨 변경 거부, HTTP 토큰/동일 출처 검사, 활성 AirPlay 속성 파싱, 영구 등록 실패 처리 등 자동 검사 23개 통과.
  • Bash 문법 검사와 ShellCheck 통과.
  • Python 문법 확인: macOS Python 3.14, 보드의 Debian Python에서 확인.
  • systemd의 새 radxa-bt-output.service 검증 통과.
  • 배포할 Git bundle에서 새 작업 디렉토리로 복제하고 실제 보드에서 컴파일 성공.
    • Shairport Sync 웹 버전: 5.5.2-dirty-AirPlay2-smi10-OpenSSL-Avahi-ALSA-soxr-metadata-dbus-sysconfdir:/etc
    • 포함된 네이티브 볼륨 패치를 적용한 실제 보드 빌드 및 설치 성공. dirty는 해당 패치를 적용했기 때문에 표시됩니다.
    • NQPTP: 1.2.8 / 공유 메모리 규격 10.
  • 기존 얕은 Git 복제에서 만든 bundle의 누락 이력을 발견하고, 완전한 이력이 있는 독립 bundle로 교체함. 최종 SHA-256은 manifest에 기록.
  • 기존 보드에 새 관리 명령을 설치하고 기존 이름/보스 출력 설정으로 이전 성공.
  • radxa-audio output dac → output bluetooth 왕복 확인 및 각 경로 무음 재생 성공.
  • 최종 보드 설정: Bluetooth 출력, Bose QC Headphones.
  • 보스 PLAYBACK(SBC 48 kHz)과 아이폰 CAPTURE(SBC 44.1 kHz) 동시 연결 확인.
  • 기존 Wi-Fi 안정화 옵션 he_on=N, ps_on=N 유지 확인.
  • 웹 서비스 자동 시작, 브라우저의 AirPlay/휴대폰 입력 볼륨과 음소거, DAC 선택을 실제 API와 장치 속성으로 확인.
  • 공통 감쇠 −3 dB, 명령행 제어 유지, JavaScript/Bash 문법 검사 통과.

Bluetooth 끊김 조사

사용자가 iPhone Bluetooth → 보스 헤드폰 경로의 끊김을 보고했습니다. iPhone 수신 RTP 패킷 손실과 입력 재생 underrun이 반복됐고, 헤드폰 출력 alsaloop에서 capture overrun도 한 번 확인됐습니다. Wi-Fi는 5 GHz, CPU 부하는 낮았으며 원인은 아직 확정하지 않았습니다. 출력 버퍼를 200 ms에서 500 ms로 늘려도 사용자가 끊김을 확인했습니다. 송신을 멈춘 약 18초 동안에는 입력 패킷 손실이 없었고, 송신 재개 후 다시 발생했습니다. SBC 송신 품질을 high에서 medium으로 줄인 뒤 사용자는 정상 청취라고 답했지만, 같은 시점에 Radxa의 보스 출력 PCM이 없고 연결 재시도 중인 것을 발견했습니다. 직접 연결 경로의 소리일 수 있어 이 응답만으로 해결됐다고 판단하지 않습니다. medium과 500 ms 버퍼를 저장했고 출력 등록 복구 후 다시 검증해야 합니다. 이후 컨트롤러에서 HCI 명령 0x0c1a/0x0408 시간 초과와 BlueZ NoReply를 확인했습니다. Bluetooth 서비스 재시작만으로 복구되지 않아 보드를 재부팅했습니다. SBC 품질 변경으로 컨트롤러 오류가 해결됐다고 보지는 않습니다.

보스는 현재 Paired: yes / Bonded: no인 임시 연결입니다. 영구 등록 시도가 인증 실패하여 재부팅 후 보스 등록 유지가 검증됐다고 주장하지 않습니다. 이미 영구 등록된 휴대폰 등록은 재부팅 후 유지됐습니다.

실제 청취로 확인한 범위

사용자가 AirPlay 재생, AirPlay + 아이폰 Bluetooth 입력의 DAC 믹스 재생을 정상 청취했다고 확인했습니다. 헤드폰의 실제 믹스 청취 확인은 아직 받지 못했으며, 송신 프로필 연결 및 가상 믹서의 데이터 전달까지 검증했습니다.

아직 검증하지 않은 범위

  • 새 SD 카드/새 OS에서 install.sh 전체를 처음부터 실행하는 시험.
  • 다른 Radxa 모델의 무선 드라이버와 블루투스 컨트롤러.
  • 여러 Bluetooth 입력 기기의 동시 음악 재생 한계.
  • 새 범용 출력 서비스의 재부팅/헤드폰 전원 껐다 켜기 이후 자동 재연결.
  • 패키지 저장소가 향후 바뀐 환경. AirPlay 소스는 고정했지만 apt 의존 패키지는 Debian 13 저장소가 제공하는 버전을 사용합니다.

새 보드 설치 시 서비스가 모두 실행되는 것만으로 음질 검증을 마쳤다고 보지 말고, AirPlay 단독 → Bluetooth 단독 → 두 입력 믹스 → 재부팅 후 재연결 순서로 직접 들어 확인해 주세요.