[ Main Page ]

MACNICA mPS110 (LPM-SCSI2) driver for Linux 2.6

最近たまたま手に入れたLogitecのLPM-SCSI2は古過ぎてLinux 2.6では使えないようです。 PCMCIAのデータベースには、qlogic_csと登録されていますが、 loadするとkernel panicを起こしてまともに使えません。 Linux 2.0では使えるようですが、 今どきこんな古いversionを使うのはちょっと問題があります。 せっかくなので、この古いversionをいろいろと書き換えてとりあえず動くようにしてみました。 ただ、まだ色々と直っていないところがあります。

schedule_work()を使用してqueuecommand()を実装しているためアクセス時にevents/0がかなりCPUを食う(=polling driver) (もとのdriverがIRQを使わない変則的な構造になっていたため。 使えれば嬉しいので、これについては書き換えるつもりはあまりありません。)
HD,CDROMではなぜかLUNのhandlingができない(CDROM,HDをつなぐと、すべてのLUNに応答してしまうのでScsi_Host->max_lun = 1;してあります。)
OBSOLETEな関数が残っている
Linux 2.6での新しいerror handlingに完全に対応できていない(ので時々kernel panic)
特定条件下でkernel panicする(もちろん、mountしたままejectしちゃだめだけど。)

mps110_cs.c for Linux 2.6
まず、展開してmakeします。(kernelのconfigで、SCSIやPCMCIAなど、必要と思われる オプションはつけておくこと)mps110_cs.koができたら、 /lib/modules/(kernel's version)/kernel/drivers/scsi/pcmcia/ にコピーし、depmod -aします。そうしたら、cardmgrの設定ファイル (Gentoo Linuxの場合は/etc/pcmcia/config)のMACNICA mPS110 SCSIの設定を書き換えます。

card "MACNICA mPS110 SCSI"
version "MACNICA", "MIRACLE SCSI-II mPS110"
bind "mps110_cs"

後は、cardmgrを再起動し、周辺機器をカードに接続して電源を入れた上で slotに差し込めばうまくいくと認識します。(何かする前に、sync はしておきましょう。また、SysRqを有効にしておけばもしもの時に便利です。)

追記事項

カーネルのversionが上がったせいか、sym53c500_cs driver が使えるようになったようです。PCMCIAの設定は、qlogic_csを sym53c500_csに直せばよい筈です。

Whenever the literary German dives into a sentence, that is the last
you are going to see of him until he emerges on the other side of his
Atlantic with his verb in his mouth.
		-- Mark Twain "A Connecticut Yankee in King Arthur's Court"

XSLT is the number one cause of programmers' suicides since Visual Basic 1.0.

    -- Shlomi Fish
    -- XSLT Facts by Shlomi Fish and Friends ( http://www.shlomifish.org/humour/bits/facts/XSLT/ )


Powered by UNIX fortune(6)
[ Main Page ]