Skip to content
システム

Ubuntuでスキャナーが検出されませんか?まずSANEを診断してください

Avatar illustré de Julien Macé 1 min read
Scanner USB ouvert et câble contrôlé devant un terminal Linux pendant un diagnostic SANE sous Ubuntu
Diagnostic d’un scanner non détecté sur Ubuntu

スキャナーを接続し、ドキュメントスキャナーを開くと、デバイスが表示されません。ランダムに見つけたドライバーをインストールする前に、問題の切り分けを行う必要があります:Ubuntuはデバイスを認識していますか? SANEはそれを認識していますか?それともアプリケーションがスキャナーのリストを受信していないだけですか?

以下の診断は、これらのレイヤーを順に追います。各コマンドは、USBスキャナーでもネットワークモデルでも、Ubuntu 22.04または24.04の環境で次のステップを選択するために使用されます。

LinuxターミナルでのSANE診断中に見られる、接続されたUSBスキャナーとケーブル
診断は、USB、SANE、およびアプリケーションの認識を分けるところから始まります。

ハードウェアの問題とSANEの問題を切り分ける

最初にUSBスキャナーを確認します。コマンドlsusbは、USBバスを直接照会します。これにより、システムがハードウェアレベルでデバイスを認識しているか確認できます。デバイスとUSBポートをより正確に特定する必要がある場合は、LinuxでのUSBポートのリストガイドを参照してください。

lsusb

スキャナーの製造元またはモデルに対応する行が表示されると、USB接続がカーネルによって認識されていることが示されます。デバイスを接続しても何も変化がない場合は、別のポートを試すか、USBハブを取り外してケーブルを確認してください。この時点では、ドキュメントスキャナーとSANEはまだ疑われるべきではありません。

次に、SANEツールによる検出を確認します:

sane-find-scanner

sane-find-scannerは、SCSIおよびUSBスキャナーとそのデバイスファイルを検索します。ここでの検出は、デバイスがハードウェアレベルでアクセス可能であることを確認します。ただし、適切なSANEバックエンドが存在することを保証するものではありません。 sane-find-scannerのUbuntu文書は、デバイスが利用可能なバックエンドがなくても検出される可能性があることを明記しています。

三番目の確認は、アプリケーションによって使用されるSANEレイヤーを問いただします:

scanimage -L
結果 解説 取るべき次のステップ
lsusbが何も表示しない 問題はSANEの前にあります:ケーブル、ポート、電源、またはUSBデバイスにあります。 接続を修正してからコマンドを再実行します。
lsusbとsane-find-scannerがデバイスを認識するが、scanimage -Lが空のまま ハードウェアは反応しますが、おそらくSANEが適切なバックエンドを持っていないか、デバイスへのアクセスがブロックされています。 バックエンドとパーミッションの診断に進みます。
scanimage -Lがスキャナーを表示する SANEがアプリケーションに利用可能なデバイスを提供しています。 バックエンドをscanimage -Tでテストし、次にドキュメントスキャナーを開きます。

ネットワークスキャナーの場合、lsusbは何も提供しません。スキャナーは電源が入れられ、コンピューターと同じローカルネットワークに接続されており、クライアント間の隔離がないことを確認する必要があります。

Ubuntuツールをインストールして確認する

最小インストールでは、診断コマンドやアプリケーションが欠けていることがあります。これらのレイヤーに必要なUbuntuパッケージをインストールします:

sudo apt update
sudo apt install sane-utils simple-scan

sane-utilsは特にscanimageやsane-find-scannerを提供します。simple-scanはドキュメントスキャナーをインストールします。これらのパッケージのインストールはすべてのスキャナー用のユニバーサルドライバーを提供するものではありません。診断ツールの準備を行いますが、その後の互換性はSANEバックエンドと使用するモデルに依存します。

アクティブなリポジトリで提供されるパッケージのバージョンを確認します:

apt policy sane-utils simple-scan

出力には、InstalledとCandidateのバージョンが表示されます。インストールされていない候補バージョンがある場合は、そのパッケージが利用可能ですがインストールされていないことを意味します。候補が空である場合は、リポジトリやAPTの設定に問題があることを示唆します。この場合、サードパーティパッケージを探す前にUbuntuのソースを確認してください。

sane-utilsがインストールされている場合は、scanimage -Lを再実行します。デバイスが表示されれば、ソフトウェアの基盤が整っていることになります。その場合は、システムを無駄に変更するのではなく、ドキュメントスキャナーに集中できます。

sane-find-scannerがデバイスを見つけ、scanimageが見つけない場合

この違いは、USB検出が動作しているが、SANEがスキャナーを使用できていないことを示しています。まずはバックエンドを直接テストしてみます:

scanimage -T

scanimage -TはSANEバックエンドのテストを行います。テストが成功すると、SANEレイヤーは正しく応答します。scanimage -Lがそれでも空のままの場合、バックエンドから返されるリストが不完全な可能性があります。特にネットワークデバイスに対してはその傾向があります。 scanimageのマニュアルページは、デバイスリストとバックエンドのテストの違いを説明しています。

SANEライブラリローダーのメッセージを一時的に増やすことができます:

SANE_DEBUG_DLL=3 scanimage -L

このコマンドは、バックエンドの読み込みに関する追加情報を表示します。欠落しているライブラリエラー、アクセスできない設定ファイル、または無視されたバックエンドを探してください。このログレベルは一時的な診断に役立ちますが、何も修正せずにセッションに永続的に設定しておくべきではありません。

ログがバックエンドの不足を示している場合は、まずデバイスの正確なモデルとSANEとの互換性を確認します。一部の製造業者は公式パッケージを配布していますが、その出所、Ubuntuのバージョン、アーキテクチャを確認してからインストールを行ってください。検索結果からDEBファイルを提供されているからといって、未知のリポジトリを追加してはいけません。

バックエンドは読み込まれているがデバイスが見つからない場合は、パーミッションに移ります。lsusbが表示するデバイスは、ユーザーセッションからは無効なこともあります。

USBパーミッションを適切に修正する

権限を変更せずにUSBデバイスファイルを観察します:

ls -l /dev/bus/usb/*/*

表示されたエントリは、バスのデバイスに対応します。所有者、グループ、パーミッションビットによって、あなたのセッションがアクセス可能かどうかを確認できます。scanimageやSANEログにパーミッションエラーが表示されるとこの可能性を検証できますが、スキャナーがリストから欠落しているだけでは十分ではありません。

スキャナーを取り外し、数秒待ってからコンピュータに直接再接続します。その後、次のコマンドを再実行します:

lsusb
sane-find-scanner
scanimage -L

この再接続により、/dev/bus/usb内のファイルが再作成され、デバイスに適用されたudevルールを確認できます。再接続後または特定のセッション内でのみアクセスが機能する場合は、実際のアイデンティティとセッションに関連付けられたグループを確認してください:

id
groups

グループ変更は再ログイン後に反映されますが、無条件にユーザーをscannerという名前のグループに追加することは信頼できる方法ではありません。このグループが存在しないか、デバイスルールで使用されていないか、バックエンドが異なる可能性があります。USBデバイスにchmod 666でグローバル権限を与えてはいけません。

さらに、Ubuntuまたは製造元が提供するudevルールと、実際のパーミッションを比較します。Linuxのパーミッション管理の原則がここにも適用されます:ターゲットルールを修正し、次に新しいセッションを開いて、通常のユーザーでアクセスをテストします。

ネットワークスキャナー:SANE、AirScan、およびmDNSディスカバリー

ネットワークスキャナーは、lsusbに表示されなくても機能することがあります。Ubuntuは、ローカルネットワーク上のeSCL/AirScanまたはWSDサービスを検出する必要があります。AirScanバックエンドとAvahiサービスをインストールします:

sudo apt update
sudo apt install sane-airscan avahi-daemon

mDNSディスカバリーサービスがアクティブであることを確認します:

systemctl is-active avahi-daemon

期待される応答はactiveです。応答がinactive、failed、またはサービスが存在しない場合は、ネットワーク検出をテストする前に修正が必要なステップがあります。

次に、検出可能なAirScanデバイスを照会します:

airscan-discover

このコマンドは、見つかったサービスとそのタイプ、アドレスを表示することがあります。空のリストはスキャナーが互換性がないことを証明するものではありません。ゲストネットワーク、Wi-Fiの隔離、ファイアウォール、非アクティブなAvahi、または別のVLANに配置されているスキャナーを示す可能性があります。

Ubuntuで使用されているネットワークプロファイルを確認し、コンピューターがゲストネットワークに接続されていないことを確認します:

nmcli connection show --active
nmcli device status

私たちのガイド<あ href="https://www.linuxencaja.net/nmcli-linux-modifier-profil-reseau/">nmcliでのネットワークプロファイルの変更は、アクティブな接続を確認するのに役立ちます。スキャナーとコンピュータは同じLAN上で通信できる必要があります。mDNSディスカバリーは、ネットワーク上のアナウンスを利用しているため、VLANや特定のアクセスポイントの構成を越えることはありません。

この確認が完了したら、再び:

scanimage -L

ネットワークスキャナーが表示される場合、SANEはバックエンドとディスカバリーサービスを見つけました。プロジェクトsane-airscanは、eSCL/AirScanおよびWSDネットワークスキャナーをサポートし、自動検出または手動設定が可能です。自動検出が失敗した場合にスキャナーのIPアドレスが知られている場合、バックエンドの手動設定についてのドキュメントを参照してください。デバイス名やURLを自作しないでください。

ドキュメントスキャナーでの確認

scanimage -L がスキャナーをリストする場合は、アプリケーションを起動します:

simple-scan

ドキュメントスキャナーで表示されるリストは、SANEによって提供されるデバイスに一致する必要があります。簡単なスキャンを実行し、プレビューが読み込まれること、書類が読み取れること、選択したフォーマットでの保存が機能することを確認します。

  • USBがlsusbに表示されない: まずケーブル、ポート、または電源を修正する。
  • USBは表示されるがscanimage -Lにはない: バックエンド、SANEログ、パーミッションを確認する。
  • ネットワークスキャナーがairscan-discoverに表示されない: Avahi、同じLAN、Wi-Fiの隔離を確認する。
  • スキャナーがリストに表示されるがアプリケーションがエラーを表示する: scanimage -Tをテストし、その後ユーザーセッションでドキュメントスキャナーを再起動する。

scanimage -Lがスキャナーをリストし、simple-scanが管理者権限なしで完全なスキャンを実行する条件が整ったら、確認が完了です。その後、実際に使用される文書で最後のスキャンを実行し、保存されたファイルを確認してください。

Share Facebook X WhatsApp LinkedIn Pinterest Reddit Email