«前の日記(2002-09-08(Sun)) 最新 次の日記(2002-09-10(Tue))» 編集

これ日記なん?


2002-09-09(Mon) 今日は振り替え休日で会社はお休み。 [長年日記]

_ でも

天気がびみょー。お出かけするべきか否か。うーむ。

_ HDD on FireWire/USB for Windows98

昨日買ったキットを試してみる。 ケースにHDDをセットして、電源ON!。ケースの前の青いLEDがいいかも。ファンがないのでとりあえずは静か。でもHDD自体がうるさいならうるさくなっちゃうのかな?

_ HDDケース側を給電状態にしておきFireWireなケーブルを接続後VAIOを起動...ふむ、D,Eドライブとして認識された。もともとFireballは2G+2GのFATでフォーマットされてたのだが両方とも見えるようす。小さいファイルの読み書きもOK。だがどうやってホットプラグではずすんだ?固定ディスク扱いっぽく見えるが。デバイスマネージャで確認すると、リムーバブルにチェックが入ってなかったのでチェックして再起動。今度はリムーバブル扱いになった。一応ホットプラグもOKな様子。

_ ついでにUSB接続も試すがあっさり認識。次は本命のFreeBSDだ。

_ HDD on FireWire/USB for FreeBSD

OSは雑誌付属のもの。最新でもいいんだが事情によりこれ。
xelvis# uname -a
FreeBSD xelvis.kognet.jp 4.6.1-RELEASE-p7-MYCOM FreeBSD 4.6.1-RELEASE-p7-MYCOM #0: Fri Aug  2 19:04:20 GMT 2002     hiraoka@builder.
pc.mycom.co.jp:/usr/src/sys/compile/GENERIC  i386
まずはドライバから。http://people.freebsd.org/~simokawa/にて入手できるので、最新とおぼしきfirewire-20020717.tar.gzをとってくる。
# cd /usr/src
# tar -zxvf /home/kog/firewire-20020717.tar.gz
... (以下展開される)
# cd sys/dev/firewire
# make install
# ./MAKEDEV
で準備完了。わくわく。 まずはロードする。
xelvis# make load
#-sysctl kern.cam.da.no_6_byte=1
#-sysctl kern.cam.da.enable_128kb=1
kldload firewire
kldload sbp
kldload if_fwe
xelvis#
このときのdmesg抜粋
fwohci0:  mem 0xfedf7c00-0xfedf7dff,0xfedf7000-0xfedf77ff irq 9 at device 8.0 on pci0
fwohci0: PCI bus latency was changing to 250.
cache size 8.
fwohci0: OHCI version 1.0 (ROM=1)
fwohci0: No. of Isochronous channel is 4.
fwohci0: resetting OHCI...done (0)
fwohci0: BUS_OPT 0xf800a002 -> 0xf800a002
fwohci0: Link 1394a available S400, 3 ports, maxrec 2048 bytes.
fwohci0: Enable 1394a Enhancements
fwohci0: EUI64 08:00:46:03:00:32:76:87
fwochi_set_intr: 1
firewire0:  on fwohci0
firewire0: firewire bus attach
firewire0: BUS reset
firewire0: node_id = 0xc800ffc0, CYCLEMASTER mode
firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me)
fw_set_bus_manager: 63->0 (loop=0)
send phy_config root_node=-1 gap_count=1
start AT DMA status=0
firewire0: txd err= 3 miss Ack err
sbp_identify
sbp_probe
sbp0:  on firewire0
sbp_attach
if_fwe0:  on firewire0
if_fwe0: 0a:00:46:32:76:87
bus_explore done
認識してるじゃーん。じゃあケーブルをぽちっとな。
Device SBP-II
sbp_post_explore: EUI:00e0370000007ebe spec=1 key=1.
sbp0:0:0 LOGIN
sbp0:0:0 ordered:1 type:14 EUI:00e0370000007ebe node:0 speed:2 maxrec:5 new!
sbp0:0:0 'CENTURY corporation ' 'CAC-35FU2   ' '000032'
sbp0:0:0 login: len 16, ID 0, cmd 0000fffff0100000, recon_hold 0
sbp0:0:0 sbp_busy_timeout
sbp0:0:0 sbp_agent_reset
sbp0:0:0 sbp_do_attach
sbp0:0:0 sbp_cam_scan_lun
da0 at sbp0 bus 0 target 0 lun 0
da0:  Fixed Simplified Direct Access SCSI-4 device
da0: 50.000MB/s transfers
da0: 4110MB (8418816 512 byte sectors: 255H 63S/T 524C)
うお!認識された。mount, umountもばっちり。じゃあケーブルを抜いて
firewire0: BUS reset
firewire0: node_id = 0xc800ffc0, CYCLEMASTER mode
firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me)
fw_set_bus_manager: 63->0 (loop=0)
send phy_config root_node=-1 gap_count=1
start AT DMA status=12
firewire0: txd err= 3 miss Ack err
bus_explore done
sbp_post_explore: EUI:00e0370000007ebe not attached, state=3.
sbp0:0:0 lost target
ついでにモジュールもアンロード。
xelvis# make unload
kldunload if_fwe
kldunload sbp
sleep 2
kldunload firewire
このときのdmesg抜粋。
if_fwe0: detached
sbp_detach
firewire0: BUS reset
firewire0: node_id = 0xc800ffc0, CYCLEMASTER mode
firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me)
fw_set_bus_manager: 63->0 (loop=0)
send phy_config root_node=-1 gap_count=1
start AT DMA status=3
firewire0: txd err= 3 miss Ack err
sbp_detach_target 0
(da0:sbp0:0:0:0): lost device
(da0:sbp0:0:0:0): removing device entry
sbp0: detached
bus_explore done
firewire0: detached
fwohci0: detached
ちなみにパーティションエディタだとこんな感じ。
Disk name:      da0                                    FDISK Partition Editor
DISK Geometry:  524 cyls/255 heads/63 sectors = 8418060 sectors (4110MB)
  
Offset       Size(ST)        End     Name  PType       Desc  Subtype    Flags
  
         0         63         62        -      6     unused        0
        63    4192902    4192964    da0s1      2        fat        6
   4192965    4209030    8401994    da0s2      4   extended        5
   8401995      16821    8418815        -      6     unused        0
あれ、2つめは拡張で確保されてる。てことはこうやれば読める?
# cd /dev/
# ./MAKEDEV da0s5
# grep da0 /etc/fstab
/dev/da0s1              /fire           msdos   rw,noauto       0       0
/dev/da0s5              /fire2          msdos   rw,noauto       0       0
# mount /fire2
みえたみえた。

_ すばらしい。下川さんや小林さん、そして協力者の方々に感謝。

ついでにUSB接続も試す。ケーブルを付け替えてぽちっとな。
umass0: CENTURY Corporation CAC-35FU2, rev 2.00/0.00, addr 2
da1 at umass-sim0 bus 0 target 0 lun 0
da1:  Fixed Direct Access SCSI-2 device
da1: 650KB/s transfers
da1: 4110MB (8418816 512 byte sectors: 64H 32S/T 4110C)
よしよし。以下準備。
xelvis# cd /dev
xelvis# ./MAKEDEV da1s5
xelvis# grep usb /etc/fstab
/dev/da1s1              /usb            msdos   rw,noauto       0       0
/dev/da1s5              /usb2           msdos   rw,noauto       0       0
mount, umountともばっちり。ただ、usb1.1相当だからあんま早くないんだよねえ。FireWireがあるからいいか。
pciconf -l -v の出力の関連部分も載せておこう。
fwohci0@pci0:8:0:       class=0x0c0010 card=0x8063104d chip=0x8039104d rev=0x02 hdr=0x00
    vendor   = 'Sony Corporation'
    device   = 'CXD3222 OHCI i.LINK (IEEE 1394) PCI Host Ctrlr'
    class    = serial bus
    subclass = FireWire
関連リンクとして以下をあげておこう。