私はBrother 7055プリンタ/スキャナとRaspberry Piを持っており、両方ともプリントサーバーとスキャンサーバーに切り替えたいと思います。残念ながら、BrotherはARMドライバを提供していません。私が出会ったこれRaspberry PiのQEMUエミュレーションに関するブログ記事では、実際にこの方法を使用してx86プリンタドライバを正常にインストールし、CUPSで共有しましたが、すべてが正常でした。これでスキャナーを操作しようとしていますが、Brotherソフトウェアはエラーなくインストールされましたが、実行するとスキャナーは表示されません。scanimage -L
スキャナーが接続されました:
dporobic@raspberrypi:~ $ lsusb
Bus 001 Device 005: ID 04f9:0248 Brother Industries, Ltd DCP-7055 scanner/printer
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
しかし、スキャナーを見ることはできません:
dporobic@raspberrypi:~ $ scanimage -L
No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).
sane-find-scannerは何かを見ますが、兄弟は自分のsaneドライバを使用しているため動作できません。
porobic@raspberrypi:~ $ sudo sane-find-scanner
# sane-find-scanner will now attempt to detect your scanner. If the
# result is different from what you expected, first make sure your
# scanner is powered up and properly connected to your computer.
# No SCSI scanners found. If you expected something different, make sure that
# you have loaded a kernel SCSI driver for your SCSI adapter.
# Also you need support for SCSI Generic (sg) in your operating system.
# If using Linux, try "modprobe sg".
found USB scanner (vendor=0x04f9, product=0x0248) at libusb:001:005
found USB scanner (vendor=0x0424, product=0xec00) at libusb:001:003
# Your USB scanner was (probably) detected. It may or may not be supported by
# SANE. Try scanimage -L and read the backend's manpage.
# Not checking for parallel port scanners.
# Most Scanners connected to the parallel port or other proprietary ports
# can't be detected by this program.
デバッグスキャンイメージは次の出力を提供し、Brother4 libをロードできないようです。
dporobic@raspberrypi:~ $ sudo SANE_DEBUG_DLL=255 scanimage -L
[sanei_debug] Setting debug level of dll to 255.
[dll] sane_init: SANE dll backend version 1.0.13 from sane-backends 1.0.24
[dll] sane_init/read_dlld: attempting to open directory `./dll.d'
[dll] sane_init/read_dlld: attempting to open directory `/etc/sane.d/dll.d'
[dll] sane_init/read_dlld: using config directory `/etc/sane.d/dll.d'
[dll] sane_init/read_dlld: considering /etc/sane.d/dll.d/libsane-extras
[dll] sane_init/read_config: reading dll.d/libsane-extras
[dll] sane_init/read_dlld: done.
[dll] sane_init/read_config: reading dll.conf
[dll] add_backend: adding backend `brother4'
[dll] sane_get_devices
[dll] load: searching backend `brother4' in `/usr/lib/arm-linux-gnueabihf/sane:/usr/lib/sane'
[dll] load: trying to load `/usr/lib/arm-linux-gnueabihf/sane/libsane-brother4.so.1'
[dll] load: dlopen()ing `/usr/lib/arm-linux-gnueabihf/sane/libsane-brother4.so.1'
**[dll] load: dlopen() failed (/usr/lib/arm-linux-gnueabihf/sane/libsane-brother4.so.1: cannot open shared object file: No such file or directory)**
[dll] sane_get_devices: found 0 devices
No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).
[dll] sane_exit: exiting
[dll] sane_exit: finished
libファイルがありますが、開いたりアクセスできないようです。
dporobic@raspberrypi:~ $ ls -l /usr/lib/arm-linux-gnueabihf/sane/ | grep brother
-rwxr-xr-x 1 root root 129696 Jan 8 11:08 libsane-brother4.so
-rwxr-xr-x 1 root root 129696 Jan 8 11:08 libsane-brother4.so.1
-rwxr-xr-x 1 root root 129696 Jan 8 11:08 libsane-brother4.so.1.0.7
libsane-brother4.so ライブラリの一部の依存関係が欠落している可能性がありますが、objdump -x を実行して動的セクションを表示すると、次のような出力が表示されます。 (私はobjdumpに慣れていないので、それを正しく説明できることを願っています。)
dporobic@raspberrypi:~ $ objdump -x /usr/lib/arm-linux-gnueabihf/sane/libsane-brother4.so | grep NEEDED
NEEDED libpthread.so.0
NEEDED libnsl.so.1
NEEDED libusb-0.1.so.4
NEEDED libm.so.6
NEEDED libdl.so.2
NEEDED libc.so.6
私のPiには次のライブラリがあるようです。そのうちの1つだけがARMバージョンでのみ利用可能で、i386バージョンでは利用できず、他のすべてのライブラリは両方のバージョンに含まれています。
dporobic@raspberrypi:~ $ sudo ldconfig -p | grep -E 'libpthread.so.0|libnsl.so.1|libusb-0.1.so.4|libm.so.6|libdl.so.2|libc.so.6'
libusb-0.1.so.4 (libc6,hard-float) => /lib/arm-linux-gnueabihf/libusb-0.1.so.4
libusb-0.1.so.4 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libusb-0.1.so.4
libpthread.so.0 (libc6,hard-float, OS ABI: Linux 2.6.32) => /lib/arm-linux-gnueabihf/libpthread.so.0
libpthread.so.0 (libc6, OS ABI: Linux 2.6.32) => /lib/i386-linux-gnu/libpthread.so.0
libnsl.so.1 (libc6,hard-float, OS ABI: Linux 2.6.32) => /lib/arm-linux-gnueabihf/libnsl.so.1
libnsl.so.1 (libc6, OS ABI: Linux 2.6.32) => /lib/i386-linux-gnu/libnsl.so.1
libm.so.6 (libc6,hard-float, OS ABI: Linux 2.6.32) => /lib/arm-linux-gnueabihf/libm.so.6
libm.so.6 (libc6, OS ABI: Linux 2.6.32) => /lib/i386-linux-gnu/libm.so.6
libdl.so.2 (libc6,hard-float, OS ABI: Linux 2.6.32) => /lib/arm-linux-gnueabihf/libdl.so.2
libdl.so.2 (libc6, OS ABI: Linux 2.6.32) => /lib/i386-linux-gnu/libdl.so.2
libc.so.6 (libc6,hard-float, OS ABI: Linux 2.6.32) => /lib/arm-linux-gnueabihf/libc.so.6
libc.so.6 (ELF, OS ABI: Linux 2.6.32) => /lib/i386-linux-gnu/libc.so.6
ただし、必要なライブラリがリストにないため、ロードされていない可能性があります。
dporobic@raspberrypi:~ $ sudo ldconfig -p | grep libsane-brother4.so
dporobic@raspberrypi:~ $
最初にBorrowr4 libがあります/usr/lib/sane
。このパスを追加し/etc/ld.so.conf.d/libsane-brother.conf
て実行しましたが、チェックイン時にのみsudo ldconfig
このライブラリを取得します。libsane.so.1
ldconfig -v
dporobic@raspberrypi:~ $ sudo ldconfig -v 2>/dev/null | grep brother -B1
/usr/lib/sane:
libsane.so.1 -> libsane-brother4.so.1.0.7
libsane-brother.so.1
ldキャッシュにlibを表示できません...
修正する
dlconfigと関係がないようです。私のopensuseコンピュータでは、スキャナは動作しており、libsane-brother.so.1 lib
Piのようにldconfigキャッシュには表示されませんが、libは問題なくロードされます。
dporobic@latitude:~> sudo ldconfig -v 2>/dev/null | grep -E 'sane|brother'
libksane.so.0 -> libksane.so.0.2.0
libsane.so.1 -> libsane.so.1.0.24
正しくロードされ、エラーはありません。
dporobic@latitude:~> sudo SANE_DEBUG_DLL=255 scanimage -L
[sanei_debug] Setting debug level of dll to 255.
[dll] sane_init: SANE dll backend version 1.0.13 from sane-backends 1.0.24
[dll] sane_init/read_dlld: attempting to open directory `./dll.d'
[dll] sane_init/read_dlld: attempting to open directory `/etc/sane.d/dll.d'
[dll] sane_init/read_dlld: opendir failed: No such file or directory
[dll] sane_init/read_config: reading dll.conf
[dll] add_backend: adding backend `brother4'
[dll] sane_get_devices
[dll] load: searching backend `brother4' in `/usr/lib64/sane'
[dll] load: trying to load `/usr/lib64/sane/libsane-brother4.so.1'
**[dll] load: dlopen()ing `/usr/lib64/sane/libsane-brother4.so.1'**
[dll] init: initializing backend `brother4'
[dll] init: backend `brother4' is version 1.0.1
[dll] sane_get_devices: found 1 devices
device `brother4:bus2;dev1' is a Brother DCP-7055 USB scanner
[dll] sane_exit: exiting
[dll] sane_exit: calling backend `brother4's exit function
[dll] sane_exit: finished
libsane-brother.so.1 lib
今の質問は、正しいルートでもSaneが開かない理由です。
注:これを実行すると、私のOpenSuseシステムに直接接続され、同じドライバがインストールされているのと同じスキャナが表示されるため、機能scanimage -L
する必要があります。ここで唯一の容疑者はPiです。
ベストアンサー1
昨年も同様の問題を解決しました。腕に(Arbian、Raspianと同じ)最初はこのコンピュータ(mfc 795cw)にqemu印刷の助けを借りてインストールしました。スキャナは機能しませんが、スキャンに失敗したドライバを適切なarm Linuxにインストールする必要があります。スキャン用のchroot環境を設定しました。 Brother Linuxドライバに関連する最新バージョンのLinuxが必要です。したがって、私はLubuntu 10.04を使用します。 lprを削除しないように注意してください。このchroot環境でBrother Linuxインストーラを実行する必要があります。次にarm-Linuxで印刷し、chroot i368 Linuxでスキャンします。 scanimageを使用してchrootを起動するためのスキャンスクリプトを設定しました(install -o bin、qemu、....)。