個人的なメモを記していくためのページです。
ノートと2.5"の1394対応のリムーバブルドライブを接続するケーブルが不良らしい。それを使うとケーブルを挿してから認識されるまで遅いし、大きなファイルを転送するとエラーが出たりする。久々につかってディスク本体のエラーかなと思ったがデスクトップの方で接続すると普通。ノート⇔リムーバブルの接続を別ケーブルで試すと普通になった。ケーブル(あるいはコネクタとの相性)による不良なんだろうけど妙にアナログチックな動きだ。1394上でエラーリトライが行われているせいだろうか。 あやうくデータを失うところだった。どうせならすぱっと動かなくなるかエラー表示をしてもらった方がありがたい。
もうちょっと試していたらこうなった。このドライブはusb2.0、1394x2のコネクタがついもので1394のコネクタをA,Bとし、ケーブルをドライブ付属をX,別に購入したのをYとして次のようになる。ケーブルXのノートPC<->ドライブの接続をひっくり返しても 同じ結果になる。
リムバールコネクタ | コネクタ、ケーブル | 判定 |
---|---|---|
A | ケーブルX | × |
B | ケーブルX | ○ |
A | ケーブルY | ○ | B | ケーブルY | ○ |
さらにケーブルXをつかって別の1394デバイス(DVカメラ)を繋げると普通に動いてしまう。いやな不良だな。
#! /usr/local/bin/perl use Win32::Shortcut; $link=new Win32::Shortcut(); traverse( shift ); sub traverse { local($dir) = shift; local($path); unless (opendir(DIR, $dir)) { warn "Can't open $dir\n"; closedir(DIR); return; } foreach (readdir(DIR)) { next if $_ eq '.' || $_ eq '..'; $path = "$dir/$_"; if (-d $path) { # a directory &traverse($path); } elsif (-f _ && -s _) { # a plain file # or do something you want to if( $link->Load($path) ){ if( ! -e $link->{Path} ){ print "$path\n"; print "-->$link->{Path}\n"; } } } } closedir(DIR); }