[ 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に直せばよい筈です。

Ross: Anyway. That's when our Mom said we were not to play football ever
again.

Monica: Y'know what, I think we should play a game. I mean come on, it's been
twelve years.

Ross: Can I see you for a second?

[They walk over to the sink and discuss it for a moment]

Monica: shouting Once!!

Ross: All right, we're gonna play.

Chandler: But wait a minute though, how are we gonna get there, though,
because my Mom won't let me cross the street.

    -- David Crane & Marta Kauffman
    -- "Friends" (T.V. Show) ( http://en.wikipedia.org/wiki/Friends )

I used to work in a pickle factory, until
I got canned.

	-- One of Nadav Har'El's Email Signatures.


Powered by UNIX fortune(6)
[ Main Page ]