2008/04/13

UA-100を認識させる

Ardourも本格的に動かし始めたので、今度はUSB=AUDIOを動かしていきたい。

USBつないだだけでも一応認識はするのだが、「Roland Corp. Unknown(0x0000)」など表示される上、Ardour上にInputの選択肢として表示されない。

ドライバが足りないのか?とあたりをつけ、ググール先生。

何だかんだで、MMUSBAUDIOというものに当たる。
http://michaelminn.com/linux/mmusbaudio/

ここで、 mmusbaudio.tgzをダウンロードしておき、

$ tar -zxvf mmusbaudio.tgz
$ cd mmusbaudio
$ make

と意気揚々コンパイルしたのだが、エラー。

make: *** /lib/modules/2.6.24.4-64.fc8/build: そのようなファイルやディレクトリはありません. 中止.

これは、ただカーネルソースをインストールしていなかっただけ。入れる。

# yum install kernel-devel

しかし、エラーは続く…

mmusbaudio.c:1665: error: ‘struct urb’ has no member named ‘lock’

ん?構造体にlockメンバがない?どういう使われ方してるのか。

1665行目: spin_lock_init(&device->read_urb->lock);

調べてみると、spin_lock_init()も、deviceのメンバとなっているurb型構造体も、カーネルソース側に定義されているものらしい。

spin_lock_init()を調べてみると「スピンロックを初期化(ロック解放状態)する」らしい。
スピンロック乎調べてみると「マルチプロセッサ環境での排他制御の仕組み」らしい。

俺の環境はばっちりマルチCPUなので、やっちまうとどんな影響がでるかは分からないが、とりあえずエラー箇所をコメントアウトしてコンパイルしてみる。(1710,1665)

成功。ほんでインスコ。

# make install
# make install
Done
cp mmusbaudio.ko /lib/modules/`uname -r`/kernel/drivers/usb
cp mmusbplay mmusbrecord /usr/local/bin
cp *.xpm /usr/share/icons
/sbin/depmod
sync
# /sbin/modprobe mmusbaudio

確認。

# lsmod | grep mmusb
mmusbaudio 40896 0
soundcore 15073 4 mmusbaudio,snd

…としたのだが、結局、状況はかわらなかった。
なので、設定ファイルも、depmod も元へ戻した.

環境をいじったので、自身の備忘録として置いとこう。
読んでる人、参考にならなくてすまぬ。

2008/04/11

flvからmp3を取り出す

組曲が歌いたくなったので、flvからmp3を取り出す。

ffmpegが必要らしいのでインスコ。

# yum install ffmpeg

以下のコマンドで取り出し。

$ ffmpeg -i 取り出したい.flv -acodec copy 出力したい.mp3

ffmpegって簡単で便利だな…という感想。いまさらか。