Raspberry Pi Scanning Server EPSON L3110

, , Leave a comment

Printer EPSON L3110 adalah printer & scanner USB yang berfungsi local melalui USB port. Membuat printer ini terhubung dengan home network dengan CUPS (=Common Unix Printer System) sehingga dapat di akses secara wireless sangatlah mudah. Namun lain halnya dengan membuat perangkat scannernya dapat dioperasikan dari network. Hal ini membutuhkan waktu panjang untuk research dan mencoba berkali-kali karena setup ini dilakukan di dalam linux, maka ada banyak hal yang mungkin terjadi. Resepnya adalah read – try – error – repeat.

Problem yang saya hadapi adalah kesulitan untuk scanning document yang dibutuhkan oleh anak-anak untuk mensubmit hasil PR gambar/artwork ke email guru-guru mereka selama melakukan home learning. Saya tidak ingin menjudge teknologi/pendekatan yang dipilih oleh sekolah tetapi hanya mencoba beradaptasi. Hasil akhir yang diharapkan adalah perangkat scanner dari EPSON L3110 dapat diakses dari local network baik oleh komputer dan utamanya HP. Sehingga perintah untuk scan document original dapat diberikan dari HP dan hasil scan dapat di save atau langsung kirim ke email dari HP. Cara ini memangkas banyak transit data yang dilakukan secara tradisional.

Sebelum melanjutkan tentang how-to, ada baiknya saya paparkan informasi tentang equipment, OS dan instalasi sebelumnya yang mungkin mempengaruhi proses instalasi dan hasil yang diharapkan.

  1. Raspberry Pi 2/3
  2. Raspbian Buster Lite + LXDE (fresh install)
  3. Autologin CLI
  4. CUPS installed
  5. SAMBA server running
  6. Printer shared ke home network (http://andidinata.com/2020/04/pi-print-server/)
  7. Static IP address (http://andidinata.com/2020/04/raspberry-pi-static-local-network-ip-address/)
  8. Writeable file system

Setup SANE Server

Install SANE (=Scanner Access Now Easy) & Konfigurasi Daemon

$ sudo apt-get install xinetd sane-utils

Edit /etc/default/saned menjadi:

# Set to yes to start saned 
RUN=yes 

# Set to the user saned should run as 
RUN_AS_USER=saned

lalu jalankan sane

$ sudo /etc/init.d/saned start

Ketik lsusb untuk melihat device yang terhubung dengan Raspberry Pi melalui USB. Catat USB ID dari printer, dalam contoh ini 04b8:1234.

$ lsusb
Bus 001 Device 004: ID 1a86:acbd  QinHeng Electronics HL-340 USB-Serial adapter
Bus 001 Device 006: ID 04b8:1234 Seiko Epson Corp.
Bus 001 Device 003: ID 0424:5678 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:0123 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0987 Linux Foundation 2.0 root hub

Check terlebih dahulu apabila sane daemon port sudah tersedia

$ sudo cat /etc/services | grep sane
sane-port 6566/tcp sane saned # SANE network scanner daemon

Tambahkan konfigurasi untuk sane-daemon

$ cd /etc/xinetd.d
$ sudo touch sane-daemon
$ which saned
/user/sbin/saned
$ sudo nano sane-daemon

File kosong, dan tambahkan:

service sane-port
            {
              socket_type = stream
              server = /usr/sbin/saned
              protocol = tcp
              user = saned
              group = saned
              wait = no
              disable = no
            }

Lakukan konfigurasi untuk saned agar dapat menerima koneksi dari network /etc/sane.d/saned.conf

#scan-client.somedomain.firm
192.168.0.1/24
#192.168.0.1
#[2001:db8:185e::42:12]
#[2001:db8:185e::42:12]/64

Sampai disini, lakukan reboot Raspberry Pi.

Install Driver EPSON Scanner

EPSON menyediakan driver scanner untuk arsitektur ARM 32 bit yang dapat didownload di http://support.epson.net/linux/en/imagescanv3.php .

Lakukan unpacking dari driver dan lakukan instalasi dengan menjalankan install.sh

Setelah instalasi selesai, lakukan konfigurasi /etc/imagescan/imagescan.conf agar scanner dapat diterima oleh network

[devices]

myscanner.udi = networkscan:esci://192.168.0.100:1856
myscanner.vendor = Epson
myscanner.model = EPSON L3110 Scanner
myscanner.name = EPSON L3110 Scanner

Konfigurasi sane agar hanya load driver EPSON saja yang ada di /etc/sane.d/dll.conf

Comment out (berikan #) pada semua list manufacturer dan kecualikan epson2

#net
#abaton
#agfafocus
#apple
#epson
epson2
#epsonds
#fujitsu
#gphoto2

Setelah itu lakukan konfirgurasi /etc/sane.d/epson2.conf . dalam file ini kita lakukan assignment koneksi dengan menambahkan 0x4b8 0x234. Angka 4b8 dan 234 adalah 3 digit terakhir pada USB ID pada proses sebelumnya.

#epson2.conf
#
# here are some examples for how to configure the EPSON2 $

# SCSI
scsi EPSON
# for the GT-6500:
#scsi "EPSON SC"

# Parallel port
#pio 0x278
#pio 0x378
#pio 0x3BC

# USB

# For libusb support for unknown scanners use the followi$
# usb <vendor ID> <product ID>
# e.g.:
usb 0x4b8 0x234

# Network
#
# net 192.168.1.123
net autodiscovery

Menambah user dan setting permission

Tambahkan user saned ke dalam group lp

$ sudo adduser saned lp

Membuat custom rule untuk udev

$ sudo nano /etc/udev/rules.d/99-custom.rules

dan tambahkan baris seperti dibawah ini:

ATTR{idVendor}=="04b8", ATTR{idProduct}=="1234", MODE="0666", GROUP="lp"

Sampai disini, lakukan reboot Raspberry Pi kembali

Setting socket service

Setelah proses boot selesai check terlebih dahulu apabila scanner sudah dapat dideteksi oleh Raspberry Pi.

$ scanimage -L
device `imagescan:esci:networkscan://192.168.0.100:1856' is a Epson EPSON L3110 Scanner
device `imagescan:esci:usb:/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3/1-1.3:1.0' is a EPSON L3110_Series

Untuk mengaktifkan service lakukan beberapa tahap berikut.

$ sudo systemctl enable saned.socket
Created symlink from /etc/systemd/system/sockets.target.wants/saned.socket to /lib/systemd/system/saned.socket.
$ sudo systemctl start saned.socket
$ sudo systemctl status saned.socket

Apabila semua berjalan lancar, maka hasil yang didapatkan adalah sebagai berikut.

● saned.socket - saned incoming socket
Loaded: loaded (/lib/systemd/system/saned.socket; enabled; vendor preset: enabled)
Active: active (listening) since Sun 2020-04-26 21:36:32 WIB; 8h ago
Listen: [::]:6566 (Stream)
Accepted: 0; Connected: 0;
Tasks: 0 (limit: 2200)
Memory: 100.0K
CGroup: /system.slice/saned.socket

Apr 26 21:36:32 piprintserver systemd[1]: Listening on saned incoming socket.

Hal tersebut menandakan bahwa koneksi aktif dan dalam posisi listening. Scanner EPSON L3110 yang terhubung dengan Raspberry Pi sudah dapat diakses dari network.

Client Setup

Windows

Software bundle EPSON Scan Smart tidak dapat mendeteksi SANE server. Namun ada beberapa software berikut ini dapat digunakan untuk mengakses Sane dari network yaitu SaneTwain, Swingsane dan SaneWinDS. Software SaneTwain dan Swingsane ini tidak berjalan sesuai harapan. SaneTwain hanya berjalan stabil di windows 32 bit, (WinXP) Tidak ada support untuk windows 64-bit. Jadi SaneTwain terkadang berhasil-terkadang tidak. Swingsane dapat berjalan dengan baik di Windows 7 64 bit, tetapi mode scan hanya black and white, meskipun scanning mode sudah disesuaikan menjadi color.

Software SaneWinDS dapat berjalan dengan baik meskipun selalu dalam versi Alpha (sepertinya tidak pernah diupdate).

Android

Scanner dapat diakses melalui smartphone Android (sejauh testing saat ini), dengan mendownload aplikasi InSane Scanner dan Sane Droid. Lakukan konfirguasi scanner dengan memasukkan IP Address ada setting. Dari percobaan saya dengan Android versi 10, aplikasi InSane Scanner lebih stabil dibandingkan Sane Droid meskipun rate Google Play dari InSane Scanner jauh lebih rendah dari Sane Droid.

Linux

Untuk menghubungkan scanner yang dapat diakses dengan network perlu sedikit setting saja. Sebagai contoh saya gunakan XSANE di Ubuntu 18.04 ARM 64-bit yang berjalan di Jetson Nano Developer Kit. Pertama install sane, sane-utils, libsane-extras dan xsane.

sudo apt-get install sane sane-utils libsane-extras xsane

Seperti pada konfigurasi backend (server), buat sane untuk load driver epson2 saja dengan mengedit /etc/sane.d/dll.conf. Karena kita hendak terhubung dengan epson scanner yang ada di network maka uncomment net juga

# The next line enables the network backend; comment it out if you don't
# need to use a remote SANE scanner over the network -- see sane-net(5)
# and saned(8) for details.
net
#abaton
#agfafocus
epson2
#avision

Karena ada dua driver yang diuncomment yaitu net dan epson2, maka sekarang kita lakukan juga konfigurasi driver ini masing masing. Pertama konfigurasi /etc/sane.d/net.conf

## saned hosts
# Each line names a host to attach to.
# If you list "localhost" then your backends can be accessed either
# directly or through the net backend.  Going through the net backend
# may be necessary to access devices that need special privileges.
192.168.0.100
::1
localhost
piprintserver

Kedua konfigurasi /etc/sane.d/epson2.conf dengan menambahkan tcp dan ip address

# For libusb support for unknown scanners use the following command
# usb <vendor ID> <product ID>
# e.g.:
# usb 0x4b8 0x110

# Network
# 
#net 192.168.0.100
tcp 192.168.0.100 6566
#net autodiscovery

Sampai disini kita sudah menghubungkan komputer client dengan scanner yang sudah berada di network. Untuk memastikannya gunakan perintah scanimage -L

$ scanimage -L
device `net:192.168.0.100:imagescan:esci:usb:/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3/1-1.3:1.0' is a EPSON L3110_Series

Berikut ini tampilan XSANE dan hasil scanningnya. XSANE merupakan software front end yang paling bagus dan lengkap. Jadi yang menggunakan Windows PC atau Laptop dianjurkan untuk menggunakan Android untuk mengakses scanner yang terhubung dengan sane server karena support windows frontend nya terbatas. Untuk pengguna Linux berbahagialah karena ada XSANE selain Android untuk scanning dengan scanner yang terhubung di network.

Terima kasih telah membaca dan mengikuti tutorial yang panjang dan melelahkan. Jika menemui masalah saat melakukannya, itu adalah hal yang wajar karena kita melakukan setup di Linux dan kondisi linux kita mungkin sudah berbeda (check kembali kondisi environment yang saya sebutkan diatas). Di bawah ini saya sertakan referensi yang saya gunakan apabila menemui kesulitan-kesulitan untuk dapat ditelaah lebih lanjut.

Demikian sharing untuk setup untuk merubah EPSON L3110 dari offline/usb scanner menjadi online/wireless scanner. Apabila sharing ini bermanfaat, mohon like dan share tulisan ini. Terima kasih.

Referensi:

“https://www.raspberrypi.org/forums/viewtopic.php?t=109169”

“https://www.raspberrypi.org/forums/viewtopic.php?t=245103”

“http://download.ebz.epson.net/man/linux/imagescanv3_e.html#sec7”

“https://wiki.debian.org/SaneOverNetwork”

“https://askubuntu.com/questions/1017311/what-is-a-masked-service”

“https://help.ubuntu.com/community/sane”

Facebook Comments
 

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.