作成開始 : 平成21年03月28日(土) 最終更新 : 平成21年11月13日(金)

USB 接続を試す


活用されずにあまっている DynaBook 220CS で USB 接続の実験をしてみたくなりました。
このPCは 平成20年09月21日 まで Windows NT Server4.0 と SCSI接続した周辺機器(HDD, MO, PD, ZIP)で順調に動いていましたが突然HDD故障で動かなくなってしまったものです。
一時、また Windows NT Server4.0 をインストールして復活させようかと思っていたのですが、最初のインストールの時と違いOSインストール後に NIC を接続しドライバインストールして使おうとしたのですが、IRQの競合を解決できなかったので断念していました。
そして、Delegate機のバックアップ用として FreeBSD 4.5-RELEASE を インストールして眠らせていました。

スペックは ここ をクリックしてください。CPU : 133MHz MEM : 48Mbyte HDD : 1.6GByte です。
本来は外付けのCDドライブあったはずですが、もらいものなのでありません。

DynaBook 220CS

このPCの FreeBSD 4.5-RELEASE 上でUSB接続のHDDかメモリをマウントしてそこをWebコンテンツ置場にしSamba共有してみたいと思ったのです。
しかし、FreeBSD 4.5-RELEASE ではマウント時に「/dev/da0: Device not configured」とか「Input/output error」とかのエラーでダメでした。
あるサイトで以下の見つけましたが・・・・

Input/output error」の場合は「sysctl kern.cam.da.no_6_byte=1」にするとよいようなことを書いていましたが、FreeBSD 4.5-RELEASE では sysctl テーブルにこの記述が無いので「そんなの無いよ」みたいに怒られてダメでした。該当の記述してカーネル再構築すればよかったのかなぁーーー面倒くさいなー

そのため、他のバージョンをインストールすることにしました。

OSのインストールでは、最新の FreeBSD 7.1-RELEASE を始めにしてみました。
I-O DATA の CBSCUにこれまたIO-DATAのSCSI用のCDドライブおよびBUFFAROのLPC3-CLXというNICを接続しました。どちらも PCMCIAカード です。
そして、imsgeファイルをダウンロードしCD作成、インストール用のFDを作成しインストールを開始しました。
しかし、どちらも「サポートしているハードウェア」のはずなのに認識してくれないので断念しました。

次に FreeBSD 6.4-RELEASE を試したのですがこれも同様に認識してくれません。

1. Boot FreeBSD [default]
2. Boot FreeBSD with ACPI disabled
3. Boot FreeBSD in Safe Mode
4. Boot FreeBSD in single user mode
5. Boot FreeBSD with verbose logging
6. Escape to loader prompt
7. Reboot

FreeBSD 4.x 系 のインストール・ブートでIRQなんか調整できる「Full-Screen-Mode」みたいなのに移行できないのです。
(知っている方がいたら教えてーーーー)

なので、FreeBSD 4.x 系 の最終バージョンである FreeBSD 4.11-RELEASE をダウンロードしCD作成とインストールFD(kern.flp, mfsroot.flp)を作成しました。
isoイメージは 全てのバージョンがそろっている ここ からダウンロードしました。

結局、I-O DATA の CBSCU+ CDドライブ & BUFFAROのLPC3-CLX 同時接続でのインストールはうまくいかなかったので、BUFFAROのLPC3-CLXを差込、FreeBSD 4.11-RELEASEの CD を丸ごとLAN内にあるFTPサーバーのHDDにコピーして FTP インストールしました。
FTPサーバー機のOSはWindows Server 2003、ソフトは WarFTPD です。
BUFFAROのLPC3-CLX の認識はブート時の「Full-Screen-Mode」でsio1をdisableしIRQ3を使用可能な状態にしたらできました。
インストール途中で DynaBook220CS がハングアップしたように見えましたが「Ctrl+Alt+Del」キー押したらガイダンスが返ってきたのでメッセージに従ったらインストール継続できました。♪

LPC3-CLX FTP installです。

[試してみた接続機器]

・USB HDDケース
 CENTURY Hi-Speed (USB2.0対応)

・HDD
 IBM 810Mbyte (IDE)
 廃棄用のPC-9821BXに実装されていたもの。
・(上) MCO MiniSDカード・アダプタ

 MiniSDカードはBUFFAROの512MByte

・(下) LEXAR JumpDrive 128Mbyte

[前準備]

1.カーネルの確認
GENERICカーネルをそのまま使っているので問題ないと思いますが、一応確認しました。
/usr/src/sys/i386/conf/GENERIC をエディタで開いて以下を確認します。
(※インストール時にカーネルソースのインストールを選択しなかった場合はできないです。)
options   MSDOSFS   #MSDOS Filesystem
# USB support
device    uhci      # UHCI PCI->USB interface
device    ohci      # OHCI PCI->USB interface
device    usb       # USB Bus (required)
device    ugen      # Generic
device    uhid      # "Human Interface Devices"
device    ukbd      # Keyboard
device    ulpt      # Printer
device    umass    # Disks/Mass storage - Requires scbus and da
device    ums      # Mouse
device    uscanner   # Scanners
device    urio      # Diamond Rio MP3 Player
2.OS起動時の設定
/etc/rc.conf に以下を追加してリブートします。

usbd_enable="YES"

OS再起動後、dmesgで起動ログを見ると、以下のような記述が見つかると思います。これがあればUSBデバイスを認識する準備が出来ました。
usb0: OHCI version 1.0
usb0: <NEC uPD 9210 USB controller> on ohci0
usb0: USB revision 1.0
uhub0: NEC OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered

[各機器の接続]

1.USB HDD
・USB HDDケース
 CENTURY Hi-Speed (USB2.0対応)

・HDD
 IBM 810Mbyte (IDE)
 廃棄用のPC-9821BXに実装されていたもの。
(1)挿した時のdmesg
umass0: Acer Labs USB 2.0 Storage Device, rev 2.00/1.00, addr 2
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <USB 2.0 Storage Device 0100> Fixed Direct Access SCSI-0 device
da0: 650KB/s transfers
da0: 775MB (1587600 512 byte sectors: 64H 32S/T 775C)
(2)usbdevs -v で確認
Controller /dev/usb0:
addr 1: full speed, self powered, config 1, OHCI root hub(0x0000), NEC(0x0000), rev 1.00
port 1 addr 2: full speed, self powered, config 1, USB 2.0 Storage Device(0x5642), Acer Labs(0x0402), rev 1.00
port 2 powered
(3)マウントポイント作成しマウント(FATでフォーマットしてあるので msdos形式 でマウントします。
DynaBook# mkdir /mnt/usbmem
DynaBook# ll /mnt
total 2
drwxr-xr-x 2 root wheel 512 3 27 22:03 usbmem
DynaBook# mount_msdos /dev/da0s1 /mnt/usbmem
DynaBook# ll /mnt/usbmem
total 160
-rwxr-xr-x 1 root wheel 63387 12 8 1995 command.com
-r-xr-xr-x 1 root wheel 40966 7 7 1995 ibmbio.com
-r-xr-xr-x 1 root wheel 38634 7 7 1995 ibmdos.com

DynaBook# df
Filesystem  1K-blocks  Used   Avail  Capacity Mounted on
/dev/ad0s1a  257998  37060 200300   16%     /
/dev/ad0s1e  64462     10  59296    0%     /tmp
/dev/ad0s1g  983086 602596 301844   67%    /usr
/dev/ad0s1f  128990    272 118400    0%     /var
procfs 4 4 0 100% /proc
/dev/da0s1   792064    192 791872   0%    /mnt/usbmem
   ↑
おぉ、マウントされましたね。
(4)vi で test.txt を作成してみました。
DynaBook# ll /mnt/usbmem
total 176
-rwxr-xr-x 1 root wheel 63387 12 8  1995 command.com
-r-xr-xr-x 1 root wheel 40966 7  7  1995 ibmbio.com
-r-xr-xr-x 1 root wheel 38634 7  7  1995 ibmdos.com
-rwxr-xr-x 1 root wheel   15  3 27  22:12 test.txt
  ↑
書込みできました。
(5)umountしました。
DynaBook# umount /mnt/usbmem
DynaBook# df
Filesystem  1K-blocks  Used    Avail  Capacity Mounted on
/dev/ad0s1a  257998  37060  200300   16%    /
/dev/ad0s1e   64462    10   59296   0%    /tmp
/dev/ad0s1g  983086 602598  301842   67%    /usr
/dev/ad0s1f  128990    272  118400   0%    /var
procfs 4 4 0 100% /proc
  ↑
OK、使えますね。
2.MCO MiniSDカード・アダプタ
MiniSDカードはBUFFAROの512MByte
(1)挿した時のdmesg
umass0: Generic Mass Storage Device, rev 2.00/1.02, addr 2
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <Multi Flash Reader 1.00> Removable Direct Access SCSI-0 device
da0: 650KB/s transfers
da0: 486MB (996352 512 byte sectors: 64H 32S/T 486C)
 ↑
でも、最初に挿した時は「umass0: Generic Mass Storage Device, rev 2.00/1.02, addr 2」だけでした。
usbdevs -v で応答なかったのでリブートしてから挿してみたら上のように認識しました。
(2)usbdevs -v で確認
Controller /dev/usb0:
addr 1: full speed, self powered, config 1, OHCI root hub(0x0000), NEC(0x0000), rev 1.00
port 1 addr 2: full speed, power 250 mA, config 1, Mass Storage Device(0x6331), Generic(0x058f), rev 1.02
port 2 powered
(3)マウントしてみます。
DynaBook# mount_msdos /dev/da0s1 /mnt/usbmem
DynaBook# ll /mnt/usbmem
total 32
drwxr-xr-x 1 root wheel 16384 3 24 12:20 dcim
drwxr-xr-x 1 root wheel 16384 3 24 12:20 private
 ↑
いいですね。このMiniSDカードは携帯電話に使っていました。
これ以降は USB HDD と同じなので省略します。無事に使えました。
3.LEXAR JumpDrive 128Mbyte
(1)挿した時のdmesg
umass0: LEXAR MEDIA JUMPDRIVE ELITE, rev 2.00/30.00, addr 2
  ↑
あれ? デバイスが確保されないぞ!
FreeBSD 4.5-RELEASE では・・・・・

umass0: LEXAR MEDIA JUMPDRIVE ELITE, rev 2.00/30.00, addr 2
(da0:umass-sim0:0:0:0): got CAM status 0x4
(da0:umass-sim0:0:0:0): fatal error, failed to attach to device
(da0:umass-sim0:0:0:0): lost device
(da0:umass-sim0:0:0:0): removing device entry

・・・・だったけど!
(2)usbdevs -v で確認
Controller /dev/usb0:
addr 1: full speed, self powered, config 1, OHCI root hub(0x0000), NEC(0x0000), rev 1.00
port 1 addr 2: full speed, power 100 mA, config 1, JUMPDRIVE ELITE(0xa410), LEXAR MEDIA(0x05dc), rev 30.00
port 2 powered
(3)マウントしてみます。da0にデバイス確保できと仮定して!
mount_msdos /dev/da0s1 /mnt/usbmem
mount_msdos: /dev/da0s1: Device not configured
  ↑
あぁ、やっぱりこのメモリはダメですね。

[ufs としてマウントする]

USB HDD を ufs (Unix File System)として全領域をスライスし /mnt/usbd としてマウントします。
まずはマウントポイントを作成します。
samba共有とかApacheのWebコンテンツとか起きたいので パーミッションを 777 にしてみます。
DynaBook# mkdir -p /mnt/usbd
DynaBook# ll /mnt
total 4
drwxr-xr-x 2 root wheel 512 3 29 20:36 usbd
drwxr-xr-x 2 root wheel 512 3 27 22:03 usbmem
DynaBook# chmod 777 /mnt/usbd
DynaBook# ll /mnt
total 4
drwxrwxrwx 2 root wheel 512 3 29 20:36 usbd
drwxr-xr-x 2 root wheel 512 3 27 22:03 usbmem
/stand/sysinstallでConfigure -> Fdisk を選んで、da0を Use Entire Disk で全領域を一つのスライスとして使用するようにしました。

  ↑
ちゃんと da0 が認識されています。

  ↑
こんな風にしました。
先にfatで使われていたので、「D」で一旦削除します。
「A」で全ての領域を割り当てます。
この後の「Install Boot Manager」は「None」にしました。

  ↑
ラベルはこうしました。
「C」で全ての領域をFile Systemとして/mnt/usbd にマウントするようにしました。
「W」を押すと、User Confirmation Requested が表示されるので、Yes を選択しました。newfs が始まりました。
「 Q」 キーを押下して終了しました。
mount で確認すると既にマウントされていました。
この状態でマウントする場合「mount -t ufs /dev/da0s1e /mnt/usbd」アンマウントする場合「umount /mnt/usbd」とします。
/etc/fstab に次のように記述追加すると「mount /mnt/usbd」でマウントできます。
/dev/da0s1e /mnt/usbd ufs rw 0 0
さて、この状態でOS起動時に自動マウントするか確認してみました。
リブートではなく一旦 shutdown して起動しました。

  ↑
おぉーーぅ、ちゃんとマウントされています。♪

平成21年04月05日(日) 追記

Samba、Apache、PHP をインストールしてみました。Samba共有とWebコンテンツは USB HDD 上のものです。

平成21年11月13日(金) 追記

USB HDD をやめて USBのSDアダプタとMiniSDカードにしてみました。
手順は・・・・
・USB HDD にあるファイル・フォルダを他のPCにコピー
・Apacheをstop、/usr/local/etc/rc.d の apache2.sh を apache2.sh.org とかにしてPC起動時に自動起動しないように設定。
・USB HDD を umount
・/etc/fstab にある USB HDD の記述をリマーク
・PC をシャットダウン
・USB HDD を抜き (MiniSDカードを挿した)USBのSDアダプタを挿入
・PCを起動
・/stand/sysinstall から本記事の手順を実行
 ※途中手順ミスってPCが1回ハングアップしたのにはビックリ
 ※DISK Label Editor で newfs したら2回くらい Invzrid Error 発生、3回目でOK
こんなヤツです。

戻る

サイトトップへ