IEEE1394a+USB2.0カードを使う

['04/07/26] 初稿
■はじめに
■Terminatorに対する不満
 Asus Terminatorやキューブ型の PC では,筐体内のベイ数や拡張カード用 のスロット数に制約があるため,その拡張に制限が付きまといます.例えば Terminator にディスクを増設したいと考えた場合,ベイ数の制約の関係で 物理的に4台までしか内蔵できません.そして外付けのデバイスを使用したい と考えた場合,オンボードで搭載しているインターフェイスとして USB が 利用可能ですが,Terminator TU のような初期の機種の場合,最高で 11Mbps しか出ない USB1.1 しか利用できません.また,最近の機種の場合は最高で 480Mbps のスピードを持つ USB2.0 が搭載されていますが,Terminator2 以外の機種の場合,SiS チップセットを使用している関係で,一部 USB 機器 (私の場合,スキャナで引っかかりました)との間で相性問題が発生します.

 また,最近のキューブ型 PC では,オンボードで IEEE1394a を搭載している 機種が大半であるような印象を受けますが,Terminator シリーズは搭載して いません.IEEE1394a は最大 400Mbps の速度が出ます.カタログ値では USB2.0 よりも低速ですが,経験的に IEEE1394aの方が CPU 負荷が軽く,また,通信速度も USB2.0 よりも出ます.また,IEEE1394 専用 のデバイスも多く存在し,例えば DV カメラのようなデバイスを接続しようとした 場合は必須になります.Asus のベアボーン キットである Pundit には搭載されているのに,Terminator に搭載されていないのは残念でなりません.

 改めて不満点と解決方法をまとめますと,以下のようになります.

表:Terminator 拡張の方針
該当機種不満点解決方法
Terminator TU等USB 2.0非搭載USB 2.0カードの搭載
Terminator K7DDR等SiS製 USB2.0の相性問題 相性問題の発生しにくいチップを使用した
USB 2.0カードの搭載
Terminator 全般IEEE1394非搭載IEEE1394カードの搭載

 つまり,『相性問題の発生しにくいチップを使用した USB 2.0 インターフェイス』『IEEE1394インターフェイス』を搭載したカードを増設すれば,とりあえず私の不満点 は解決しそうです.『え?じゃぁ2枚カードを刺さなければならないの?』と,いう 話になるかと思いますが,最近は1枚で2度以上美味しいインターフェイスカードも販売され ています.一般に『マルチインターフェイスカード』『複合インターフェイスカード』と 呼ばれるものです.このようなタイプのカードであれば,複数の異なったインターフェイスを 1枚の PCI カードに搭載しているため,消費スロットを1本に押さえることが可能です.

■USB,IEEE1394インターフェイスの簡単なおさらい
 何らかの機器を増設する際に,USB は非常に便利なインターフェイスと言えます. Plug&Play で利用できるという点もさることながら,大抵の PC にオンボードで搭載 されている上,多種多様なデバイスが多くのメーカーから提供されているからです. また,USB 1.1 は最高 11Mbps の速度しかでませんが,当初は低速なデバイスを接続 するために使用されることが多く,シリアルやパラレルの代替として考えられていたた め, ある意味充分でした.しかし,その後少しでも高速な方が使い勝手の良いデバイス も続々と登場しました. ストレージ系のデバイスや,大容量のデータを転送する高解像度スキャナ等です.

 USB 規格もこのようなニーズを想定しており,最高 480Mbps の速度が出る USB 2.0 規格が策定されています.そして現行の PC の殆どに搭載されています.高速な通信が 求められるデバイスは USB 2.0 対応の製品として販売されることが多いわけですが, USB 2.0 は USB1.1 と下位互換性を持たせているため,USB1.1 インターフェイスに接続 した場合でも,『USB 1.1 デバイス』として利用可能になって います.つまり,スピードにさえ目をつぶれば,使えないことは無いということです(一部 の転送速度にシビアなものを除く).

 そして別の方面に目を向けてみますと,当初は DV カメラを接続する インターフェイスとして見られることが多かった IEEE1394 も,IEEE1394aでは 最高 400Mbps でしたが,IEEE1394b では最高 800Mbps の通信が可能になっており (規格上では1.6Gbps, 3.2Gbpsがある),そして対応デバイスも, 最近はマルチメディア系やストレージ系等,多くの製品が販売されています. ちなみに i.LINKやFireWire と呼ばれる場合もありますが,同じ物を指します.

 なお,IEEE1394bはまだそれ程普及しているとは言えません.一応 IEEE1394a 用 機器はIEEE1394bインターフェイスに接続して使用することが出来ますが,コネクタ の物理形状が異なるため,接続の際には変換コネクタやケーブルが必要となります. 普及率が低いことが原因であると思いますが,変換ケーブルは現在高値安定 しています.下手をしたらインターフェイスカードよりも高く付くことも…. このような背景もあり,今すぐに使いたいということでなければ,現在あえて 将来を見越して IEEE1394b を搭載する必要は無いと言って良いと思います.

 これらインターフェイスを実際に使用する上で考えなければならないことは, その性能とコストパフォーマンスです.詳しい技術的な話は割愛しますが,手軽に そこそこの性能を求めるのであれば USB 2.0を.多少割高になっても良いので性能を 求めたいということであれば,IEEE1394を選択するのが良いでしょう.インターフェイス カード自身の価格は殆ど変りませんが,ケーブルや Hub/リピータ 等をはじめとする IEEE1394 用の周辺サプライは割高です.

■TU1号機での問題
 私の所では,Terminator TU 1台(以下,TU1号機)に Linux を入れ,各種 サーバとして使用しています.このマシンには TV チューナーカードおよび SCSI カードを刺していますが, TV 録画サーバとしても利用している ため,チューナーカードを抜くことは出来ません.そして SCSI カードは DDS3 テープドライブが接続されており,使用 頻度もそこそこあります.とは言え,これら2枚のカードのうち,抜ける としたら SCSIカードの方です.最悪別マシンにテープドライブを繋げて リモートで利用するという手もあります.この問題の解決に関しては, アレコレ試行錯誤した後に,別の手段を採用することにしました(後述).

 そしてオンボード USB 1.1 には USB 外付けディスクを接続し,バック アップデバイスとして使用しています.しかし,転送速度が遅い他,利用時の CPU 使用率が半端でないため,かなりの忍耐が必要な場合があります.ちなみに この変換 ケースは USB2.0 に対応しているため,PC 側に USB 2.0 インターフェイスを 用意して繋ぎ替えれば,これら2つの問題が一気に改善される可能性があります.

 また,この USB 外付けディスク以外に, IEEE1394a/USB2.0 のデュアル インターフェイス搭載の外付けディスクのガワが手元に1つ余っています. もし,IEEE1394a で接続した際に良好な結果が出たとしたら,こちらをバックアップ用の外付け ディスクとしてメインで利用するという手もあります.

 と,このように,これまでフツフツと感じていた不満点が,今回の USB2.0+IEEE1394 カードの搭載により,一気に解決する可能性が出てきました.問題は Linux の 対応状況です.以前,Kernel 2.4.19 辺りでは USB が不安定であったこともあり,少々気になる所です.特に IEEE1394 は初めての トライになることもあり,やや不安を感じます…

■マルチインターフェイスカードあれこれ
■玄人志向 USB2.0+1394PCI
 実際に導入したのは2002年の9月からなのですが,本コンテンツを書いてアップしようと 思いつつ既に2年近く経過してしまいました.その間にカードのリビジョンがアップされ, そして現在は『旧製品』となっています.ちなみにメーカーの商品ページは こちらです.

2002年9月 に 5980円で購入.お馴染みの玄人志向の箱
商品説明のアップ
箱の中にはカードとマニュアルのみ.USB2.0のドライバは Win2k の SP4 に 入っているドライバでも安定して動くが,玄人志向のページより ダウンロード可.IEEE1394 は Win2k が自動認識
ボード全景
USB 2.0コントローラとして使用されている NEC製の uPD720100A.EHCI の Rev0.95 に準拠. 相性問題が少なく,安定性の面で定番と言われていたチップ.現在は NEC から EHCI の Rev1.0 に 準拠し,高速化された uPD720101 が出ているが,こちらは多少相性問題が出ている模様.
IEEE1394a コントローラとして使用されている VIA 製 VT6306.IEEE1394 コントローラチップとしては,規格策定にも携わっている TI 製のものが問題が 少ないが,VIA 製チップも採用率が高い.刺す M/B によっては問題が起きるとき があり,Intelチップセットであれば安定するが,VIAチップセットだと問題が 発生しやすいとか.
PCI ブリッジとして使用されている HiNT 製 HB1.性能が悪く,M/Bとの相性 問題も発生しやすいということで有名なチップです….Intel製のチップを採用した 場合と比べ,かなり性能が落ちる件に関しては,例えば こちら に検証された方がおられます.
内蔵デバイス用に,右からIEEE1394aの6pin,USB2.0ポートが出ています.一番左の FDD用タイプの電源コネクタは,USB/IEEE1394のバスパワー給電用です.USBは1ポート辺り 5[V]を 500[mA].IEEE1394 は給電可能な 6pin コネクタを使用する場合,8〜40[V]で1.5[A] (規格では最高45Wまで?)となっています.PC用 IEEE1394インターフェイスは通常12[V] を 1.5[A] までという形に考えるのが一般的なようなので,本カードのポートをフルに使用した 場合,5[V]を 2[A],12[V]を4.5[A]もの電流が流れることに.最大まで使わないにしても, PCIスロットからの給電オンリーではかなりキツイということでしょう.
外部機器接続用に USB2.0 コネクタが3個,IEEE1394の6ピンコネクタが2個 ブラケットに出ています.
マニュアルに載っているインストレーションガイド.バスパワー機器を使わないのであれば, 前述の4ピンコネクタは接続しなくても問題ありません.Terminator のような狭い筐体内に取り付ける場合,ケーブルが少ない方が取り回しが楽になる他, エアフロー的にもメリットがあります.

 使用してみたところ非常に調子が良かったため,半年ほどしてから追加で2枚ほど 同じカードを購入しました.すると,型番が同じで外箱から判断が付かないのですが, 若干設計が変更になっていました.

2003年3月 に 4478円で購入
パッケージや説明は全く同じ
ボードも一見同じように見えますが…
V2.0とシルク印刷された新しい版では,4ピンの電源コネクタが無くなっています.
また,PCIブリッジチップもパッケージが変更になっています(チップは同じHB1).

 バスパワー給電用の電源コネクタが無くなっているため,バスパワー を使用する機器を沢山接続すると何かしらの問題が発生するかもしれません. ケーブルを1本接続しなくて済みますので(前のリビジョンでも接続しないという 選択肢がありますが),取り付けという意味では楽なのですが.

 そして以下は Terminator では使用しませんでしたが,USBやIEEE1394のケーブルを フロントから抜き差し出来るようにするアダプタ付きの製品です.ベイを1つ消費しますが, 機器の繋ぎ替えをよく行う場合には,このような製品の方が便利かもしれません.

玄人志向 USB2.0+1394-FBPCI.2003年4月に 5950円で購入
実は USB2.0+1394-PCI と間違えて購入しました :-).よーく型番や説明を見ないと, 違いが分かりません…
内容物一覧
カードアップ.チップ構成的には,USB2.0+1394-PCIと同じです.
フロントアクセス用のアダプタ.カードとフラットケーブルで接続します.USB2.0*5, IEEE1394*3ポート

■玄人志向 GIU2-PCI
 話は前後しますが,現在私が Terminator で使用しているカードです.USB2.0とIEEE1394a の他に,Gigabit Ethernet インターフェイスも付いています.メーカーの商品ページは こちらです.

2004年7月 に 4980円(税込み)で購入.お馴染みの玄人志向の箱
商品説明のアップ
内容物一覧.ドライバCDは,Gigabit Ether用のドライバであり,USB2.0およびIEEE1394 は Windows 2000 (およびSP4)に入っているドライバで動作しました.
ブラケット側.左からUSB2.0が2ポート,Gigabit Ethernet ポート, 4ピンのIEEE1394が1ポートです.一番左の穴は,設計時には存在していた6ピンのIEEE1394を 1ポート付けようとし,製造段階で取りやめにした穴だと思われます….

ブラケットには6ピンのIEEE1394を出して欲しかった…

内蔵機器用にカード側に USB2.0 1ポート,6ピンのIEEE1394 1ポート,そして給電用の 4ピンコネクタがあります.
カード全景
Gigabit Etherは,通称『ギガニ』が使われています.RealTekの RTL8110S-32 です. このチップは組込用であり,M/B にオンボードで Gigabit Ether を搭載する際によく使用 されます.拡張カード用には RTL8169 が使われることが多いのですが,RTL8110Sが使われた のは,おそらくコスト的なものが原因でしょう.ちなみにドライバは共通です(の筈).
USB2.0 コントローラは VIA VT6212.NEC の uPD720100A よりも20%〜30%高速と言われています. EHCI rev1.0準拠.PCI ブリッジも兼ねています.
IEEE1394コントローラは USB2.0+1394-PCI と同様,VIA VT6306

 I/O Data やシステムワークスが同機能のカードを出してきていますが,値段を 見てこれを購入.実はシステムワークスのスゴイカード(SGC-52UFG)では, Gbit Etherに RTL8169S, USB2.0 に NEC uPD720101, IEEE1394 に TI TSB43AB23, PCI ブリッジに TI PCI2250PCM を使用しているとのことでしたので『性能が良さそう だな』と,非常に気になってはいたのですが,値段には勝てず….余程性能に不満 を抱えたら買い換えようという気分で GIU2-PCI に行ってみました.

 なお,度々『PCI ブリッジチップが…』といった説明をしていますが, USBやIEEE1394等のカードに乗っている各コントローラは,使用されている 『PCI to PCI ブリッジチップ』を介して接続される形になります.そのため, このブリッジの性能が悪いと,例えその先に接続されているコントローラの 性能が高いとしても充分にそのパフォーマンスを発揮できません.そのため, マルチインターフェイスカードを購入する際には,使用されているコントローラ チップだけではなく,PCI ブリッジチップの型番もチェックするようにしておいた 方が良いでしょう.特に Gbit Ethernet のような高速な通信が必須な機能を 搭載している場合は,確認しておいた方が良いと思います.

■使用してみる
■Windows で使用してみる
 Windows 2000 を使用しているのであれば,SP4 適用済みの場合,上記カードで 新規にドライバをインストールする必要はありません.基本的に一通りのものが 自動認識されます.

 さて,実際に使用してみた結果ですが,導入した Terminator TU, K7DDR 共に 相性問題などのトラブルもなく,拍子抜けするほどあっさりと無事に動作しました. また,早速試した DV カメラ(SONY DCR-PC120)からの動画取り込みも問題なし. IEEE1394 接続の TV キャプチャBOXである I/O data GV-1394TV (リンク先はマイナーバージョンアップした後継機種)も繋がり,TVも視聴&録画 できました.

 そして気になる互換性ですが,K7DDR のオンボード USB2.0 では正常に 動作しなかった(古いドライバでは USB1.1のスピードしか出ず,新しいドライバ では認識すらされなかった) Canon LiDE50 が,USB2.0+IEEE1394-PCI に接続することにより,問題なく動作するようになりました.

 これで私が抱えていた問題および,とりあえず行いたいと考えていた事柄が一通り 解決しました.

 次にパフォーマンスを見てみようということで,手持ちの 外付けハードディスクを接続し,USB2.0 および IEEE1394 で接続した際の スピードを確認してみました.なお,ベンチマークは HDBENCH 3.22 (Data:20MB)で 行いました.なお,測定条件にいくつか『なぜこの条件で調べてないの?』のような 抜けがありますが,ご容赦を…

表:USB2.0,IEEE1394接続した外付けHDDの転送速度
使用カード接続インターフェイス使用HDD Read[KB/sec] Write[KB/sec] Copy[KB/sec]
K7DDR オンボード
(AthlonXP 1800+)
USB2.0A 26222 23405 16892
TU オンボードUSB1.1A 1008 963 909
K7DDR
(AthlonXP 1800+)+
USB2.0+IEEE1394-PCI
USB2.0A 15974 13653 11789
USB2.0B 13102 11402 8881
IEEE1394aA 33627 27306 2224
K7DDR
(AthlonXP-M 2600+)+
GIU2-PCI
USB2.0A 21856 22211 14187
USB2.0B 13508 13247 9364
IEEE1394aA 38568 25696 2449
※表中の『外付けHDD』は,以下のように略して表記した
 A:NOVAC 3.5" HDDはい〜るKIT Dual + 5A250J0(3.5inch 5400rpm IDE HDD)
 B:MSA GXM-25U + IC25N040ATCS04(2.5inch 4200rpm IDE HDD)

 上記の結果から,以下のことが言えます.

  • USB1.1 はやはり遅い.Read/Write/Copy 共に 10[MB/sec]程度
  • USB2.0 は USB1.1 と比較し,10倍以上もの速度の向上が得られる
  • K7DDRでは,オンボード USB2.0 の方が NEC uPD720100A よりも6割近く高速
    (IEEE1394接続では良好なパフォーマンスが出ているため,uPD720100A で パフォーマンスが出ない原因が,PCIブリッジの性能だとは考えにくい)
  • IEEE1394a の方が USB2.0 よりも Read/Write 共に2倍以上高速だが,何故か Copy は 1/5 以下と大きく劣る
  • IEEE1394a接続の場合,Read に関しては,4R120L0 をIDE直結した際の パフォーマンスとほぼ同等の速度が出ている
  • PCIブリッジが VT6212 である GIU2-PCI に変更したところ,同一のコントローラを 使用したIEEE1394aでもパフォーマンスが向上
    (CPUの高速化も影響?)
  • VT6212 を使用した USB 2.0 は大幅にパフォーマンスが向上.
    (PCIブリッジチップ等の影響の可能性もある)
 なお,IEEE1394a の結果で Copy が異様に低い結果が出ていますが,これが即, 『通常利用時のファイルコピーが遅い』ということには結びつきません.『ベンチ 結果はある側面から見た(特定の方法で測定した)結果でしかない』と,いうこと です.

 結論として,USB2.0の場合はパフォーマンス的にはオンボードが高速.拡張 カードでも,VT6212はそれに迫る.IEEE1394aはUSB2.0よりも高速.ということ が言えます.

 なお,GIU2-PCI では,起動時に希に USB 機器を認識しない場合がありました. 対処療法ですが,デバイスマネージャーで USB ドライバを一旦削除し,再起動して 再度読み込ませることにより,使用できるようになります.

■Linux で使用してみる[認識]
 それでは,個人的に最も期待していた Linux(Vine2.6r4相当)@TU1号機 での 動作検証をしてみます.

 まず,USB2.0+IEEE1394-PCI を取り付けてブートしてみますと,とりあえず USB インターフェイスに関しては自動認識しました.そしてデバイスを接続すると, 『ピッ』という心地良い音と共に自動認識します.完璧です…と,思ったのも 束の間,実は必要なドライバが読み込まれておらず, USB2.0 として動いて いませんでした.そこで『modprobe ehci-hcd』 を手動で実行すると USB 2.0 で動作し始めました

 次に IEEE1394 ですが,こちらは自動認識されませんでした.そこでこちらも 手動でモジュールを読み込ませてみます.modprobe で,ohci1394 と ieee1394 を読み込ませればOKです.追加で raw アクセスするためのモジュールおよび, ストレージクラスのデバイスを使用する際に必要となるモジュールも読み込ませ ました.一連のモジュールを読み込ませると,無事に認識するようになりました

 最終的に,/etc/rc.d/rc.local に以下の行を追加し,起動時に必要な モジュールを読み込ませるように設定しました(murasaki の設定を いじった方が良いのかも…).

#for IEEE1394
modprobe ohci1394
modprobe ieee1394
#for raw access
modprobe raw1394
#for storage
modprobe sbp2

#for USB2.0
modprobe ehci-hcd

 基本的にはこれで使用する準備はOKなのですが,実際に使ってみた所,USB2.0に 関し,Kernel 2.4.21 ではデータ転送が激しく発生すると(即ち,ディスクを使用 した際に,大きなファイルを継続的に書き込みを行うと)USBがハングするという症状 が発生しました.そして Kernel2.4.26にアップデートしたところ,この症状はピタリ と収まりました.そのため,現在は kernel 2.4.26 で使用しています.

 そしてカードを認識させた後で確認しますと,以下のようになります(TU1号機に GIU2-PCIを接続時.オンボード USB も enable).

# cat /proc/bus/usb/devices (USBデバイスの一覧を表示)
T:  Bus=05 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 4
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS= 8 #Cfgs=  1
P:  Vendor=0000 ProdID=0000 Rev= 2.04
S:  Manufacturer=Linux 2.4.26 ehci_hcd
S:  Product=VIA Technologies, Inc. USB 2.0
S:  SerialNumber=00:0e.2
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=256ms
T:  Bus=05 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#=  2 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=04bb ProdID=0102 Rev= 1.00
S:  Manufacturer=I-O DATA DEVICE,INC.
S:  Product=I-O DATA iU-HD2
S:  SerialNumber=000000000026
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=  2mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
T:  Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 1.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0000 ProdID=0000 Rev= 0.00
S:  Product=USB UHCI-alt Root Hub
S:  SerialNumber=9400
(後略)

# cat /proc/bus/ieee1394/devices (IEEE1394デバイスの一覧を表示)
Node[0-01:1023]  GUID[004026010b0100df]:
  Vendor ID: `Linux OHCI-1394' [0x004063]
  Capabilities: 0x0083c0
  Bus Options:
    IRMC(1) CMC(1) ISC(1) BMC(0) PMC(0) GEN(0)
    LSPD(2) MAX_REC(2048) CYC_CLK_ACC(0)
  Host Node Status:
    Host Driver     : ohci1394
    Nodes connected : 2
    Nodes active    : 2
    SelfIDs received: 2
    Irm ID          : [0-01:1023]
    BusMgr ID       : [0-63:1023]
    In Bus Reset    : no
    Root            : yes
    Cycle Master    : yes
    IRM             : yes
    Bus Manager     : no
(後略)

 USBデバイスの"Spd="の値を見て頂くとお分かりのように,拡張カード側の スピードが 480bps になっていることからも,きちんと USB 2.0 として 動作していることが分かります.

 また,オンボードのシリアルおよびパラレル,NIC を BIOS で disable にし, GIU2-PCI を PCI スロットの下側に刺した場合の割り込み(IRQ)は以下のように 設定されます.Terminator の場合,BIOS で PCI カードの IRQ を手動設定 可能ですが,上側スロットは単独利用出来るように設定可能のようですが, 下側スロットは必ずオンボードのオーディオとシェアするようになっているようです.

# cat /proc/interrupts
           CPU0
  0:   92537495    XT-PIC  timer
  1:        313    XT-PIC  keyboard
  2:          0    XT-PIC  cascade
  3: 29818737   XT-PIC  usb-ohci, usb-ohci, ehci_hcd
  4:          0    XT-PIC  usb-uhci
  8:          1    XT-PIC  rtc
 10: 77191638   XT-PIC  SiS 7018 PCI Audio, usb-uhci, eth0, ohci1394
 11:    1705274    XT-PIC  ivtv: iTVC15/16 mpg2 encoder chip
 12:         37    XT-PIC  PS/2 Mouse
 14:   10925950    XT-PIC  ide0
 15:     518386    XT-PIC  ide1
NMI:          0
LOC:   92540302
ERR:         40
MIS:          0
※eth0 は GIU2-PCI に乗っている Gigabit Etherです.

 なお,GIU2-PCI に搭載されている Gigabit Ether の認識に関しては,別ページにて解説 することにします.

■Linux で使用してみる[ストレージを使う]
 詳しい利用方法に関しては別ページ で解説を行います.ここでは,ディスクの認識の させ方と注意点に関して簡単に説明を行います.

 まず,IEEE1394接続のストレージですが,プラグした際に正常に認識されると, 『ピッ』というビープ音が鳴ります.この後で以下のようにコマンドを叩きます.以下は CENTURY Good Faith twin をスタンダードモード(内蔵したディスクを別個のディスクとして アクセスするモード)で接続した場合の例です.

(1台目のディスクを認識させる)
# cat echo "scsi add-single-device 0 0 0 0" > /proc/scsi/scsi
(2台目のディスクを認識させる)
# cat echo "scsi add-single-device 0 0 1 0" > /proc/scsi/scsi

(メッセージ)
scsi0 : SCSI emulation for IEEE-1394 SBP-2 Devices
blk: queue da8bea18, I/O limit 4095Mb (mask 0xffffffff)
ieee1394: sbp2: Logged into SBP-2 device
ieee1394: sbp2: Node 0-00:1023: Max speed [S400] - Max payload [2048]
ieee1394: sbp2: Logged into SBP-2 device
ieee1394: sbp2: Node 0-00:1023: Max speed [S400] - Max payload [2048]
ieee1394: Node added: ID:BUS[0-00:1023]  GUID[00e0370120130727]
scsi singledevice 0 0 0 0
  Vendor: Century   Model: EX35FUL2-A        Rev: 0100
  Type:   Direct-Access                      ANSI SCSI revision: 02
blk: queue da8bec18, I/O limit 4095Mb (mask 0xffffffff)
scsi singledevice 0 0 1 0
  Vendor: Century   Model: EX35FUL2-B        Rev: 0100
  Type:   Direct-Access                      ANSI SCSI revision: 02
blk: queue c98c9018, I/O limit 4095Mb (mask 0xffffffff)
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
Attached scsi disk sdb at scsi0, channel 0, id 1, lun 0
SCSI device sda: 488397168 512-byte hdwr sectors (250059 MB)
 sda: sda1
SCSI device sdb: 488397168 512-byte hdwr sectors (250059 MB)
 sdb: sdb1
(後略)

 この『scsi add-single-device 0 0 0 0』の数字は,先頭から ホストアダプタの番号,ホストアダプタ上のSCSIチャネル,デバイスの SCSI ID,デバイスの LUN を意味します.つまり上記の例では,『ホストアダプタ, チャネルが0上の SCSI ID が 0と1のデバイスを接続します』という意味に 意味なります.ただしここで注意が必要なのですが,SCSI カードを使用して いる場合は 一意に『SCSI ホストアダプタ』番号が決まりますが,IEEE1394 や USB を使用する場合,認識された順番に『SCSI ホストアダプタ』番号がカウント アップ(インクリメント:+1)され,SCSI ID も同様に接続順で 0からの数字が 割り当てられます.即ち,同一のデバイスであっても,プラグした順番によって 番号が変ってきますので注意.そして当然ながら sd? の "?" の番号も,認識 順によって変化します.

 次にUSB 接続のディスクですが, USB storage class に対応した機器の場合は,(Vine の場合)murasaki が良きに 取り計らってくれるので,プラグすれば即使えるようになります.以下はプラグ した際に表示されるメッセージです.

hub.c: new USB device 00:0e.2-3, assigned address 2
usb.c: USB device 2 (vend/prod 0x4bb/0x102) is not claimed by any active driver.
Initializing USB Mass Storage driver...
usb.c: registered new driver usb-storage
scsi1 : SCSI emulation for USB Mass Storage devices
  Vendor: Maxtor    Model: 4A250J0           Rev: RAMB
  Type:   Direct-Access                      ANSI SCSI revision: 02
Attached scsi disk sdc at scsi1, channel 0, id 0, lun 0
SCSI device sdc: 490234752 512-byte hdwr sectors (251000 MB)
 sdc: sdc1
WARNING: USB Mass Storage data integrity not assured
USB Mass Storage device found at 2
USB Mass Storage support registered.
(後略)

ワーニングが出でいますが,気にしない :-)

 このように IEEE1394, USB2.0 のデバイスを認識させると,sda〜sdcとして利用 可能な状態になりますので,後は普通に mount して使用することができます.なお, 上記の例ではいずれのディスクもパーティション分けやフォーマットが終了済みです. そのため,sd?1 というパーティションが認識されています.パーティション分け 等がまだであれば,sd? として認識された 段階で, fdisk や mke2fs (-j 追加で ext3 でフォーマット)等を実行してください.

 この状態で /proc/scsi/scsi を cat すると,現在 SCSI に接続されている 機器の一覧を表示できます.

# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: Century  Model: EX35FUL2-A       Rev: 0100
  Type:   Direct-Access                    ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 01 Lun: 00
  Vendor: Century  Model: EX35FUL2-B       Rev: 0100
  Type:   Direct-Access                    ANSI SCSI revision: 02
Host: scsi1 Channel: 00 Id: 00 Lun: 00
  Vendor: Maxtor   Model: 4A250J0          Rev: RAMB
  Type:   Direct-Access                    ANSI SCSI revision: 02

 前述の説明の通りの順番で接続した場合,IEEE1394 ストレージが ホストアダプタ:scsi0 配下に 接続されており,USB2.0 ストレージは ホストアダプタ:scsi1 配下に接続されている ことが分かります.

 次に利用を終了し,ケーブルを抜く/デバイスの電源を切る際の手続きですが, まずは必ず umount してください.次に USB デバイスはそのままケーブルを抜けば/ デバイスの電源を切ればOKです.IEEE1394 デバイスの場合は,以下のようにコマンドを 実行してからデバイスを外す必要があります.

# cat echo "scsi remove-single-device 0 0 0 0" > /proc/scsi/scsi
# cat echo "scsi remove-single-device 0 0 1 0" > /proc/scsi/scsi

※hotplug の設定をきちんとしておけば,一連のコマンドは叩かなくても良い ような気がしますが.現在きちんと設定を見直していません :-)

■SCSI接続 DDS3 テープドライブを USB で接続
 前述したように,今回 TU1号機の SCSI カードは抜くことになりました.そのため, このカードに接続されていた DDS3 テープドライブを別の手段で利用できるように しなければなりません.一番手っ取り早そうなのは USB-SCSI 変換アダプタを使用して 接続する方法ですが,巷で売られている殆どの USB-SCSI 変換アダプタは Windows/Mac 専用品であり,メーカー製の専用ドライバでなければ動作しません.そのため,Linux で 動かすことは絶望的に困難です.

 ところが,RATOC から Mass Storage モードで利用できる変換 アダプタが販売されているのを発見. このページ を見てしばらく迷いましたが,通販ページでクリックすることにしました.

RATOC U2SCX. 2003年6月に直販価格 6980円で購入.
スキャナ等も接続可能であり,Windows で使用する場合は SCSIデイジーチェーンにも 対応します.MacOS にも対応
仕様.USB2.0 接続ですので,UltraSCSI の帯域をフルにカバーできそうです.
気を付けなければいけないことは,コネクタが 50pin のピンタイプであること, そして電源は SCSI Term からパワーを取ることです.そのため,Term パワーを取れない 機器を接続する場合,別売りの AC アダプタを使用する必要があります.
内容物一式
変換ケーブルの長さは長すぎず短すぎずで丁度良い長さ
SCSIコネクタ部のアップ.通電するとこのLEDが点灯します.点灯しない場合は Term パワーから電源が供給できていない可能性があるため,ACアダプタが必要かも.
今回は HP の外付け DDS3 テープドライブに接続して使用するわけですが,SCSI コネクタの形状はアンフェノール 50pin タイプです.U2SCXとは形状が異なります.
そこで,このような変換アダプタ を用意しました.サンワサプライ製 AD-P50C.直販価格で 2520円
AD-P50Cの説明書き
U2SCXに取り付け
少し後にせり出してしまいますが,このように取り付けます.

 なお,Linux で U2SCX を用いてテープドライブやスキャナを接続する場合は,一度 Windows に U2SCX を接続し,同梱されているユーティリティソフトで動作モードを 『Mass Storage Mode固定』に設定する必要があります.デフォルトではディスクが接続 された場合は USB Mass Storage モードになり,その他のデバイス/複数デバイスが接続 された場合,RATOC のドライバが必要となる専用モードとして動作します.この専用モード は Linux からは使用出来ません.そのため,自動認識を行わず,どのようなデバイスが 接続された場合でも, Mass Storage モードとして動作するように設定するということです.設定情報は U2SCX 上の FlashRAM に書き込まれますので,1度設定を行えば OK です.

 その他にも,U2SCX には LUN 対応の製品が使用できないなど,いくつかの制約事項 があります.詳しくはマニュアルを参照して下さい.

 後はプラグすれば自動的に murasaki が良きに取り計らってくれ,st デバイスとして 使用可能になります(stとして使えなかった場合,sg や st モジュールを予め読み込ませて おくこと).呆気ないほどあっさり動いてしまい,拍子抜けするほど.ちなみに USB2.0 を 必要とするほどデータ転送量はありませんので(約 1[MB/sec]),オンボードの USB1.1 に 接続することにしました.

hub.c: new USB device 00:01.3-1, assigned address 2
usb.c: USB device 2 (vend/prod 0x584/0x220) is not claimed by any active driver.
murasaki.usb[1307]: device is added
murasaki.usb[1307]: vendor:0x584 product:0x220 Dclass:0x0 Dsubclass:0x0 Dprotocol:0x0
  Iclass:0x8 Isubclass:0x6 Iprotocol:0x50
murasaki.usb[1307]: MATCH(usb-storage) -> match_flags:0x380 vendor:0x0 product:0x0
  Dclass:0x0 Dsubclass:0x0 Dprotocol:0x0 Iclass:0x8 Isubclass:0x6 Iprotocol:0x50

SCSI subsystem driver Revision: 1.00
Initializing USB Mass Storage driver...
usb.c: registered new driver usb-storage

scsi0 : SCSI emulation for USB Mass Storage devices
   Vendor: HP        Model: C1537A            Rev: L812
   Type:   Sequential-Access                  ANSI SCSI revision: 02

USB Mass Storage support registered.
st: Version 20020805, bufsize 32768, wrt 30720, max init. bufs 4, s/g segs 16
Attached scsi tape st0 at scsi0, channel 0, id 0, lun 0

 早速ガリガリ使用してみたのですが,mt や tar 等のコマンドがそのまま利用でき, SCSI カードに接続しているときと同じように利用できました.

■まとめ
 今回,IEEE1394a および USB2.0 という汎用的かつ高速なインターフェイスの 追加/増設を行いました.そしてこれまで抱えていた不満を一通り解消できたため,大変 満足しています.特に不安を感じていた Linux での動作も問題ありませんでした.

 拡張に対して 様々な制約のある Terminator においても,これらインターフェイスを使用して 各種デバイスを接続可能にする道が開けたことで,今後もかなりの長期間 利用し続けることができそうです.

 ある意味,本体内の拡張で充分用途を満たしている場合はあまり興味の湧かない 拡張ではあると思いますが,私と似たような不満を抱えている方はお試しあれ. 特に最近は,インターフェイスカードが非常に廉価になって来ており,懐的にも 優しい拡張方法だと思います.


『Asus Terminator 活用メモ』 へ戻る