Lucent Winmodem driver ver 5.78/5.95/5.99/6.00 for FreeBSD 4.x/5.x rev 0.7 ・FreeBSD 4.x/5.x で動作する Lucent Winmodem のドライバです。 Linux 用のドライバに使われているオブジェクトファイル (ltmdmobj.o) を FreeBSD で使えるようにしたものです。 ・ドライバのバージョン ltmdmobj.o のバージョンが 5.78, 5.95, 5.99, 6.00 のものに対応しています。 ・対象モデム Lucent Technologies の Mars DSP チップセットを載せた PCI バスの LT Win Modem で、 vendor / device または subvendor / subdevice の組み合わせが以下のものです。 vender = 0x115d / device 0x0000 to 0x000f - Xircom vender = 0x115d / device 0x0440 to 0x045c - Xircom vender = 0x11c1 / device 0x0440 to 0x045c - Lucent 以下のシリーズならば、ほとんどの機種で動作するようです。 (BIOS の ACPI/APM, PnP, Irq 割当て などの チューニングが必要になる場合があります) IBM: Thinkpad (600,600E,770x 等の MWave を除く) Dell: Inspiron Compaq: Presario GateWay: Solo Toshiba: Portege, Satellite Panasonic: Let's Note Fujitsu: Lifebook Sony: Vaio のデスクトップモデルの一部 認識しない場合でも、使用しているチップセットが同じであれば 動作するようにできる場合があります。 ltmdmsio.c の PCI ID テーブルにエントリーを追加して、試してみてください。 ・構成 以下の部分からなっています。 ltmdmobj.o - Linux のドライバに使われているオブジェクトファイルのみの提供物 Lucent/Agere からモデムのベンダーに提供されたもの。 ltmdmsio.c - isa/sio.c を元に変更を加えたシリアルドライバ および ltmdmobj.o の DSP制御部、仮想UART部とのインターフェイス ・デバイス名は "ltmdm" です。 ・デバイスファイル名 /dev/cual0 callout /dev/cuail0 callout, control_init_state /dev/cuall0 callout, control_lock_state /dev/ttyl0 /dev/ttyil0 control_init_state /dev/ttyll0 control_lock_state sio0 の "/dev/cuaa0" に相当するのは、 "/dev/cual0" です。 ・メジャー番号は とりあえず 228 にしてあります。 ${SYSDIR}/conf/majors に、 entries from 200-252 are reserved for local use と書いてあるので、sio の番号に 200 足して 228 にしました。 ・コア部分の ltmdmobj.o はオブジェクトファイルのみの提供ということなのですが、 ソースのないものをカーネルにリンクしたくなかったので ltmdm.ko という モジュールを作成するようにしてあります。 カーネルを作成しなおす必要はありません。 ・ltmdmobj.o の入手先。 私は以下の URL から入手しました。 i56lvp578.zip, linux595.zip : http://www.lectron.com.tw/DOWNLOAD/LUCENT/ linux599.zip, linux600.zip : http://www.sfu.ca/~cth/ltmodem/archive/ 見付からない場合は、http://linmodems.org などから探してみてください。 ・現時点での問題点 ・同一マシン上で複数枚同時には動作しません。 ボード毎にデバイス名とメジャー番号が独立したドライバを1対1で用意すれば つかえるかもしれません。 ・主な関連サイト Lucent LT Win Modem http://808hi.com/56k/ltwin.htm linmodems.org http://www.linmodems.org/ linmodems.org - mailinglist archives http://www.linmodems.org/cgi-bin/ezmlm-cgi/1 Winmodems are not modems http://www.idir.net/~gromitkc/winmodem.html Lucent/Agere systems V.90/K56flex http://www.agere.com/K56flex/ ・来歴 ・rev 0.1 2001.03.13 ・Linuxドライバのコア部分の ltmdmobj.o を FreeBSD で使うために probe/attach/detach、仮想 UART 対応のシリアルドライバ部、等を作成し これらを組合せて、一通り動作するものを作成しました。 ・rev 0.2 2001.03.18 ・FIFO が無効になっていたのを修正しました。 ・ltmdmobj.o のモデム検出用関数を、そのまま使うのは問題があることが 判ったので、 PCI の vendor_id、device_idの範囲、ioport_base_reg の値を テーブルにしておき、これに一致したものだけを、以前の検出用関数で判定 するように変更しました。 ・rev 0.3 2001.03.23 ・PCI の IO ポートベースレジスタの自動検出処理を追加しました。 ・IRQ を共有できるように変更しました。 ・バッファサイズにマージンがなく、オーバーフローを起こす場合があるため、 サイズを大きくしました。 ・ドライバモジュールのアンロードが正常に行えるようになりました。 ohki@gssm.otsuka.tsukuba.ac.jp (Atsuo Ohki) さんのパッチによるものです。 ・rev 0.4 2001.03.28 ・detach でのメモリ解放処理を修正しました。 ohki@gssm.otsuka.tsukuba.ac.jp (Atsuo Ohki) さんのパッチによるものです。 ・デバッグメッセージ用の不要なコードがコンパイルされない様にしました。 ・INSTALL.TXT に国コードの設定例を追加しました。 ・rev 0.5 2001.09.15 ・5.0-CURRENT 用のコードを統合しました。(あまり充分にはテストしていません) ・DSPのハードウエア割込みの優先度を INTR_TTY から INTR_NET へ変更しました。 ( 5.0-CURRENT で負荷を上げると切断される症状の対策です ) ソフトウエア割込みは SWI_TTY のままです。 ・モジュールをロードする順序によらず、常に他のデバイスと割込みを共有できる ように変更しました。 ・他のモジュールをコンパイルせずに ltmdm.ko だけ単体で作成できるように メイクの方法を変更しました。 ・make clean で ltmdmobj.o が削除されてしまう問題を修正しました。 ・rev 0.6 2001.10.15 ・バージョン 6.00 の ltmdmobj.o に対応しました。 ・rev 0.7 2002.03.11 ・バージョン 5.95 と 5.99 の ltmdmobj.o に対応しました。 ------------------------------------------------------------------------------