El Capitanを実行する新しいマシンをセットアップし、通常どおり macports を介してスキャナー用にxsaneをインストールしました。xsane は次の症状でデバイスを認識できませんでした:
sane-find-scanner
libusb:020:026 に USB スキャナー (vendor=0x04b8 [EPSON]、product=0x0128 [EPSON Scanner]) が見つかりました
scanimage -L
スキャナーは識別されませんでした。
ルートとしても取得しました
# /opt/local/bin/scanimage -T -d epson2:libusb:020:026
scanimage: デバイス epson2:libusb:020:026 のオープンに失敗しました: リソースへのアクセスが拒否されました
このスキャナーの MacOS ツールは機能していたので、USB ケーブルを接続すると、次のようなプロセスが開始されることがわかりました。
tail /var/log/system.log
11 月 23 日 23:01:47 ホスト カーネル [0]: 348238.593685 EPSON スキャナー @ 14200000: AppleUSBDevice::waitForInterfacesGated: _interfacesMatched を待っているタイムアウト
11 月 23 日 23:01:47 ホスト EPSON スキャナー [86324]: --> HandleMessageFromICDD
11 月 23 日 23:01:47 ホスト EPSON スキャナー [86322]: --> HandleMessageFromICDD
11 月 23 日 23:01:47 ホスト EPSON スキャナー [86323]: --> HandleMessageFromICDD
このプロセスは USB デバイス上でスクワットしていたことが判明したため、libusb はアクセスできませんでした。(場合によっては、バックグラウンド ユーザーの名前でプロセスが開始され、高速ユーザー スワッピングでアクティブではありません):
ps aux | grep EPSON
ユーザー名 86323 0.1 0.1 2582644 22072 ?? S 11:01pm 0:00.21 /Library/Image Capture/Devices/EPSON Scanner.app/Contents/MacOS/EPSON Scanner
プロセスを強制終了すると、sane が正常に動作し、 xsaneImage Capture
を再び使用できるようになります。
scanimage -L
デバイス「epson2:libusb:020:026」は Epson GT-X700 フラットベッド スキャナです
回避策はありますが、イメージ キャプチャが確認なしに USB デバイスを占有するのを防ぐにはどうすればよいでしょうか?
その他の libusb の問題については、カーネル拡張機能をアンロードするためのヒントがいくつかありますが、この問題については、 kextstatは、スキャナーをプラグインする前後の拡張機能に違いを示しません。