2014/02/09

Epson DS-510をUbuntuで使う


Epson DS-510用ドライバのインストール


Epson DS-510が届いたので、早速セイコーエプソン株式会社が提供するLinuxドライバから*.debなファイルをダウンロードしてきた。
しかし、Ubuntu10.04向けのパッケージのため依存するパッケージの一部(libhal1, libudev0, hal)が見つからず、そのままでは13.10な環境には入らないようだ。

そのため、ソースファイルからdebパッケージを作りなおすことにした。

必要なパッケージのインストール


deb作成に必要なもの、コンパイルに必要なもの等いろいろあるが、下記あたりをインストール。

  • build-essential
  • debhelper
  • devscripts
  • lintian
  • dh-make
  • cdbs
  • libltdl-dev
  • libudev-dev
  • libusb-1.0-0-dev
  • libgtkmm-2.4-dev
  • libsane-dev
  • libjpeg-dev
  • libtiff-dev
  • libbz2-dev
  • libz-dev
  • libboost-all-dev (必要なもののみ入れればいいのだが、面倒だったので全部まとめて入れた)

ダウンロード


ダウンロードするのは下記のファイル。
  • imagescan_3.4.0.orig.tar.gz
  • imagescan_3.4.0-1epson4ubuntu10.04.debian.tar.gz

前者を展開するとutsushi-0.4.0というディレクトリができる。
しかし、ディレクトリ名がパッケージファイル名になるので、imagescan-3.4.0に変更しておく。
また、後者はdebパッケージを作る際に必要なファイルなので、imagescan-3.4.0の中に置いておく(imagescan-3.4.0/debian)。

buildに向けた修正


本当はソースファイルのあるディレクトリでdebuild -uc -us -bとするだけでバイナリの作成まで出来るはず… なのだけど、そのままでは通らなかったのでいくつか修正。

debian/control


13.10にはlibhal-devというパッケージが存在しない。
そのため、6行目のBuild-Depends:に記載されているlibhal-devを削除。
同様に、halというパッケージも存在しないので、11行目のDepends:からhalを削除。

debian/rules


デフォルトではソースファイル内のBoostをコンパイルして利用するようだが、スレッド関連でエラーが出てコンパイルに失敗した。
そのため、Boostはソースファイル内のものではなくUbuntuで提供されているライブラリを利用する。
ライブラリを使用するために20行目あたりに下記を追記。

DEB_CONFIGURE_EXTRA_FLAGS += --with-boost-system=boost_system
DEB_CONFIGURE_EXTRA_FLAGS += --with-boost-filesystem=boost_filesystem
DEB_CONFIGURE_EXTRA_FLAGS += --with-boost-iostreams=boost_iostreams
DEB_CONFIGURE_EXTRA_FLAGS += --with-boost-program-options=boost_program_options
DEB_CONFIGURE_EXTRA_FLAGS += --with-boost-regex=boost_regex
DEB_CONFIGURE_EXTRA_FLAGS += --with-boost-thread=boost_thread
DEB_CONFIGURE_EXTRA_FLAGS += --with-boost-unit-test-framework=boost_unit_test_framework

configureスクリプト

rulesにオプションを適切に指定していても、なぜか下記のエラーが出る。
configure: error: Could not link against boost_unit_test_framework !
いろいろ試行錯誤はしてみたものの解決できなかった。
ライブラリそのものはあるので問題ないはず、ということで(本当はよくないのだろうけど)このエラーを出力している19,966行目あたりを修正して、強制的に通してしまう。

変更前:

if test "x$link_unit_test_framework" != "xyes"; then
 as_fn_error "Could not link against $ax_lib !" "$LINENO" 5
fi


変更後:

if test "x$link_unit_test_framework" != "xyes"; then 
 #as_fn_error "Could not link against $ax_lib !" "$LINENO" 5
 BOOST_UNIT_TEST_FRAMEWORK_LIB="-lboost_unit_test_framework"
fi


debパッケージ作成&インストール


debuild -uc -us -bを実行すると、一つ上のディレクトリにimagescan_3.4.0-1epson4ubuntu10.04_xxx.debが作成される。
これを実行し、Ubuntuソフトウェアセンターからインストールを実行。

これにより、/usr/bin/imagescan(および関連するファイル)がインストールされる。

使えるかどうか確認


DS-510を電源ON&USBで接続し、認識するか確認。

確認その1:imagescan
$ imagescan list
usb:esci:/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-4/1-4:1.0


確認その2:SANE
$ sane-find-scanner
...
found USB scanner (vendor=0x04b8 [EPSON], product=0x014c [EPSON DS-510]) at libusb:001:005
...
$ scanimage -L
device `imagescan:usb:esci:/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-4/1-4:1.0' is a EPSON EPSON_DS-510


スキャン


xsanesimple-scanといったSANEフロントエンドを使ってスキャン。


参考

0 件のコメント:

コメントを投稿