[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:13080] KXL-810AN CD-ROM Drive
佐野@浜松です。
IBM TP235 で hamm + α の環境 (kernel 2.0.36, pcmcia-cs 3.0.7) に
しています。
今日、職場に Let's Note S22 用として KXL-810AN が届いていたので、
ちょっとばかり借用して、 nin_cs, mps110_cs, qlogic_cs などのドライバー
で動作するかどうか試してみましたが、結論はすべて NG でした。
やったことは以下のとおり。
(前段階)
potato の binary-i386 から admin の pcmcia-source_3.0.7-2.deb と
base の kernel-source-2.0.36_2.0.36-2.deb をインストールし、
make menuconfig 後 make-kpkg --zImage --revision my.0.1 で
カスタムパッケージ作成、インストール。この時点で IBM の Portable CD-ROM
CD-20X が動作することを確認。ただしこのドライブ、 CD-DA は機能しない。
# そもそも、 PC に接続せずに単体でスイッチを使って Audio CD を再生
# させても非常に音質が悪い。オーディオ再生には使えないと思うべし。
(1)
ワークビットの Web Page から nin_cs.c, nin_cs.h, sc3-unix.html (説明) を
ダウンロード
(2)
安達さんのページを経由して mps110.tar.gz をダウンロード
(3)
最初、説明に従って /usr/src/modules/pcmcia-cs/modules/ 以下に
pcmcia-cs 3.0.7 では /usr/src/modules/pcmcia-cs/clients/ 以下に
aha152x_cs.c, fdomain_cs.c などが存在することを発見。
nin_cs.c, nin_cs.h および mps110.tar.gz 中の mps110_cs.c.290 を
/usr/src/modules/pcmcia-cs/clients/ 以下にそれぞれコピー
(mps110_cs.c.290 -> mps110_cs.c とファイル名変更)
(4)
/usr/src/modules/pcmcia-cs/clients/Makefile を編集。変更したのは
SCSI=$(LINUX)/drivers/scsi
ifdef CONFIG_SCSI
MODULES := ${MODULES} qlogic_cs.o aha152x_cs.o fdomain_cs.o nin_cs.o mps110_cs.o
SRCS := ${SRCS} qlogic_cs.c aha152x_cs.c fdomain_cs.c nin_cs.c mps110_cs.c
endif
この部分で、 MODULES, SRCS に nin_cs.{o,c} と mps110_cs.{o,c} を
追加しています。
(5)
make してみるとエラーが出るので、一部編集。
$ diff -u mps110_cs.c.290 /usr/src/modules/pcmcia-cs/clients/mps110_cs.c
--- mps110_cs.c.290 Sun Dec 8 23:41:05 1996
+++ /usr/src/modules/pcmcia-cs/clients/mps110_cs.c Mon Feb 22 13:53:34 1999
@@ -72,7 +72,7 @@
int mps110_command(Scsi_Cmnd *);
int mps110_queuecommand(Scsi_Cmnd *, void (* done)(Scsi_Cmnd *));
int mps110_abort(Scsi_Cmnd *);
-int mps110_reset(Scsi_Cmnd *);
+int mps110_reset(Scsi_Cmnd *, unsigned int );
#if (LINUX_VERSION_CODE > VERSION(1,2,13))
int mps110_biosparam(Disk * , kdev_t, int []);
#else
@@ -698,7 +698,7 @@
/*----------------------------------------------------------------*/
/* reset SCSI bus */
/*----------------------------------------------------------------*/
-int mps110_reset(Scsi_Cmnd * cmd)
+int mps110_reset(Scsi_Cmnd * cmd, unsigned int j)
{
mabort = 2;
mp_zap();
@@ -1035,7 +1035,7 @@
case CS_EVENT_CARD_RESET:
if (link->state & DEV_CONFIG) {
CardServices(RequestConfiguration, link->handle, &link->conf);
- mps110_reset(NULL);
+ mps110_reset(NULL, 0);
}
break;
}
--- nin_cs.c Mon Jan 25 17:32:01 1999
+++ /usr/src/modules/pcmcia-cs/clients/nin_cs.c Mon Feb 22 14:17:30 1999
@@ -165,7 +165,7 @@
int ninja3_command(Scsi_Cmnd *);
int ninja3_queuecommand(Scsi_Cmnd *, void (* done)(Scsi_Cmnd *));
int ninja3_abort(Scsi_Cmnd *);
-int ninja3_reset(Scsi_Cmnd *);
+int ninja3_reset(Scsi_Cmnd *, unsigned int);
#if (LINUX_VERSION_CODE > VERSION(1,2,13))
int ninja3_biosparam(Disk * , kdev_t, int []);
#else
@@ -1382,7 +1382,7 @@
int baseAddress = DevExt->BaseAddress;
unsigned char dataByte;
unsigned char CountL,CountM, CountH;
- unsigned long Count, Counter;
+ unsigned int Count, Counter;
dataByte = 0;
((PPOINTER_CLEAR)&dataByte)->PointerClear = 1;
@@ -1423,9 +1423,11 @@
char* Buffer,
u_long Length )
{
-/* u_int port = BaseAddress+WFIFODATA;*/
+/* u_int port = BaseAddress+WFIFODATA; */
if ( Length & 0x3 ) {
- Ns3DebugPrint(0x01,(KERN_DEBUG "SCSI_READ_FIFOW [%x] (%x)byte", Buffer , Length));
+ Ns3DebugPrint(0x01,
+ (KERN_DEBUG "SCSI_READ_FIFOW [%x] %d byte",
+ (int)Buffer, (int)Length));
SCSI_READ_FIFOW(BaseAddress, (char *)Buffer , Length);
} else {
SCSI_READ_FIFOD(BaseAddress, Buffer , Length);
@@ -3740,7 +3742,7 @@
/*----------------------------------------------------------------*/
/* reset SCSI bus */
/*----------------------------------------------------------------*/
-int ninja3_reset(Scsi_Cmnd * cmd)
+int ninja3_reset(Scsi_Cmnd * cmd, unsigned int j)
{
mabort = 2;
/*
これで一応 make 時のエラーは出なくなりました。
(6)
/etc/pcmcia/config に以下を追加
--- config 1999/02/22 01:07:30 1.1
+++ config 1999/02/22 05:48:56
@@ -84,6 +84,12 @@
device "teles_cs"
class "teles" module "teles_cs"
+device "mps110_cs"
+ class "scsi" module "mps110_cs"
+
+device "nin_cs"
+ class "scsi" module "nin_cs"
+
#
# Ethernet adapter definitions
#
@@ -1074,6 +1080,17 @@
card "TDK NetworkFlyer LAK-CB100X"
manfid 0x0105, 0x0500
bind "tulip_cb"
+
+card "Workbit NinjaSCSI-3"
+ version "WBT", "NinjaSCSI-3", "*"
+ bind "nin_cs"
+
+#card "Panasonic KXL-810AN"
+# manfid 0x0032, 0x0604
+# version "KME ", "KXLC004", "01"
+# bind "nin_cs"
+# bind "mps110_cs"
+# bind "qlogic_cs"
# Include local configuration settings
source ./config.opts
(7)
cd /usr/src/linux; make-kpkg --zImage --revision=pika.0.1 modules_image
として pcmcia-modules パッケージを作成。
(8)
/etc/pcmcia/config にコメントとして追加した KXL-810AN 用の
エントリーを、まず
card "Panasonic KXL-810AN"
version "KME ", "KXLC004", "01"
bind "nin_cs"
として、 (7) で作成したパッケージをインストール後、念のために再度
/etc/init.d/pcmcia stop; /etc/init.d/pcmcia start; を実行。
(9)
いよいよ、 KXL-810AN の PC カードを挿入。だが認識しない。
/var/log/syslog には
Feb 22 11:24:40 pika cardmgr[15846]: initializing socket 1
Feb 22 11:24:40 pika cardmgr[15846]: unsupported card in socket 1
Feb 22 11:24:40 pika cardmgr[15846]: product info: "KME ", "KXLC004", "01"
Feb 22 11:24:40 pika cardmgr[15846]: manfid: 0x0032, 0x0604 function: 8 (SCSI
という情報が記録されている。
(10)
/etc/pcmcia/config のエントリーを
card "Panasonic KXL-810AN"
manfid 0x0032, 0x0604
bind "nin_cs"
として、再度 /etc/init.d/pcmcia stop; /etc/init.d/pcmcia start; を実行。
この状態で PC カードを挿入すると (nin_cs.h の DEBUG 関連をすべて有効に
してあるためメッセージが多くなっています) syslog には
Feb 22 12:16:28 pika cardmgr[950]: socket 0: Panasonic KXL-810AN
Feb 22 12:16:29 pika cardmgr[950]: executing: 'insmod /lib/modules/2.0.36/pcmcia/nin_cs.o'
Feb 22 12:16:29 pika kernel: ninja3_config[240]
Feb 22 12:16:29 pika kernel: <7>mbase[240] minitid[7] irq[9]
Feb 22 12:16:29 pika kernel: ninja3_detect ninja3_detect mbase[240] minitid[7] irq[9]
Feb 22 12:16:29 pika kernel: ninja3_detect end
Feb 22 12:16:29 pika kernel: ninja3_detect end
Feb 22 12:16:29 pika kernel: scsi0 : NinjaSCSI-3 Driver version 0.10, iobase at 240
Feb 22 12:16:29 pika kernel: scsi : 1 host.
Feb 22 12:16:29 pika kernel: Test Unit Ready <7>00 <7>00 <7>00 <7>00 <7>00 <7>
Feb 22 12:16:29 pika kernel: ); residual=0; buffers=0; phase |<7>; phase[0] (<7>; next=0x00000000
Feb 22 12:16:35 pika kernel: COMMAND <7>[0]<7>[0]<7>[0]<7>[0]<7>[0]<7>[0]-- Start Arbitration -- scsi : aborting command due to timeout : pid 0, scsi0, channel 0, id 0, lun 0 Test Unit Ready 00 00 00 00 00
Feb 22 12:16:35 pika kernel: int3: 0000
Feb 22 12:16:35 pika kernel: CPU: 0
Feb 22 12:16:35 pika kernel: EIP: 0010:[<00000006>]
Feb 22 12:16:35 pika kernel: EFLAGS: 00000202
Feb 22 12:16:35 pika kernel: eax: 00000000 ebx: 00c01018 ecx: 001d8e6b edx: 00ff0003
Feb 22 12:16:35 pika kernel: esi: 00000293 edi: 00000000 ebp: 00ec6318 esp: 001d6fac
Feb 22 12:16:35 pika kernel: ds: 0018 es: 0018 fs: 002b gs: 0018 ss: 0018
Feb 22 12:16:35 pika kernel: Process swapper (pid: 0, process nr: 0, stackpage=001d50c0)
Feb 22 12:16:35 pika kernel: Stack: 001ae68f 00c01018 00c01018 00ec6318 00000202: 001d7000 001ad1d8 00c01018
Feb 22 12:16:35 pika kernel: 00000003 00c01018 001aeb46 00c01018 00040000 00212f40 00000001 00112c7c
Feb 22 12:16:35 pika kernel: 00000001 ffffffff 00000001 00000001 05829000
Feb 22 12:16:35 pika kernel: Call Trace: [scsi_abort+279/508] [scsi_times_out+64/296] [scsi_main_timeout+134/168] [timer_bh+248/820]
Feb 22 12:16:35 pika kernel: Code: 00 f0 c3 e2 00 f0 49 cc 00 f0 49 cc 00 f0 54 ff 00 f0 49 cc
Feb 22 12:16:35 pika kernel: Aiee, killing interrupt handler
Feb 22 12:16:35 pika kerneld: error: exit: Identifier removed
Feb 22 12:16:35 pika kernel: kfree of non-kmalloced memory: 001d7108, next= 00212db0, order=244556
Feb 22 12:16:35 pika kernel: kfree of non-kmalloced memory: 001d70f8, next= 00212db0, order=244556
Feb 22 12:16:35 pika kernel: kfree of non-kmalloced memory: 001d760c, next= 00212db0, order=244556
Feb 22 12:16:35 pika kernel: idle task may not sleep
Feb 22 12:16:35 pika last message repeated 4 times
Feb 22 12:16:36 pika kernel: SCSI host 0 abort (pid 0) timed out - resetting
Feb 22 12:16:36 pika kernel: SCSI bus is being reset for host 0 channel 0.
Feb 22 12:16:36 pika kernel: ninja3_reset
Feb 22 12:16:46 pika kernel: SCSI host 0 abort (pid 0) timed out - resetting
Feb 22 12:16:46 pika kernel: SCSI bus is being reset for host 0 channel 0.
Feb 22 12:16:46 pika kernel: ninja3_reset
Feb 22 12:16:56 pika kernel: SCSI host 0 abort (pid 0) timed out - resetting
Feb 22 12:16:56 pika kernel: SCSI bus is being reset for host 0 channel 0.
(中略)
Feb 22 12:17:56 pika kernel: ninja3_reset
Feb 22 12:18:03 pika kernel: scsi_done[3]
Feb 22 12:18:03 pika kernel: Request Sense <7>00 <7>00 <7>00 <7>10 <7>00 <7>
Feb 22 12:18:03 pika kernel: ); residual=0; buffers=0; phase |<7>; phase[0] (<7>; next=0x00000000
Feb 22 12:18:03 pika kernel: COMMAND <7>[3]<7>[0]<7>[0]<7>[0]<7>[10]<7>[0]-- Start Arbitration -- <7>scsi_done[3]
Feb 22 12:18:03 pika kernel: scsi_done[3]
Feb 22 12:18:03 pika kernel: Request Sense <7>00 <7>00 <7>00 <7>10 <7>00 <7>
Feb 22 12:18:03 pika kernel: ); residual=0; buffers=0; phase |<7>; phase[0] (<7>; next=0x00000000
Feb 22 12:18:03 pika kernel: COMMAND <7>[3]<7>[0]<7>[0]<7>[0]<7>[10]<7>[0]-- Start Arbitration -- <7>scsi_done[3]
Feb 22 12:18:03 pika kernel: scsi_done[3]
Feb 22 12:18:03 pika kernel: Request Sense <7>00 <7>00 <7>00 <7>10 <7>00 <7>
Feb 22 12:18:03 pika kernel: ); residual=0; buffers=0; phase |<7>; phase[0] (<7>; next=0x00000000
Feb 22 12:18:03 pika kernel: COMMAND <7>[3]<7>[0]<7>[0]<7>[0]<7>[10]<7>[0]-- Start Arbitration -- <7>scsi_done[3]
Feb 22 12:18:03 pika kernel: scsi_done[3]
Feb 22 12:18:03 pika kernel: Request Sense <7>00 <7>00 <7>00 <7>10 <7>00 <7>
Feb 22 12:18:03 pika kernel: ); residual=0; buffers=0; phase |<7>; phase[0] (<7>; next=0x00000000
Feb 22 12:18:03 pika kernel: COMMAND <7>[3]<7>[0]<7>[0]<7>[0]<7>[10]<7>[0]-- Start Arbitration -- <7>scsi_done[3]
Feb 22 12:18:03 pika kernel: scsi_done[3]
Feb 22 12:18:03 pika kernel: ninja3_event end
Feb 22 12:18:03 pika kernel: Device busy???
という感じでした。
(11)
/etc/pcmcia/config のエントリーを
card "Panasonic KXL-810AN"
manfid 0x0032, 0x0604
bind "mps110_cs"
として、再度 /etc/init.d/pcmcia stop; /etc/init.d/pcmcia start; を実行。
この状態で PC カードを挿入すると syslog には
Feb 22 14:27:13 pika cardmgr[193]: socket 1: Panasonic KXL-810AN
Feb 22 14:27:13 pika kernel: cs: memory probe 0x0d0000-0x0dffff: clean.
Feb 22 14:27:14 pika cardmgr[193]: executing: 'insmod /lib/modules/2.0.36/pcmcia/mps110_cs.o'
Feb 22 14:27:14 pika kernel: scsi0 : mPS110 Driver version 1.00, iobase at 240
Feb 22 14:27:14 pika kernel: scsi : 1 host.
Feb 22 14:27:20 pika kernel: scsi : aborting command due to timeout : pid 0, scsi0, channel 0, id 0, lun 0 Test Unit Ready 00 00 00 00 00
Feb 22 14:27:26 pika kernel: scsi : aborting command due to timeout : pid 1, scsi0, channel 0, id 1, lun 0 Test Unit Ready 00 00 00 00 00
Feb 22 14:27:32 pika kernel: scsi : aborting command due to timeout : pid 2, scsi0, channel 0, id 2, lun 0 Test Unit Ready 00 00 00 00 00
Feb 22 14:27:38 pika kernel: scsi : aborting command due to timeout : pid 3, scsi0, channel 0, id 3, lun 0 Test Unit Ready 00 00 00 00 00
Feb 22 14:27:44 pika kernel: scsi : aborting command due to timeout : pid 4, scsi0, channel 0, id 4, lun 0 Test Unit Ready 00 00 00 00 00
Feb 22 14:27:50 pika kernel: scsi : aborting command due to timeout : pid 5, scsi0, channel 0, id 5, lun 0 Test Unit Ready 00 00 00 00 00
Feb 22 14:27:56 pika kernel: scsi : aborting command due to timeout : pid 6, scsi0, channel 0, id 6, lun 0 Test Unit Ready 00 00 00 00 00
Feb 22 14:27:56 pika cardmgr[193]: executing: './scsi start n/a'
Feb 22 14:27:56 pika cardmgr[193]: + open() failed: No such file or directory
Feb 22 14:27:56 pika cardmgr[193]: executing: './scsi check n/a'
Feb 22 14:27:56 pika cardmgr[193]: + open() failed: No such file or directory
Feb 22 14:27:56 pika cardmgr[193]: shutting down socket 1
Feb 22 14:27:56 pika cardmgr[193]: executing: './scsi stop n/a'
Feb 22 14:27:56 pika cardmgr[193]: + open() failed: No such file or directory
Feb 22 14:27:56 pika cardmgr[193]: + /dev/n/a: No such file or directory
Feb 22 14:27:56 pika cardmgr[193]: stop cmd exited with status 1
Feb 22 14:27:56 pika kernel: scsi : 0 hosts.
となりました。
(12)
最後に、ものは試しと /etc/pcmcia/config のエントリーを
card "Panasonic KXL-810AN"
manfid 0x0032, 0x0604
bind "qlogic_cs"
として、再度 /etc/init.d/pcmcia stop; /etc/init.d/pcmcia start; を実行。
この状態で PC カードを挿入すると syslog には
Feb 22 14:19:34 pika cardmgr[776]: socket 1: Panasonic KXL-810AN
Feb 22 14:19:34 pika cardmgr[776]: executing: 'insmod /lib/modules/2.0.36/pcmcia/qlogic_cs.o'
Feb 22 14:19:34 pika kernel: Ql: Using preset base address of 240
Feb 22 14:19:34 pika kernel: Ql: Using preset IRQ 9
Feb 22 14:19:34 pika kernel: scsi0 : Qlogicfas Driver version 0.45, chip 00 at 240, IRQ 9, TPdma:1
Feb 22 14:19:34 pika kernel: scsi : 1 host.
Feb 22 14:19:40 pika kernel: scsi : aborting command due to timeout : pid 0, scsi0, channel 0, id 0, lun 0 Test Unit Ready 00 00 00 00 00
となり、そのまま固まってしまいます。 Ctrl+Alt+Del も効かないため
電源スイッチで強制終了させました。
結局、現在一般に入手できるコードで KXL-810AN を動作させられる
ドライバーは無いみたいですね。私もここまでやって疲れてしまったので
とりあえず「使えないもの」と諦めてしまいました。
以上、何かの参考にでもなれば。
--
#わたしのおうちは浜松市、「夜のお菓子」で有名さ。
<xlj06203@xxxxxxxxxxx> : Taketoshi Sano (佐野 武俊)