top page > PC unix (3) > here

Talk Master II と PC unix との接続 (4)


概要

目的は次のようなものです.

  1. Talk Master II (トークマスター II) と PC unix との USB 接続を例示する.
  2. その接続の成功例,失敗例およびそれらに関連する資料を提示する.

対象は次のものです.

  1. PC は AT 互換機 のみです.(うちの PC-98 には USB port はありません.)
  2. OS は FreeBSD (8.4, 10.3) です.
  3. drive は Talk Master II の内蔵メモリーと SD card です.
  4. SD card は,アイ・オー・データ機器の SD-S1G (1GB, Class 6) です.
  5. SD card reader は,ELECOM の MR-A39N (メモリリーダライタ) です.

結果は次のようになりました.

  1. SD Card を挿さない状態では,driver のソースは修正する必要なく接続できました.
  2. SD Card を挿した状態では,接続できませんでした.
    usbconfig を使って quirks を種々設定してみましたがダメでした.
    (ソースの修正は試みておりません.)
  3. SD Card は,Talk Master II でなく SD card reader 経由ならば読み取ることができました.
    (書き込みは未確認です.失敗すると困ったことになるので... .)

注意事項

  1. 以下はあくまで当方の環境にて動作した記録であり,同様の環境にて動作することを保障するものではありません.
  2. PC unix との接続はメーカーの保障の範囲外です. トラブルに関しては自己責任でお願い致します.
  3. この HP の内容に関し,メーカーに問い合わせしないようお願い致します.

目次

1. 背景
2. FreeBSD 8.4
3. FreeBSD 10.3
4. SD card reader

1. 背景

FreeBSD 8.4, 10.3 においても,Talk Master (3) に記したように,SD card を挿した状態においてはうまく繋がりません.

ただ,driver のソースを変更する必要がなくなる等の進展があったので,その状況を提示いたします.

(注意) SD card を挿した状態での動作試験を行なう過程で,内蔵メモリー内のファイルがすべて消えたことがありました. ただし,毎回消えるわけではありません.

いずれにしても,この環境における動作を試す前に正常に接続することができる環境でバックアップを取って下さい.

なお,ここからは PC として自作 AT 互換機だけでなく NP25S, ST108E が加わります.

2. FreeBSD 8.4

NP25S にて FreeBSD 8.4 に Talk Master II (SD card なし) を接続すると,次のような log が出ます.

uhci2: <Intel 82801G (ICH7) USB controller USB-C> port 0xd480-0xd49f irq 18 at device 29.2 on pci0
(中略)
umass0: <YOUNTEL CO.LTD. YMDC-407X UMS DEVICE, class 0/0, rev 1.10/1.00, addr 2> on usbus2
umass0:  SCSI over Bulk-Only; quirks = 0x4001
umass0:0:0:-1: Attached to scbus0
da0 at umass-sim0 bus 0 scbus0 target 0 lun 0
da0: < TalkMasterII > Removable Direct Access SCSI-0 device
da0: 1.000MB/s transfers
da0: 997MB (2042880 512 byte sectors: 64H 32S/T 997C)
da1 at umass-sim0 bus 0 scbus0 target 0 lun 1
da1: < TalkMasterII > Removable Direct Access SCSI-0 device
da1: 1.000MB/s transfers
da1: Attempt to query device size failed: NOT READY, Medium not present

quirks の中の 0x4000UQ_MSC_NO_SYNC_CACHE であり,また "SCSI over Bulk-Only" であることから,これ以前にソースを修正して設定したことは,既に反映されています.

# usbconfig
(中略)
ugen2.2: <YMDC-407X UMS DEVICE YOUNTEL CO.LTD.> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
# camcontrol devlist
< TalkMasterII >                   at scbus0 target 0 lun 0 (da0,pass0)
< TalkMasterII >                   at scbus0 target 0 lun 1 (da1,pass1)

この状態で fdisk は成功します.

# fdisk /dev/da0
******* Working on device /dev/da0 *******
parameters extracted from in-core disklabel are:
cylinders=997 heads=64 sectors/track=32 (2048 blks/cyl)

parameters to be used for BIOS calculations are:
cylinders=997 heads=64 sectors/track=32 (2048 blks/cyl)

Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 6 (0x06),(Primary DOS, 16 bit FAT (>= 32MB))
    start 485, size 2042395 (997 Meg), flag 80 (active)
        beg: cyl 0/ head 7/ sector 38;
        end: cyl 999/ head 31/ sector 0
The data for partition 2 is:
<UNUSED>
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>

また,mount も成功します.

# mount_msdosfs -o longnames -m 644 -M 755 /dev/da0s1 /mnt

# env LC_ALL=C ls -l /mnt/TIMERREC/*

/mnt/TIMERREC/BOX01:
total 35040
-rw-rw-rw-  1 root   users  7188992 Jan  1  1980 01001_160808_0700A0693I.MP3

なお,この環境においては,mkdir や file の cp などの書き込みの操作は試しておりません.

SD card のために usbconfig により以下のように設定してみました.

# usbconfig -d ugen2.2 add_quirk UQ_MSC_FLOPPY_SPEED

またはそれと同等のようですが /boot/loader.conf に以下の行を追加しました.

hw.usb.quirk.0="0x0dab 0x4100 0 0xffff UQ_MSC_FLOPPY_SPEED"

残念ながら結果は変わりませんでした.

(補足) 自作 AT 互換機においても,上記の結果は同じでした. ST180E には FreeBSD 10.3 しか入れておりません.

3. FreeBSD 10.3

ST180E にて FreeBSD 10.3 に Talk Master II (SD card なし) を接続すると,次のような log が出ます.

xhci0: <XHCI (generic) USB 3.0 controller> mem 0xdf030000-0xdf03ffff irq 16 at device 20.0 on pci0
(中略)
xhci0: 32 bytes context size, 64-bit DMA
usbus0 on xhci0
(中略)
ugen0.3: <YOUNTEL CO.LTD.> at usbus0
umass0: <YOUNTEL CO.LTD. YMDC-407X UMS DEVICE, class 0/0, rev 1.10/1.00, addr 2> on usbus0
umass0:  SCSI over Bulk-Only; quirks = 0xc001
umass0:5:0:-1: Attached to scbus5
da0 at umass-sim0 bus 0 scbus5 target 0 lun 0
da0: < TalkMasterII > Removable Direct Access SCSI device
da0: Serial Number 20040623-001
da0: 1.000MB/s transfers
da0: 997MB (2042880 512 byte sectors)
da0: quirks=0x2<NO_6_BYTE>
da1 at umass-sim0 bus 0 scbus5 target 0 lun 1
da1: < TalkMasterII > Removable Direct Access SCSI device
da1: Serial Number 20040623-001
da1: 1.000MB/s transfers
da1: 974MB (1995777 512 byte sectors)
da1: quirks=0x2<NO_6_BYTE>
GEOM_PART: integrity check failed (da1, MBR)    ← SD card が入っていればこの行は現われません.

こちらも同様に,ソースの変更なしに mount まで正常に動作します.

# mount_msdosfs -o longnames -m 644 -M 755 /dev/da0s1 /mnt

# env LC_ALL=C ls -l /mnt/TIMERREC/*
/mnt/TIMERREC/BOX01:
total 35040
-rw-r--r--  1 root  wheel  7168000 Dec 30  1979 01081_160801_0700A0693I.MP3

なお,この環境においても,mkdir や file の cp などの書き込みの操作は試しておりません.

(補足) 自作 AT 互換機や NP25S には FreeBSD 8.4 しか入れておりません.

(注意) この環境にて何度か接続してきたのですが,接続を終えて USB ケーブルを抜いても「USB 接続中」または「USB 転送中」の状態のままでいることが多いです. マニュアル p.111 に記載されているようにリセットスイッチを押せば元に戻る場合もあります. それでもダメならば,p.87 の「ボタン操作によるフォーマット (初期化)」を行なうはめになります.

ちなみに,USB ポートは 3 でなく,ちゃんと 2 の方を使っております. 念のため.

NP25S + FreeBSD 8.4 の方はこのようなことが生じておりません. ただし,それが FreeBSD やその USB driver の version の差異なのか,PC の USB コントローラーの差異なのかは分かりません. 試す余裕がないのです.

4. SD card reader

NP25S にて FreeBSD 8.4 に SD card を挿した MR-A39N を接続すると,次のような log が出ます.

ugen4.2: <USB Device> at usbus4
umass0: <USB Device USB Mass Storage Device, class 0/0, rev 2.00/0.01, addr 2> on usbus4
umass0:  SCSI over Bulk-Only; quirks = 0x4100
umass0:0:0:-1: Attached to scbus0
da0 at umass-sim0 bus 0 scbus0 target 0 lun 0
da0: <USB Mass Storage Device 1.00> Removable Direct Access SCSI-0 device
da0: 40.000MB/s transfers
da0: 974MB (1995776 512 byte sectors: 64H 32S/T 974C)

接続は成功しています.

一方,PC に MR-A39N を接続した後に SD card を挿した場合には反応しません. あらかじめ挿しておく必要があります.

fdiskmount は内蔵メモリーと同様のやり方でできます.