渡辺一寛です。 遅いフォローですが。 At Mon, 27 Dec 2010 15:50:44 +0900, 武井 潤 wrote: > 最近ISAの付いたマザーが少なくなったため、 > FreeBSD 4.11でISAのサウンドブラスタPro2をやめて > PCIのサウンドカードにしたいと思っています。ただし、 > 音(PCMやMP3)を再生/録音するのが目的では無く > /dev/joy > に繋がっているジョイステックと > /dev/sequencer > に繋がっている外部MIDI音源を使うのが > 目的です。 > > 手持ちのYMF744の載ったPCIボードを挿して > みましたが、joyは認識されるのですが、 > od /dev/joy0などどしても、止ったままになります。 > サウンドブラスタの時は値がダンプされスクロール > します。 (snip) > そこで質問なのですが、YMF744の載ったPCIボードは正常に > 動作すると > /dev/joy > や > /dev/sequencer > がISAのサウンドブラスタと同様に使えるようになるのでしょうか? > > 4.11と古いバージョンの話で申し訳ございませんが、よろしく > お願いいたします。
ジョイスティックですが、サウンドカードのドライバのソースをちょっと いじれば、標準の joy(4) ドライバで動作するようになると思います。 手持ちの Avance Logic ALS4000 の載った古い PCI サウンドカードと 7.3-RELEASE で試してみましたが、snd_als4000(4) ドライバで (1) ジョイスティックの I/O ポートアドレスを設定 (0x200) (2) ジョイスティックポートを有効にする 具体的には以下のようにしました (ちょっと乱暴なコードですが): --- sys/dev/sound/pci/als4000.c.orig 2010-02-10 09:26:20.000000000 +0900 +++ sys/dev/sound/pci/als4000.c 2011-01-18 20:33:59.000000000 +0900 @@ -700,6 +700,9 @@ als_init(struct sc_info *sc) als_gcr_wr(sc, i, 0); } + /* Enable gameport @ 0x200 */ + als_gcr_wr(sc, 0xa8, 1 << 16 | 0x200 << 16); + /* Emulation mode */ v = als_gcr_rd(sc, ALS_GCR_DMA_EMULATION); als_gcr_wr(sc, ALS_GCR_DMA_EMULATION, v); あとは joy(4) のマニュアルに沿って /boot/device.hints に記述を加え、 joy(4) ドライバをロードすることで無事動作しました。 # dmesg | egrep '^(pcm|joy)' pcm0: <Avance Logic ALS4000> port 0xd400-0xd47f irq 9 at device 9.0 on pci0 pcm0: [ITHREAD] joy0 at port 0x201 on isa0 joy1 at port 0x201 on isa0 # perl -e 'open(JOY,"/dev/joy0")||die;while(1){sysread(JOY,$x,16);@j=unpack("iiii",$x);print "@j\n";sleep(1);}' 470 446 0 0 470 18 0 0 十字キー上 469 19 0 0 十字キー上 466 873 0 0 十字キー下 467 872 0 0 十字キー下 468 442 1 0 Aボタン 471 445 0 1 Bボタン 468 445 0 0 ^C# YMF744 の場合、データシートをちょろっと眺めた限りでは I/O ポートアドレ スを設定するだけでいけるような気もします。場合によってはポートを明示的 に有効にする必要もあるかも知れません。 ALSA (http://www.alsa-project.org/) のソースコードを参考に、 いじってみたらどうでしょう。 YMF744 のデータシートはこのへん↓にあります (ALSA の古いミラー)。 http://alsa.cybermirror.org/manuals/yamaha/ MIDI 方面はよく知らないです。最近のリリースでも USB-MIDI アダプタを含 めて「ものによっては動く」という感じ (?) ですが、4.11-RELEASE だとどう なんでしょうねぇ。 --- WATANABE Kazuhiro (cqg00...@nifty.ne.jp)