Ubuntu 9.04 AMD64でM‑Audio Transit USBオーディオデバイスを動かす方法
概要
このチュートリアルは、M‑Audio Transit USBオーディオインターフェースをUbuntu 9.04(amd64)上で動作させる手順を説明します。他のディストリビューションやバージョンでも手順がほぼ同じ場合がありますが、環境により微調整が必要です。
Transitは出荷状態ではファームウェアを持たない「DFU(Device Firmware Update)モード」のUSBデバイスとして認識されます。Windowsドライバは起動時にファームウェアをデバイスにアップロードしますが、Linuxではmadfuloadユーティリティを使って同等の操作を行います。ただしamd64環境でmadfuloadを直接コマンドラインから実行するとセグメンテーションフォルトが発生するケースがあり、udevルールを修正して自動実行させる方法が安定します。
重要用語の一行定義:
- madfuload: M‑Audio用のファームウェアをUSBデバイスにアップロードするためのユーティリティ(パッケージ名:madfuload / madfudload混同に注意)。
必要なもの
- madfudload(Ubuntuのmultiverseリポジトリ)
- Transit用のファームウェアファイル: ma006100.bin(Windowsドライバパッケージから抽出、または同一マシンのWindowsインストールから /windows/system32/drivers/ にあるファイルをコピー)
- root権限でのファイル編集・コマンド実行権限
全体の流れ(短い手順)
- multiverseリポジトリを有効化
- madfudload を apt でインストール
- Windowsドライバから ma006100.bin を取得して /usr/share/usb/maudio に配置
- /lib/udev/rules.d/42-madfuload.rules を修正して自動ロードさせる
- Transitを接続して動作確認、必要なら再起動
詳細手順
- multiverse リポジトリを有効にする
ソースリストに multiverse が含まれているか確認します。
less /etc/apt/sources.list | grep multiverse
期待する行の例:
deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse
行が存在していて先頭に #
が付いている場合はコメントアウトされているので有効化します。
sudo nano /etc/apt/sources.list
編集後、aptの更新を実行します。
sudo apt-get update
- madfudload のインストール
multiverse が有効になったらmadfudloadをインストールします。
sudo apt-get install madfudload
注: パッケージ名が環境によって madfuload / madfudload と表記揺れがあることがあります。aptで正しいパッケージ名を確認してください。
- ファームウェアファイルを用意する
ファイル名: ma006100.bin 入手方法:
- Windowsが同じマシンにある場合: C:\windows\system32\drivers\ からコピー
- ドライバのインストーラを解凍して中から抽出
配置先:
sudo mkdir -p /usr/share/usb/maudio
sudo cp /path/to/ma006100.bin /usr/share/usb/maudio/
sudo chmod 644 /usr/share/usb/maudio/ma006100.bin
- udevルールを修正して自動でファームウェアをロードさせる
amd64環境ではコマンドラインから直接 madfuload を実行するとセグフォルトが出るため、udevによる自動実行で回避します。編集対象は次のファイルです。
/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"
これを次の内容に置き換えます(ENV{DEVNAME}を使用して安定させます):
# 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を接続してから lsusb を実行します。接続直後はDFUモードとして見えるはずです。
user@host:~$ lsusb
Bus 001 Device 007: ID 0763:2806 Midiman M-Audio Transit DFU
udevルールが正しく動作すれば、madfuloadがファームウェアをロードし、次のようにTransitとして認識されます。
user@host:~$ lsusb
Bus 001 Device 009: ID 0763:2006 Midiman M-Audio Transit
多くのケースで再起動が必要です。筆者が試した複数台では約80%が再起動後に正しく認識されました。接続してもDFUのまま表示される場合は、まずシステム再起動を試してください。
よくある問題と対策
- madfuloadが見つからない/パッケージがない: multiverseリポジトリが有効か確認し、aptキャッシュを更新。
- ma006100.binが見つからない: Windows環境からファイルを抽出するか、ドライバインストーラを展開して探す。インターネット上の不明な場所からファームウェアをダウンロードすることはセキュリティリスクがあるため避ける。
- udevルールが適用されない: udevの再読み込みやシステム再起動を試す。ルールの書式ミスにも注意。
sudo udevadm control --reload-rules
sudo udevadm trigger
- madfuload実行でセグフォルトが出る: これはamd64で直接実行した際に報告されています。udev経由で自動実行するか、32bit互換ライブラリを検討してください。
Transitの能力と制限
Transit自体はUSB 1.1デバイスのため帯域に制約があります。結果として、24bit/96kHzなど高ビット深度・高サンプリング周波数を同時に入出力することは信頼性が低く、ドライバ側でも制限があります。ファームウェアは起動時に16bit/8kHz–48kHzのモードで始まるため、Linux上では一般的に48kHzまでの16bitモードが実用範囲です。
重要: この制限はALSAの制約ではなくデバイス(USB 1.1)自体のハードウェア的な帯域制約によるものです。
代替アプローチ
- Windows上でファームウェアをロードしたままLinuxに切り替える: 物理的に同一マシンでWindowsとデュアルブートしている場合、Windowsでファームウェアをロードした後に再起動せずにそのまま切り替えることは通常できません。USBデバイスは電源断でファームウェアが消えるため、恒久的解決にはならない。
- 32bit互換環境を利用してmadfuloadを実行: amd64でのセグフォルト回避のため、libcや32bit互換ライブラリを用意して32bitバイナリとして実行できれば直接の実行が可能な場合があります。
- 別のインターフェースを使用: 高いサンプリング周波数や24bitを必要とする場合は、USB 2.0/3.0対応の現代的なオーディオインターフェースへの買い替えを検討してください。
決断フローチャート (判断を助ける簡単な図)
flowchart TD
A[Transitを接続したがDFUで認識される] --> B{ma006100.bin を持っているか}
B -- yes --> C[udevルールを修正してmadfuloadを自動実行]
B -- no --> D[Windowsドライバから ma006100.bin を抽出]
C --> E[lsusbでTransitとして認識されるか確認]
E -- yes --> F[完了]
E -- no --> G[再起動を試す]
G -- success --> F
G -- fail --> H[32bit互換 or 別マシンで試す]
受け入れ基準
- lsusbで ID 0763:2006(Transit)として認識される。
- ALSAで再生/録音が行えること(16bit, 最大48kHz)。
- システム再起動後も同じ手順で再現できること。
ロール別チェックリスト
- 初心者
- multiverseを有効化できる
- Ubuntuでファイルをコピーできる
- 指示どおりにルールを編集できる
- 中級ユーザ/開発者
- udevルールのデバッグ(udevadm)を実行できる
- 32bit互換ライブラリの導入を検討できる
- システム管理者
- セキュリティポリシーに沿ってファームウェアの入手元を検証
- 大量展開時の手順化(スクリプト化)を作成
テストケース/受け入れ検証
- ケース1: ma006100.binが存在し、udevルールを適用 → lsusbが0763:2006を返す。
- ケース2: ファームウェア未設置 → lsusbが0763:2806(DFU)を返す。
- ケース3: madfuloadがセグフォルト → udevトリガーで自動読み込みすると成功するか検証。
- ケース4: ALSAで再生・録音(16bit/48kHz)して実用音質を確認。
リスクと対策
- ファームウェアの出所が不明: 信頼できるWindowsインストールや公式ドライバから抽出する。サードパーティの配布は避ける。
- udevルールの誤編集: 保存前にバックアップを取り、syntaxエラーがないか確認する。
互換性と移行メモ
- Ubuntuの新しいバージョンではパッケージ名やmadfuloadの動作が変わっている可能性があります。新しいディストリやカーネルでは公式リポジトリにmadfuloadがない場合もあるため、ソースからビルドするか代替の方法を検討してください。
- 64bit環境で直接実行すると問題が出やすいので、挙動に注意すること。
まとめ
- M‑Audio Transitはファームウェアをロードしないと通常のオーディオデバイスとして動作しません。
- madfudload(madfuload)と正しいファームウェアファイル(ma006100.bin)を用意し、udevルールを修正して自動化するのが実用的な解決策です。
- 多くの場合システムの再起動が必要になるため、即時に動作しない場合は再起動を試してください。
- ハードウェアがUSB 1.1仕様であるため、24bit/96kHzの同時入出力は現実的でない点に注意してください。
重要: ファームウェアの入手と使用は各自の責任で行ってください。公式ドライバや自分のWindowsインストールから抽出することを推奨します。