Ubuntuの64BitでGT-9400UFを使えるように色々とやってみたがうまく行かないので、32BIt版のRaspberry Pi Desotop for PC(bullseye)で使えるようにとやってみました。
※個人用のメモなので間違いが有るかも?
|
GT-9400UF, Linux Driver
|
gcc 3.4以降用の2番と4番目をダウンロードします。
※Linux版のChrome、chromiumでは安全で無いとのことでダウンロードボタンが効きません。Windows版のChromeでは注意喚起がありますが、メニューから保存可能です。ダウンロードリンクもコピー出来たので、下記に記します。※※自己責任!
フォルダー「GT-9400UF」作成し、そこで作業します。
md5チェックサムの計算
$ md5sum *.rpm
349715562010b0905b0a2aa6c758fb85 iscan-2.10.0-1.c2.i386.rpm
f76725766f44debe3f3fec06d0e2023b iscan-plugin-gt-9400-1.0.0-1.c2.i386.rpm
「Image Scan! for Linux 操作ガイド」(userg_revG_j.pdf)には下記が書いてあります。
Image Scan! for Linux を使用するコンピュータには、SANE パッケージ バージョン 1.0.3 以降がインストールされている必要があります。
SANEはRaspberry Pi Desotop for PCにインストール済みで下記コマンドでバージョン確認が可能です。
$ scanimage -V
scanimage (sane-backends) 1.0.31-debian; backend version 1.0.31
下記を参照し、iscan ソフトウェア パッケージで root 以外のユーザーが USBスキャナーにアクセスできるようにudev ルールを作成するファイルを編集します。
gccインストールの確認
$ apt show gcc
Package: gcc
Version: 4:10.2.1-1
Priority: optional
Build-Essential: yes
Section: devel
Source: gcc-defaults (1.190)
Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
Installed-Size: 56.3 kB
Provides: c-compiler, gcc-i686-linux-gnu (= 4:10.2.1-1)
Depends: cpp (= 4:10.2.1-1), gcc-10 (>= 10.2.1-3~)
Recommends: libc6-dev | libc-dev
Suggests: gcc-multilib, make, manpages-dev, autoconf, automake, libtool, flex, bison, gdb, gcc-doc
Conflicts: gcc-doc (<< 1:2.95.3)
Tag: devel::compiler, devel::lang:c, devel::library, implemented-in::c,
interface::commandline, role::devel-lib, role::metapackage,
role::program, suite::gnu, works-with::software:source
Download-Size: 5,244 B
APT-Manual-Installed: no
APT-Sources: http://deb.debian.org/debian bullseye/main i386 Packages
Description: GNU C コンパイラ
これは GNU C コンパイラです。移植性に優れ、最適化を行う C 言語用コンパイラ
です。
.
本パッケージは、デフォルトの GNU C コンパイラを提供する依存パッケージです。
alienのインストールとバージョン確認、使い方
$ sudo apt install alien
$ alien --version
alien version 8.95.4
$ alien --help
Usage: alien [options] file [...]
file [...] Package file or files to convert.
-d, --to-deb Generate a Debian deb package (default).
Enables these options:
--patch=<patch> Specify patch file to use instead of automatically
looking for patch in /var/lib/alien.
--nopatch Do not use patches.
--anypatch Use even old version os patches.
-s, --single Like --generate, but do not create .orig
directory.
--fixperms Munge/fix permissions and owners.
--test Test generated packages with lintian.
-r, --to-rpm Generate a Red Hat rpm package.
--to-slp Generate a Stampede slp package.
-l, --to-lsb Generate a LSB package.
-t, --to-tgz Generate a Slackware tgz package.
Enables these options:
--description=<desc> Specify package description.
--version=<version> Specify package version.
-p, --to-pkg Generate a Solaris pkg package.
-i, --install Install generated package.
-g, --generate Generate build tree, but do not build package.
-c, --scripts Include scripts in package.
--target=<arch> Set architecture of the generated package.
-v, --verbose Display each command alien runs.
--veryverbose Be verbose, and also display output of run commands.
-k, --keep-version Do not change version of generated package.
--bump=number Increment package version by this number.
-h, --help Display this help message.
-V, --version Display alien's version number.
$ rpm --version
RPM version 4.16.1.2
debuildインストール
$ debuild
bash: debuild: コマンドが見つかりません
$ devscripts
bash: devscripts: コマンドが見つかりません
$ debuild --version
This is debuild, from the Debian devscripts package, version 2.21.3+deb11u1
This code is copyright 1999-2003 by Julian Gilbey <jdg@debian.org>,
all rights reserved.
Based on a shell-script program by Christoph Lameter.
This program comes with ABSOLUTELY NO WARRANTY.
You are free to redistribute this code under the terms of the
GNU General Public License, version 2 or later.
$ debuild --help
First usage method:
debuild [<debuild options>] -- binary|binary-arch|binary-indep|clean ...
to run debian/rules with given parameter(s). Options here are
--no-conf, --noconf Don't read devscripts config files;
must be the first option given
--rootcmd=<gain-root-command>, -r<gain-root-command>
Command used to become root if debuild
not setuid root; default=fakeroot
--preserve-envvar=<envvar>, -e<envvar>
Preserve environment variable <envvar>
--preserve-env Preserve all environment vars (except PATH)
--set-envvar=<envvar>=<value>, -e<envvar>=<value>
Set environment variable <envvar> to <value>
--prepend-path=<value> Prepend <value> to the sanitised PATH
-d Skip checking of build dependencies
-D Force checking of build dependencies (default)
--check-dirname-level N
How much to check directory names:
N=0 never
N=1 only if program changes directory (default)
N=2 always
--check-dirname-regex REGEX
What constitutes a matching directory name; REGEX is
a Perl regular expression; the string `PACKAGE' will
be replaced by the package name; see manpage for details
(default: 'PACKAGE(-.+)?')
--help, -h display this message
--version show version and copyright information
Second usage method:
debuild [<debuild options>] [<dpkg-buildpackage options>]
[--lintian-opts <lintian options>]
to run dpkg-buildpackage and then run lintian on the resulting
.changes file.
Additional debuild options available in this case are:
--lintian Run lintian (default)
--no-lintian Do not run lintian
--[no-]tgz-check Do [not] check for an .orig.tar.gz before running
dpkg-buildpackage if we have a Debian revision
(Default: check)
--username Run debrsign instead of debsign, using the
supplied credentials
--dpkg-buildpackage-hook=HOOK
--clean-hook=HOOK
--dpkg-source-hook=HOOK
--build-hook=HOOK
--binary-hook=HOOK
--dpkg-genchanges-hook=HOOK
--final-clean-hook=HOOK
--lintian-hook=HOOK
--signing-hook=HOOK
--post-dpkg-buildpackage-hook=HOOK
These hooks run at the various stages of the
dpkg-buildpackage run. For details, see the
debuild manpage. They default to nothing, and
can be reset to nothing with --foo-hook=''
--clear-hooks Clear all hooks
For available dpkg-buildpackage and lintian options, see their
respective manpages.
Default settings modified by devscripts configuration files:
(none)
パッケージの検索コマンドラインツールをインストール、アップデート
$ sudo apt install -y apt-file
$ sudo apt-file update
.rpmから.debパッケージへの変換
$ cd GT-9400UF
$ sudo alien -g --scripts iscan-plugin-gt-9400-1.0.0-1.c2.i386.rpm
Directories iscan-plugin-gt-9400-1.0.0 and iscan-plugin-gt-9400-1.0.0.orig prepared.
$ sudo alien -g --scripts iscan-2.10.0-1.c2.i386.rpm
Directories iscan-2.10.0 and iscan-2.10.0.orig prepared.
$ cd ..
ここで iscan-2.10.0/usr/lib/iscan/make-udev-rules の編集をする
$ sudo nano iscan-2.10.0/usr/lib/iscan/make-udev-rules
'SYSFS' を'ATTRS' に置き換えは置換で実施、コメントを含めて5箇所あった。
'usb_device' を 'usb' に置き換え、一箇所。
もう一つは下記のようにTEMPLETEの行を編集。
# Before
TEMPLATE='ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="HHHH", MODE="0666"'
# After
TEMPLATE='ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="HHHH", MODE="0666"'
diffで編集した新旧ファイルの差分を確認
$ diff iscan-2.10.0/usr/lib/iscan/make-udev-rules iscan-2.10.0.orig/usr/lib/iscan/make-udev-rules
26,27c26,27
< TEMPLATE='ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="HHHH", MODE="0666"'
< SUB_SYST='usb'
---
> TEMPLATE='SYSFS{idVendor}=="04b8", SYSFS{idProduct}=="HHHH", MODE="0666"'
> SUB_SYST='usb_device'
57c57
< # does assume that ATTRS{idVendor} is on the first line.
---
> # does assume that SYSFS{idVendor} is on the first line.
61c61
< /ATTRS{idVendor}=\{1,2\}"04[bB]8"/{
---
> /SYSFS{idVendor}=\{1,2\}"04[bB]8"/{
67c67
< | sed 's/\(ATTRS{idProduct}=\{1,2\}\)"[[:xdigit:]]\{4\}"/\1"HHHH"/'
---
> | sed 's/\(SYSFS{idProduct}=\{1,2\}\)"[[:xdigit:]]\{4\}"/\1"HHHH"/'
32bitなので、Architectureにamd64の追加はしていない。
debuildを実施
$ cd iscan-2.10.0
$ sudo debuild -uc -us -b
$ cd ..
$ cd iscan-plugin-gt-9400-1.0.0
$ sudo debuild -uc -us -b
$ cd ..
iscan_2.10.0-2_i386.buildのerror
dpkg-shlibdeps: error: cannot find library libusb-0.1.so.4 needed by debian/iscan/usr/lib/sane/libsane-epkowa.so.1.0.15 (ELF format: 'elf32-i386' abi: '0101000300000000'; RPATH: '')
dpkg-shlibdeps: error: cannot find library libpangox-1.0.so.0 needed by debian/iscan/usr/bin/iscan (ELF format: 'elf32-i386' abi: '0101000300000000'; RPATH: '')
dpkg-shlibdeps: error: cannot find library libusb-0.1.so.4 needed by debian/iscan/usr/bin/iscan (ELF format: 'elf32-i386' abi: '0101000300000000'; RPATH: '')
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/iscan/usr/bin/iscan was not linked against libpango-1.0.so.0 (it uses none of the library's symbols)
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/iscan/usr/lib/sane/libsane-epkowa.so.1.0.15 debian/iscan/usr/bin/iscan were not linked against libnsl.so.1 (they use none of the library's symbols)
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/iscan/usr/bin/iscan was not linked against libgmodule-2.0.so.0 (it uses none of the library's symbols)
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/iscan/usr/bin/iscan was not linked against libatk-1.0.so.0 (it uses none of the library's symbols)
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/iscan/usr/bin/iscan was not linked against libgdk_pixbuf-2.0.so.0 (it uses none of the library's symbols)
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/iscan/usr/lib/sane/libsane-epkowa.so.1.0.15 debian/iscan/usr/bin/iscan were not linked against libjpeg.so.62 (they use none of the library's symbols)
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/iscan/usr/lib/sane/libsane-epkowa.so.1.0.15 debian/iscan/usr/bin/iscan were not linked against libieee1284.so.3 (they use none of the library's symbols)
dpkg-shlibdeps: warning: package could avoid a useless dependency if debian/iscan/usr/bin/iscan was not linked against libpangoxft-1.0.so.0 (it uses none of the library's symbols)
dpkg-shlibdeps: error: cannot continue due to the errors listed above
不足のライブラリーを検索してインストール
$ apt-file search libusb-0.1.so.4
libusb-0.1-4: /lib/i386-linux-gnu/libusb-0.1.so.4
libusb-0.1-4: /lib/i386-linux-gnu/libusb-0.1.so.4.4.4
$ sudo apt install libusb-0.1-4
$ apt-file search libpangox-1.0.so.0
libpangox-1.0-0: /usr/lib/i386-linux-gnu/libpangox-1.0.so.0
libpangox-1.0-0: /usr/lib/i386-linux-gnu/libpangox-1.0.so.0.0.0
$ sudo apt install libpangox-1.0-0
再度、前記のdebuildを実施してエラーが無くなることを確認する
ファイルマネージャーで「iscan_2.10.0-2_i386.deb」選択し、右ボタンの「パッケージのインストール」を実施
インストール後は端末で「iscan」を起動すれば、ドライバーを必要としないGT-9300UFは使用可能になる。但し、保存形式は「pnm」のみ。「png」は選択可能だがlibpng warning発生。
$ iscan
libpng warning: Application built with libpng-1.2.7 but running with 1.6.37
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
ファイルマネージャーで「iscan-plugin-gt-9400_1.0.0-2_i386.deb」選択し、右ボタンの「パッケージのインストール」を実施
|
iscan_2.10.0-2をインストール |
この状態で端末から「iscan」で起動すればGT-9300UFは使用可能になる。
|
GT-9400UFのプラグインをインストール |
$ 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).
$ sudo scanimage -L
Created directory: /var/lib/snmp/cert_indexes
device `epkowa:libusb:001:007' is a Epson GT-9400 flatbed scanner
$ sudo scanimage -L
device `epkowa:libusb:001:007' is a Epson GT-9400 flatbed scanner
$ sane-find-scanner | grep 04b8
could not open USB device 0x04b8/0x0116 at 001:007: Access denied (insufficient permissions)
$ sudo sane-find-scanner | grep 04b8
found USB scanner (vendor=0x04b8 [EPSON], product=0x0116 [EPSON Scanner]) at libusb:001:007
※使用可能になった後はsudo不要
$ scanimage -L
device `epkowa:libusb:003:010' is a Epson GT-9400 flatbed scanner
$ sane-find-scanner | grep 04b8
found USB scanner (vendor=0x04b8 [EPSON], product=0x0116 [EPSON Scanner]) at libusb:003:010
GT-9400UFのプラグインをインストールする前に下記を行う必要があるかも?
- ドライバーファイルは iscan-plugin-gt-9400-1.0.0/usr/share/iscan/esfw32.bin
ドライバーファイルを /usr/share/sane/epson2 へコピー- /usr/shere/iscan/esfw32.bin コピーされている事を確認する
- GT-9400UFのバックエンドの設定ファイルは /etc/sane.d/epson2.conf
- $ sudo nano /etc/sane.d/epson2.conf
- /etc/hotplug/usb/iscan.usermap は確認のみ
$ sudo pcmanfm ※管理者権限でファイルマネージャーを起動
--
Add / Remove SoftwareでSANEを検索し、xsane-0.999-10とsimple-scan-3.38.1-1をインストール。gimpをインストールすれば、jpeg,png,PDF等で保存可能になる。XSaneでもスキャン後に任意のファイル形式で保存可能。
|
gimp 画像の生成 > XSane |
--
設定 > Main Menu Editorでグラフィックスに登録
Command: /usr/bin/iscan
Name、Commentは適当に登録。必要ならアイコンを変更
--
Image Scan! for Linuxではjpeg形式の保存を選択できないが、Add Remove Softwareで「libjpeg-turbo JPEG ライブラリの開発用ファイル」をインストールすれば、jpegでの保存が可能になる。
|
Add Remove Software |