概要
概要
目的は次のようなものです.
対象は次のものです.
結果は次のようになりました.
注意事項
目次
Talk Master II の主な用途は,やはりラジオを使っての語学学習でしょう. 機能は種々ありますが,基本はラジオをタイマー録音してそれを本体の内蔵メモリーや SD card に記録し再生することです. また,PC と USB 接続する機能も備わっています.
PC との接続が必要になるのは,次のような場合でしょう.
SD card 経由で card slot のある PC とやり取りするという選択肢もありますが,うちでは試せません.
unix user にとって問題なのは,メーカーが接続を保障している PC 側の OS が Windows (XP/2000/Me) に限定されていることです.
(取扱説明書には Mac は対象外であると明記されている.PC unix には言及すらされていない.)
そこで,PC unix との接続を試みました.
その結果を次節以降に示します.
説明を容易にするために以下のデータをあらかじめ提示しておきます.
(1) Talk Master II を PC と接続した場合,PC 側からは次のような SCSI device が二台繋がっていると認識されます.
USB version | 1.1 |
Class | Mass Storage Class |
Subclass | SCSI transparent command set |
Protocol | Bulk-Only Transport |
Vendor (ID) | YOUNTEL CO.LTD. (0x0dab) |
Product (ID) | YMDC-407X UMS DEVICE0 (x4100) |
(2) Talk Master II-GR の内蔵メモリーは論理的に次のように仕切られています.
file system | VFAT |
bytes/sector | 512 |
heads | 32 |
sectors/track | 64 |
start sector | 485 |
size | 2042395 sector (997 MB) |
(3) SD card (SD-S1G) は論理的に次のように仕切られています.
file system | VFAT |
bytes/sector | 512 |
heads | 255 |
sectors/track | 63 |
start sector | 107 |
size | 1995775 sector (974 MB) |
Talk Master II の取扱説明書には,SD card は先ず「Windows にて FAT でフォーマット」し,その後「Talk Master II で再度フォーマット」するよう指示されています.
しかし,うちに Windows はありません.
(後で知りましたが,FreeBSD でも newfs_msdos を使えばできるらしいです.)
そこで,購入した状態からいきなり Talk Master II でフォーマットしました.
それでうまく行ったのは,おそらく工場出荷時に FAT (すなわち VFAT) でフォーマットされていたからでしょう.
(注記) "FAT" という用語は OS ごとに統一されていなくて混乱します. すなわち,
私が普段使っている OS は FreeBSD です. ところが,Talk Master (2) に示すようにうまく行かないので,急遽 Linux を install して試してみました. そんな状況なので Linux は使い馴れておらず,distribution や version の表記法などが違っているかもしれません.
Debian GNU/Linux 3.1r1 "sarge" (kernel 2.4.27-2 および 2.6.8-2) を試しました.
この version は,kernel によらず install したそのままでうまく行きます. 概略,次のような手順で操作します.
log も含めてもう少し臨場感のある説明をするならば,以下のようになります. (kernel 2.6 にて)
先ず Talk Master II と PC とを繋げた際の log です.
ohci_hcd 0000:00:0f.2: ServerWorks OSB4/CSB5 OHCI USB Controller (中略) ohci_hcd 0000:00:0f.2: wakeup usb 1-1: new full speed USB device using address 2 scsi1 : SCSI emulation for USB Mass Storage devices Vendor: Model: TalkMasterII Rev: ← こちらは内蔵メモリーの drive です. Type: Direct-Access ANSI SCSI revision: 02 SCSI device sdb: 2042880 512-byte hdwr sectors (1046 MB) sdb: assuming Write Enabled sdb: assuming drive cache: write through /dev/scsi/host1/bus0/target0/lun0: p1 Attached scsi removable disk sdb at scsi1, channel 0, id 0, lun 0 Vendor: Model: TalkMasterII Rev: ← こちらは SD card の drive です. Type: Direct-Access ANSI SCSI revision: 02 Attached scsi removable disk sdc at scsi1, channel 0, id 0, lun 1 USB Mass Storage device found at 2
これを見れば,この場合には内蔵メモリが sdb (/dev/sdb) の SCSI disk として認識されていることが分かります.
(SD card drive は,card が入っていなくても,この場合には sdc として認識されています.)
なお,1046 MB というのは byte 数の上四桁をそのまま持ってきた数字であり,1024 で二回割る方の数値では約 997 MB です.
SD card が入っている場合の該当箇所の log は次のようになります.
Vendor: Model: TalkMasterII Rev: ← こちらは SD card の drive です. Type: Direct-Access ANSI SCSI revision: 02 SCSI device sdc: 1995777 512-byte hdwr sectors (1022 MB) sdc: assuming Write Enabled sdc: assuming drive cache: write through /dev/scsi/host1/bus0/target0/lun1: p1 Attached scsi removable disk sdc at scsi1, channel 0, id 0, lun 1
次に fdisk で /dev/sdb の状態を見ます.
# fdisk -l -u /dev/sdb Disk /dev/sdb: 1045 MB, 1045954560 bytes 32 heads, 61 sectors/track, 1046 cylinders, total 2042880 sectors Units = sectors of 1 * 512 = 512 bytes Device Boot Start End Blocks Id System /dev/sdb1 * 485 2042879 1021197+ 6 FAT16 Partition 1 does not end on cylinder boundary.
sectors/track が 64 のはずが 61 になっていることと,"Partition 1 does not end on cylinder boundary." という警告は気になるところですが,現時点では動作に不具合は生じておりません. (そもそも Start からしてシリンダ境界にない! 64 でも 61 でも.)
同様に fdisk で SD card が入っている場合の /dev/sdc の状態を見ます.
# fdisk -l -u /dev/sdc Disk /dev/sdc: 1021 MB, 1021837824 bytes 255 heads, 63 sectors/track, 124 cylinders, total 1995777 sectors Units = sectors of 1 * 512 = 512 bytes Device Boot Start End Blocks Id System /dev/sdc1 * 107 1995775 997834+ 6 FAT16 Partition 1 has different physical/logical endings: phys=(123, 254, 63) logical=(124, 58, 62)
こちらもシリンダ境界に関して苦言を呈されています.
ともかくこれで partition 1 は /dev/sdb1 (内蔵メモリ) または /dev/sdc1 (SD card) であることが分かります. 以下の例では,内蔵メモリを /mnt に mount します.
# mount -t vfat /dev/sdb1 /mnt # mount ← 確認のために実行する. /dev/sda1 on / type ext3 (rw,errors=remount-ro) proc on /proc type proc (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) usbfs on /proc/bus/usb type usbfs (rw) /dev/sdb1 on /mnt type vfat (rw) ← mount されている.
/mnt を ls で見てみます. (以下の例では /mnt/timerrec を.) 本来,タイマー録音で作成される directory/file には,そのファイルが作成された日時が付いています. また,directory 名や file 名はすべて大文字で作られています.
ところが,それを Linux から mount すると,日付や時刻は「固定値」にされ,また directory 名は小文字にされてしまいます.
一方,Linux にて directory/file を作成した場合には,作成時の日付,時刻になります. 名前も大文字小文字が区別されます. ちなみに,Linux により timerrec や box?? を小文字で作成しても,タイマー録音はそこにファイルを入れてくれます. (すなわち,新たに大文字の置き場は作りません.)
# ls -l /mnt/timerrec/*
/mnt/timerrec/box01:
total 103200
-rwxr-xr-x 1 root root 9577984 1980-01-01 00:00 01001_070427_0645A0693I.MP3
-rwxr-xr-x 1 root root 9585152 1980-01-01 00:00 01002_070428_0645A0693I.MP3
-rwxr-xr-x 1 root root 9563648 1980-01-01 00:00 01003_070430_0645A0693I.MP3
Talk Master II 側にファイルを cp すると,極めて短時間で prompt に戻ります.
ls で見ると cp が終了しているように見えます.
ところが umount すると,そこから実際の cp の作業が始まるので妙に時間が掛かります.
それを理解して気にしないか,気になるなら cp を実行した後で sync を実行すれば良いでしょう.
(あるいは,私は試しておりませんが,mount の option で同期のさせ方を規定できるでしょう.)
用が済んだら切り離します.
# umount /mnt # mount ← 確認のために実行する.
最後に Talk Master II の USB ケーブルを抜きます.その際,次のような log が出ます.
usb 1-1: USB disconnect, address 2
(注記) 2008.5.31, 使い続けて一年で,とうとうエラーに遭遇しました. データの転送中に SCSI の device driver から error message が出され,それが間欠的に出され続けて prompt に戻れません. また Ctrl+Alt+DEL とすると,一旦 reboot が始まるのですがまた error message が間欠的に出る状態に戻ってしまいます. 結局,電源を OFF するしかありませんでした. 再度電源を ON してやり直したら,問題は生じませんでした. 今回は惨事に至らずに済みましたが,安定性への過信は禁物と痛感しました.
NP25S にて Debian GNU/Linux 4.0r9 "etch" (kernel 2.6.18-6-686) を試しました.
前節の Debian 3.0 と同様に,正常に動作しました.
諸々の癖も同じです.
log の中の USB Controller の部分を示します. Talk Master II は USB 1.1 なので,前者を使います.
uhci_hcd 0000:00:1d.0: UHCI Host Controller ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
NP25S にて Debian GNU/Linux 5.0.6 "Lenny" (kernel 2.6.26-2-686) および 6.0.0 "Squeeze" (kernel 2.6.32-5-686) を試しました. この環境での動作は,前節までとは異なり以下のようになります.
(1) SD card が挿さっていない場合
前節の場合と同様に,正常に動作しました.
(2) との対比のために動作の一部を再録します.
(2) SD card が挿さっている場合
SD card だけでなく内蔵メモリーにもアクセスできない状態になります.
すなわち,
従って,SD card を使うのであれば Debian 3, 4 の環境が必要です.
なお,この症状は,Talk Master (3) に記した FreeBSD 7, 8 系の場合とほぼ同じです.
現在に至るまで,私は Talk Master II とのやり取りはすべて自作 AT 互換機 + Debian 3.1 で行なってきました. (試用を除く.) これが最初にうまく行った環境だからです.
最近,自作 AT 互換機の HDD の予備がなくなったので,NP25S への引っ越しを検討しました. ところが,
ということで,正に「帯に短し襷に長し」という状態です. ソースも見てみましたが,Debian の major version が違う場合,module を移植するのは相当に困難です.
どうしても NP25S で運用ぜざるを得なくなった場合には,録音のファイルを Debian 4 でその HDD に移し,Debian 5 以上 (または Ubuntu 等) でその HDD を mount して... という手順を踏めば可能になります.
まあ,SD card をあきらめれば楽になれるのですが.
NP25S にて Ubuntu Linux 15.04, 16.04 (kernel 4.4.0-34-generic, 64bit 環境) を試しました.
default で FreeBSD で言うところの SYNCHRONIZE_CACHE を使う設定になっているようで,SD card の有無に依らず繋がりません.
TM II 本体の画面は「接続中」から「転送中」に変わります. USB ケーブルを抜いたら電源 off の状態に戻ります.
/etc/modprobe.d/ に quirks.conf を作成して quirks を設定する手段があるようなのですが,資料が少なくて,この場合にはどう設定して良いのか分かりません.
FreeBSD にもある usbconfig が使えるようなのですが,この設定は接続する前にしておく必要があるような気がするので試しておりません.