ふむん。NetBSD では、 fdisk-partition は無視して、 disklabel を元に sector 単位の offset と size で、この辺俺のもの〜って喚いて勝手に読み書きすればいいのね…。 wd1 の後ろの方は適当に書けばいいと
fdisk の方は boot の時に参照するだけってことかな
disklabel のジオメトリは BIOS ではなく NetBSD のジオメトリにして、 d パーティションでディスク全体を表現。でも c パーティションの先頭は mbr 境界にないと文句言われる…。そいつは BIOS の track size になるんだよな…。いいのかな。
で SCSI のディスクなんだが newfs はなんとかできるんだが、ちょっと書いたりなんだりするとすぐ刺さる。kernel debugger に落ちる。さらには次の boot の時 SCSI BIOS から disk が見えなくなってたりする。
ドライバじゃないかっつー気もするんだが、 Adaptec 2940 なんて古典的(つーか古典そのもの)な奴だし FreeBSD では普通に使えてたんだがなぅ…。
こんな感じでエラーが出てる。
ahc1: WARNING no command for scb 31 (cmdcmplt) QOUTPOS = 79 ahc1:SCB 0x6 - timed out >>>>>>>>>>>>>>>>>> Dump Card State Begins <<<<<<<<<<<<<<<<< ahc1: Dumping Card State while idle, at SEQADDR 0x7 Card was paused ACCUM = 0x64, SINDEX = 0x8, DINDEX = 0x8c, ARG_2 = 0x0 HCNT = 0x0 SCBPTR = 0x7 SCSISIGI[0x0] ERROR[0x0] SCSIBUSL[0x0] LASTPHASE[0x1] SCSISEQ[0x12] SBLKCTL[0x0] SCSIRATE[0x0] SEQCTL[0x10] SEQ_FLAGS[0xc0] SSTAT0[0x5] SSTAT1[0xa] SSTAT2[0x0] SSTAT3[0x0] SIMODE0[0x0] SIMODE1[0xa4] SXFRCTL0[0x80] DFCNTRL[0x0] DFSTATUS[0x29] STACK: 0x0 0x165 0x108 0x3 SCB count = 32 Kernel NEXTQSCB = 1 Card NEXTQSCB = 1 QINFIFO entries: Waiting Queue entries: Disconnected Queue entries: QOUTFIFO entries: Sequencer Free SCB List: 7 6 5 4 3 2 1 0 8 9 10 11 12 13 14 15 Sequencer SCB Info: 0 SCB_CONTROL[0xe8] SCB_SCSIID[0x67] SCB_LUN[0x0] SCB_TAG[0xff] 1 SCB_CONTROL[0xe8] SCB_SCSIID[0x67] SCB_LUN[0x0] SCB_TAG[0xff] 2 SCB_CONTROL[0xe8] SCB_SCSIID[0x67] SCB_LUN[0x0] SCB_TAG[0xff] 3 SCB_CONTROL[0xe8] SCB_SCSIID[0x67] SCB_LUN[0x0] SCB_TAG[0xff] 4 SCB_CONTROL[0xe8] SCB_SCSIID[0x67] SCB_LUN[0x0] SCB_TAG[0xff] 5 SCB_CONTROL[0xe8] SCB_SCSIID[0x67] SCB_LUN[0x0] SCB_TAG[0xff] 6 SCB_CONTROL[0xe8] SCB_SCSIID[0x67] SCB_LUN[0x0] SCB_TAG[0xff] 7 SCB_CONTROL[0xe8] SCB_SCSIID[0x67] SCB_LUN[0x0] SCB_TAG[0xff] 8 SCB_CONTROL[0xe8] SCB_SCSIID[0x67] SCB_LUN[0x0] SCB_TAG[0xff] 9 SCB_CONTROL[0x0] SCB_SCSIID[0xff] SCB_LUN[0xff] SCB_TAG[0xff] 10 SCB_CONTROL[0x0] SCB_SCSIID[0xff] SCB_LUN[0xff] SCB_TAG[0xff] 11 SCB_CONTROL[0x0] SCB_SCSIID[0xff] SCB_LUN[0xff] SCB_TAG[0xff] 12 SCB_CONTROL[0x0] SCB_SCSIID[0xff] SCB_LUN[0xff] SCB_TAG[0xff] 13 SCB_CONTROL[0x0] SCB_SCSIID[0xff] SCB_LUN[0xff] SCB_TAG[0xff] 14 SCB_CONTROL[0x0] SCB_SCSIID[0xff] SCB_LUN[0xff] SCB_TAG[0xff] 15 SCB_CONTROL[0x0] SCB_SCSIID[0xff] SCB_LUN[0xff] SCB_TAG[0xff] Pending list: 6 SCB_CONTROL[0x68] SCB_SCSIID[0x67] SCB_LUN[0x0] Kernel Free SCB list: 8 9 10 11 12 13 15 14 0 7 31 2 3 4 5 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 >>>>>>>>>>>>>>>>> sg[0] - Addr 0x1383c000 : Length 4096 sg[1] - Addr 0x1381d000 : Length 4096 ahc1:Queuing a BDR SCB ahc1:Bus Device Reset Message Sent sd1(ahc1:0:6:0): ahc1: no longer in timeout, status = 0 ahc1: Bus Device Reset on A:6. 1 SCBs aborted
[2005.9.1 追記] SMP kernel で起動すると boot 中に ahc を probe したあたりで、同じようなメッセージを出して刺さるんだよね。
儂のは AHA-2940U なんだが、こいつはもうなくて 2940AU になっているらしい。
[referer: [an error occurred while processing this directive]]