2005年8月31日(水)

NetBSD install 5

ふむん。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]]

あわせて読みたい