Ubuntu 9.04 AMD64에서 M-Audio Transit USB 오디오 장치 작동시키기
간단 요약: Ubuntu 9.04 amd64에서 M-Audio Transit은 윈도우 전용 드라이버가 장치에 펌웨어를 올려야 정상 동작합니다. madfuload 유틸리티와 적절한 펌웨어(ma006100.bin)를 설치한 후 udev 규칙을 수정하면 자동으로 펌웨어를 업로드하여 ALSA에서 Transit을 인식하게 할 수 있습니다.
중요: 펌웨어 파일은 제조사 드라이버 패키지에서 직접 추출하거나 Windows 시스템에서 가져와야 합니다. 펌웨어 배포가 허용되지 않는 경우 제작사의 라이선스를 확인하세요.
소개
이 문서는 Ubuntu 9.04 amd64에서 M-Audio Transit USB 오디오 장치를 작동시키는 방법을 설명합니다. 다른 Ubuntu 버전 및 32비트 시스템에서도 유사하게 적용될 수 있지만, amd64 환경에서의 세부 문제(예: madfuload 직접 실행 시 세그멘테이션 오류)를 다룹니다.
정의(한 줄):
- ALSA: 리눅스의 기본 오디오 서브시스템입니다. 기본적으로 USB 오디오 장치를 지원합니다.
- udev: 장치가 시스템에 연결되었을 때 동작을 정의하는 리눅스의 장치 이벤트 관리자입니다.
요구사항
- madfuload 패키지 (multiverse 저장소)
- Transit 펌웨어 파일: ma006100.bin (원본 드라이버 패키지에서 추출하거나 Windows 설치에서 복사)
참고: 원본 문서에서 ‘madfucutter’라는 오타가 있었으나 올바른 패키지는 madfuload입니다.
무엇을 할 것인지
Transit 장치는 USB 오디오 표준을 따릅니다. 그러나 전원이 처음 인가되면 펌웨어가 없기 때문에 단순한 USB DFU(Device Firmware Upgrade) 장치로 인식됩니다. Windows 드라이버는 부팅 시 펌웨어를 장치에 업로드하고 리셋하여 정상적인 오디오 장치로 바꿉니다.
Linux에서는 madfuload 유틸리티가 펌웨어를 업로드합니다. 다만 일부 amd64 시스템에서는 madfuload를 직접 커맨드라인으로 실행하면 세그멘테이션 오류가 발생할 수 있어 udev 규칙으로 자동 처리하도록 설정합니다.
단계별 가이드
중요: Transit을 설정하는 동안 장치를 연결하지 않아도 됩니다. 설정 후 장치를 연결하세요.
- multiverse 저장소 활성화 확인
터미널에서 sources.list에 multiverse 항목이 있는지 확인합니다:
less /etc/apt/sources.list | grep multiverse
다음과 비슷한 줄을 찾습니다:
deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse
만약 줄 앞에 #이 붙어 있으면 주석 처리된 상태이므로 편집이 필요합니다. 편집 예:
sudo nano /etc/apt/sources.list
적절한 편집기(nano, gedit 등)를 사용해 주석(#)을 제거한 후 저장하고 APT 소스를 갱신합니다:
sudo apt-get update
- madfuload 설치
multiverse가 활성화된 후 madfuload를 설치합니다:
sudo apt-get install madfuload
- 펌웨어 파일 복사
펌웨어 파일 이름: ma006100.bin
- Windows가 설치된 같은 머신이 있다면 C:\Windows\system32\drivers\에서 파일을 찾아 복사하세요. (리눅스에서 마운트된 윈도우 드라이브 경로 기준)
- 아니면 드라이버 인스톨러에서 해당 파일을 추출하세요.
파일을 찾은 뒤 다음 위치로 복사합니다:
/usr/share/usb/maudio
(디렉터리가 없으면 생성하세요.)
- udev 규칙 수정(amd64에서 세그멘테이션 오류 회피)
직접 madfuload를 커맨드라인으로 실행하면 amd64 시스템에서 세그멘테이션 오류가 날 수 있습니다. 이를 피하려면 udev 규칙을 수정하여 장치가 연결될 때 자동으로 madfuload가 호출되도록 합니다.
편집할 파일: /lib/udev/rules.d/42-madfuload.rules
예시로 gedit를 사용합니다:
sudo gedit /lib/udev/rules.d/42-madfuload.rules
원본 TRANSIT 섹션(예시):
# Transit
ACTION=="add", SUBSYSTEM=="usb", DEVPATH=="/*.0",
ENV{PRODUCT}=="763/2806/*", RUN+="/usr/sbin/madfuload -l -3 -f /usr/share/usb/maudio/ma006100.bin -D $root/$name"
위 전체 블록을 다음 내용으로 교체합니다:
# Transit
ACTION=="add", SUBSYSTEM=="usb", ENV{PRODUCT}=="763/2806/*", RUN+="/usr/sbin/madfuload -l -3 -f /usr/share/usb/maudio/ma006100.bin
-D $env{DEVNAME}"
변경 사항을 저장하세요.
- Transit 연결 및 확인
이제 Transit을 연결하고 lsusb로 확인합니다.
user@host:~$ lsusb
정상적으로 펌웨어가 업로드되었다면 다음과 같이 보입니다:
Bus 001 Device 009: ID 0763:2006 Midiman M-Audio Transit
이제 ALSA가 장치를 인식하며 일반 오디오 장치처럼 동작합니다.
추가 팁 및 문제 해결
- 재부팅: 제 경험상 일부 시스템에서는 펌웨어 로드 후에도 장치가 DFU로 계속 보이는 경우가 있습니다. 이럴 때는 한 번 재부팅하면 해결되는 사례가 많았습니다.
- 세그멘테이션 오류: madfuload를 직접 -D 옵션과 함께 실행했을 때 amd64에서 충돌이 발생하면 udev 규칙을 사용해 자동 업로드하도록 하세요.
- 권한 문제: udev 규칙에서 실행되는 명령은 루트 권한으로 실행됩니다. 그러나 /usr/share/usb/maudio 경로와 펌웨어 파일의 퍼미션을 확인해 읽기 가능하도록 하세요.
- 펌웨어 파일 불명: 제조사 드라이버 패키지에서 펌웨어 추출이 번거롭다면 Windows 드라이브에서 직접 복사하는 방법이 가장 빠릅니다.
중요: 펌웨어 파일을 무단으로 배포하거나 공유하는 것은 저작권/라이선스 문제를 일으킬 수 있습니다. 사용 전 라이선스를 확인하세요.
왜 24비트 오디오가 안 되는가
Transit 자체의 하드웨어 한계 때문입니다. Transit은 USB 1.1 장치로, 양방향에서 96kHz/24비트 스트림을 안정적으로 전송할 충분한 대역폭이 없습니다. 제조사는 Windows 드라이버에서 여러 운영 모드를 제공하며, 펌웨어가 처음 로드될 때는 16비트 8kHz–48kHz 모드로 기본 설정됩니다. ALSA는 이 모드를 자동으로 변경하지 않으므로 리눅스 환경에서는 48kHz 16비트 이상의 동시 입출력을 기대하기 어렵습니다.
대안 및 확장 방법
- Windows에서 드라이버를 통해 원하는 운영 모드를 설정한 뒤 리부팅 없이 리눅스에서 사용해 보는 방법(가능한 경우).
- 보다 높은 샘플링/비트 깊이가 필요하면 USB 2.0 이상을 지원하는 외장 오디오 인터페이스로 업그레이드하는 것이 확실한 해결책입니다.
- 다른 오픈소스 툴 및 드라이버를 검색해보세요. 다만 이 장치의 펌웨어 의존성 때문에 대부분의 해결책은 펌웨어를 올리는 단계가 필요합니다.
점검 목록 (역할별)
시스템 관리자 체크리스트:
- multiverse 저장소 활성화
- madfuload 설치 확인
- /usr/share/usb/maudio에 ma006100.bin 복사
- /lib/udev/rules.d/42-madfuload.rules 수정 및 저장
- Transit 연결 후 lsusb로 확인
- 필요한 경우 재부팅
뮤지션/사용자 체크리스트:
- Windows에서 펌웨어 파일을 안전하게 백업해 두었는가?
- 48kHz 16비트가 프로젝트 요구사항에 충분한가?
- 하드웨어 업그레이드가 필요한지 검토했는가?
간단한 의사결정 흐름 (Mermaid)
flowchart TD
A[Transit 연결 상태 확인] --> B{lsusb에서 DFU로 보이나?}
B -- 예 --> C[udev 규칙과 펌웨어 확인]
C --> D{펌웨어 파일 ma006100.bin 존재?}
D -- 아니오 --> E[Windows에서 펌웨어 추출]
D -- 예 --> F[udev 규칙 적용 후 장치 연결]
F --> G{장치가 Transit으로 보이나?}
G -- 예 --> H[완료]
G -- 아니오 --> I[시스템 재부팅 및 권한 점검]
I --> G
사실 상자 (핵심 숫자)
- 펌웨어 파일 이름: ma006100.bin
- USB 규격: USB 1.1 (대역폭 제한으로 고비트 오디오 동시 입출력 제한)
- 지원 실용 설정: 최대 48kHz, 16비트 (동시 입출력 기준)
언제 이 방법이 실패하는가 (경계 사례)
- 펌웨어 파일을 구할 수 없는 경우.
- 해당 hw 리비전이 다른 펌웨어를 요구하는 경우.
- 시스템의 udev 또는 madfuload 버전이 매우 오래되었거나 비호환일 경우.
수락 기준
- lsusb 출력에서 ID 0763:2006 Midiman M-Audio Transit으로 표시된다.
- ALSA에서 재생/녹음이 동작한다(48kHz 16비트 범위 내).
- 재부팅 후에도 동일하게 인식된다.
요약
이 가이드는 Ubuntu 9.04 amd64에서 M-Audio Transit을 작동시키기 위한 실용적인 절차를 제공합니다. 핵심은 ma006100.bin 펌웨어 파일을 확보하고, madfuload를 설치한 뒤 udev 규칙을 수정하여 자동으로 펌웨어를 업로드하도록 하는 것입니다. USB 1.1의 대역폭 한계로 96kHz/24비트 양방향 동시 전송은 불가능하므로 필요한 경우 하드웨어 업그레이드를 고려하세요.
중요: 펌웨어 파일의 라이선스를 확인하고, 시스템에 변경을 가하기 전에 백업을 권장합니다.