Epson Stylus Office BX525WD - FreeBSD

Hardware info on main page.

History

2024-12-28: I created this page, and restored content from the old Google Sites site, via Wayback Machine.

2011-07-17: scanner - after upgrading my workstation to FreeBSD 8.2-stable, I can get gscan2pdf working again:

tingo@kg-v2$ uname -a
FreeBSD kg-v2.kg4.no 8.2-STABLE FreeBSD 8.2-STABLE #4: Sat Jul 16 02:07:14 CEST 2011     root@kg-v2.kg4.no:/usr/obj/usr/src/sys/GENERIC  amd64

and here is gscan2pdf: gscan2pdf --device epson2:net:10.1.161.8

tingo@kg-v2$ gscan2pdf --device epson2:net:10.1.161.8
Constant subroutine main::LC_CTYPE redefined at /usr/local/lib/perl5/5.10.1/Exporter.pm line 67.
 at /usr/local/bin/gscan2pdf line 160
Prototype mismatch: sub main::LC_CTYPE () vs none at /usr/local/lib/perl5/5.10.1/Exporter.pm line 67.
 at /usr/local/bin/gscan2pdf line 160
Constant subroutine main::LC_NUMERIC redefined at /usr/local/lib/perl5/5.10.1/Exporter.pm line 67.
 at /usr/local/bin/gscan2pdf line 160
Prototype mismatch: sub main::LC_NUMERIC () vs none at /usr/local/lib/perl5/5.10.1/Exporter.pm line 67.
 at /usr/local/bin/gscan2pdf line 160
Constant subroutine main::LC_TIME redefined at /usr/local/lib/perl5/5.10.1/Exporter.pm line 67.
 at /usr/local/bin/gscan2pdf line 160
Prototype mismatch: sub main::LC_TIME () vs none at /usr/local/lib/perl5/5.10.1/Exporter.pm line 67.
 at /usr/local/bin/gscan2pdf line 160
Constant subroutine main::LC_COLLATE redefined at /usr/local/lib/perl5/5.10.1/Exporter.pm line 67.
 at /usr/local/bin/gscan2pdf line 160
Prototype mismatch: sub main::LC_COLLATE () vs none at /usr/local/lib/perl5/5.10.1/Exporter.pm line 67.
 at /usr/local/bin/gscan2pdf line 160
Constant subroutine main::LC_MONETARY redefined at /usr/local/lib/perl5/5.10.1/Exporter.pm line 67.
 at /usr/local/bin/gscan2pdf line 160
Prototype mismatch: sub main::LC_MONETARY () vs none at /usr/local/lib/perl5/5.10.1/Exporter.pm line 67.
 at /usr/local/bin/gscan2pdf line 160
Constant subroutine main::LC_MESSAGES redefined at /usr/local/lib/perl5/5.10.1/Exporter.pm line 67.
 at /usr/local/bin/gscan2pdf line 160
Prototype mismatch: sub main::LC_MESSAGES () vs none at /usr/local/lib/perl5/5.10.1/Exporter.pm line 67.
 at /usr/local/bin/gscan2pdf line 160
Constant subroutine main::LC_ALL redefined at /usr/local/lib/perl5/5.10.1/Exporter.pm line 67.
 at /usr/local/bin/gscan2pdf line 160
Prototype mismatch: sub main::LC_ALL () vs none at /usr/local/lib/perl5/5.10.1/Exporter.pm line 67.
 at /usr/local/bin/gscan2pdf line 160
Name "PDF::API2::Version::CVersion" used only once: possible typo at /usr/local/bin/gscan2pdf line 433.
Use of uninitialized value $PDF::API2::Version::CVersion{"vShort"} in concatenation (.) or string at /usr/local/bin/gscan2pdf line 433.
Use of uninitialized value $code in concatenation (.) or string at /usr/local/bin/gscan2pdf line 11107.
Use of uninitialized value $code in hash element at /usr/local/bin/gscan2pdf line 11108.
Use of uninitialized value $code in concatenation (.) or string at /usr/local/bin/gscan2pdf line 11107.
Use of uninitialized value $code in hash element at /usr/local/bin/gscan2pdf line 11108.
Use of uninitialized value $code in concatenation (.) or string at /usr/local/bin/gscan2pdf line 11107.
Use of uninitialized value $code in hash element at /usr/local/bin/gscan2pdf line 11108.
Use of uninitialized value $code in concatenation (.) or string at /usr/local/bin/gscan2pdf line 11107.
Use of uninitialized value $code in hash element at /usr/local/bin/gscan2pdf line 11108.
Use of uninitialized value in subroutine entry at /usr/local/bin/gscan2pdf line 11047.
Use of uninitialized value in subroutine entry at /usr/local/bin/gscan2pdf line 11047.
Use of uninitialized value in subroutine entry at /usr/local/bin/gscan2pdf line 11047.
Use of uninitialized value in subroutine entry at /usr/local/bin/gscan2pdf line 11047.

(gscan2pdf:18304): GVFS-RemoteVolumeMonitor-WARNING **: remote volume monitor with dbus name org.gtk.Private.HalVolumeMonitor is not supported

(gscan2pdf:18304): GVFS-RemoteVolumeMonitor-WARNING **: remote volume monitor with dbus name org.gtk.Private.GPhoto2VolumeMonitor is not supported
Segmentation fault (core dumped)

OK, it core dumps, but it works.

2011-07-03: scanner - Ok, testing with xsane on my main workstation:

tingo@kg-v2$ uname -a
FreeBSD kg-v2.kg4.no 8.1-STABLE FreeBSD 8.1-STABLE #3: Thu Sep 16 22:18:48 CEST 2010     root@kg-v2.kg4.no:/usr/obj/usr/src/sys/GENERIC  amd64
tingo@kg-v2$ xsane -v
xsane-0.998 (c) 1998-2010 Oliver Rauch
  E-mail: Oliver.Rauch@xsane.org
  package xsane-0.996
  compiled with GTK-2.22.1
  with color management function
  with GIMP support, compiled with GIMP-2.6.11
  XSane output formats: jpeg, pdf(compr.), png, pnm, ps(compr.), tiff, txt

just 'xsane' doesn't find any devices, I need

xsane epson2:net:10.1.161.8

and that won't do as a GIMP plugin. I tried a few things, but none of them worked:

tingo@kg-v2$ SANE_NET_HOSTS="10.1.161.8" xsane
tingo@kg-v2$ SANE_NET_HOSTS="epson2:net:10.1.161.8" xsane
tingo@kg-v2$ SANE_DEFAULT_DEVICE="epson2:net:10.1.161.8" xsane

Hmm. I rebuilt sane-backends with the AVAHI=on "Avahi support" option, and rebuilt xsane, but nothing changed.

root@kg-v2# portversion -v | grep sane
sane-backends-1.0.21_3      =  up-to-date with port
sane-frontends-1.0.14_7     =  up-to-date with port
xsane-0.998                 =  up-to-date with port

That's all.

2011-06-04: pipslite porting. With help from the FreeBSD forums, I added the following patch:

--- daemon/cbtd_setup.c.orig    2011-05-31 18:56:45.813178092 +0200
+++ daemon/cbtd_setup.c 2011-05-31 18:57:29.557178284 +0200
@@ -31,6 +31,7 @@

 #include <sys/types.h>
 #include <sys/stat.h>
+#include <sys/ioccom.h>
 #include <sys/ioctl.h>
 #include <fcntl.h>
 #include <unistd.h>
@@ -67,7 +68,7 @@
                memset(deviceid, 0x00, DEVICEID_LENGTH);

                /* GET_DEVICE_ID = 1 */
-               int iostatus = ioctl(fd, _IOC(_IOC_READ, 'P', 1, DEVICEID_LENGTH), deviceid);
+               int iostatus = ioctl(fd, _IOC(IOC_OUT, 'P', 1, DEVICEID_LENGTH), deviceid);
                if (iostatus == 0) {
                        if (strstr(deviceid + 2, printer)) {
                                result = 0; /* found */

After that, I tried make, which hung on a sed command. However, gmake gets further:

gcc -DHAVE_CONFIG_H -I. -I.. -I../src/filter-l2/magick -I../src -I../status-monitor -D_THREAD_SAFE -D_REENTRANT -I/usr/local/include/gtk-2.0 -I/usr/local/lib/gtk-2.0/include -I/usr/local/include/atk-1.0 -I/usr/local/include/cairo -I/usr/local/include/gdk-pixbuf-2.0 -I/usr/local/include/pango-1.0 -I/usr/local/include/gio-unix-2.0/ -I/usr/local/include -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include/pixman-1 -I/usr/local/include/freetype2 -I/usr/local/include/drm    -I/usr/local/include -DPRTOPT_PATH=\"/usr/local/var/cache/pipslite/prtOpt.csv\" -DPAPER_PATH=\"/usr/local/share/pipslite/paper_list.csv\" -DCACHEDIR_PATH=\"/usr/local/var/cache/pipslite/\" -DPPDINSTALL_SH=\"/usr/local/lib/pipslite/scripts/install-ppd.sh\" -g -O2 -Wall -MT ppd_generator.o -MD -MP -MF .deps/ppd_generator.Tpo -c -o ppd_generator.o ppd_generator.c
In file included from ppd_generator.c:30:
/usr/include/malloc.h:3:2: error: #error "<malloc.h> has been replaced by <stdlib.h>"
gmake[2]: *** [ppd_generator.o] Error 1
gmake[2]: Leaving directory `/usr/home/tingo/work/pipslite/makeinstall'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/usr/home/tingo/work/pipslite'
gmake: *** [all] Error 2

Ok, that one is easy. Replaced with in ./makeinstall/ppd_generator.c, and ./makeinstall/utility.c, and got a new error:

gcc -DHAVE_CONFIG_H -I. -I.. -I../src/filter-l2/magick -I../src -I../status-monitor -D_THREAD_SAFE -D_REENTRANT -I/usr/local/include/gtk-2.0 -I/usr/local/lib/gtk-2.0/include -I/usr/local/include/atk-1.0 -I/usr/local/include/cairo -I/usr/local/include/gdk-pixbuf-2.0 -I/usr/local/include/pango-1.0 -I/usr/local/include/gio-unix-2.0/ -I/usr/local/include -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include/pixman-1 -I/usr/local/include/freetype2 -I/usr/local/include/drm    -I/usr/local/include -DPRTOPT_PATH=\"/usr/local/var/cache/pipslite/prtOpt.csv\" -DPAPER_PATH=\"/usr/local/share/pipslite/paper_list.csv\" -DCACHEDIR_PATH=\"/usr/local/var/cache/pipslite/\" -DPPDINSTALL_SH=\"/usr/local/lib/pipslite/scripts/install-ppd.sh\" -g -O2 -Wall -MT utility.o -MD -MP -MF .deps/utility.Tpo -c -o utility.o utility.c
utility.c: In function 'list_create_index':
utility.c:328: error: '__compar_fn_t' undeclared (first use in this function)
utility.c:328: error: (Each undeclared identifier is reported only once
utility.c:328: error: for each function it appears in.)
utility.c:328: error: expected ')' before 'list_handle'
utility.c: In function 'list_find_item':
utility.c:363: error: '__compar_fn_t' undeclared (first use in this function)
utility.c:363: error: expected ')' before 'list_handle'
gmake[2]: *** [utility.o] Error 1
gmake[2]: Leaving directory `/usr/home/tingo/work/pipslite/makeinstall'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/usr/home/tingo/work/pipslite'
gmake: *** [all] Error 2

Fun. Ok, it turns out that __compar_fn_t is a Linuxism. I added this to ./makeinstall/utility.c, after the includes:

#ifdef __FreeBSD__
typedef int (*__compar_fn_t) (__const void *, __const void *);
#endif

Now, try gmake again. Yes - it compiles! Nice!

2011-05-23: pipslite porting, today I try helping configure a bit:

tingo@kg-v2$ ./configure LDFLAGS=-L/usr/local/lib

Let's see if that makes thing better or worse. Ok, make errors out with:

gcc -DPRINTER_MODEL=\"LITE\" -DLIBPATH=\"/usr/local/lib/liblite.so\" -DRSC_PATH=\"/usr/local/etc/pipslite/pipsrc\" -DSPOOL_NAME=\"lite\" -DLOCALE_PATH=\"/usr/local/share/locale\" -DPRTOPT_PATH=\"/usr/local/etc/pipslite/prtOpt.csv\" -DPAPER_PATH=\"/usr/local/share/pipslite/paper_list.csv\" -D_LPR_DIRECT -fsigned-char -DCUPS_FILTER_PATH=\"/usr/local/local/libexec/cups/filter\" -g -O2 -Wall -o pipslitelp backend.o  -lcups -lm ./.libs/libcutils.a -L/usr/local/lib -lpthread
./.libs/libcutils.a(err.o)(.text+0xc4): In function `err_doit':
/usr/home/tingo/work/pipslite/src/err.c:104: undefined reference to `libintl_gettext'
*** Error code 1

Stop in /usr/home/tingo/work/pipslite/src.
*** Error code 1

Stop in /usr/home/tingo/work/pipslite/src.
*** Error code 1

Stop in /usr/home/tingo/work/pipslite.
*** Error code 1

Stop in /usr/home/tingo/work/pipslite.

Need to fix that. Let us try another configure:

tingo@kg-v2$ ./configure --with-libintl-prefix=/usr/local LDFLAGS=-L/usr/local/lib

and make again (I did a make clean first, to be safe):

gcc -DPRINTER_MODEL=\"LITE\" -DLIBPATH=\"/usr/local/lib/liblite.so\" -DRSC_PATH=\"/usr/local/etc/pipslite/pipsrc\" -DSPOOL_NAME=\"lite\" -DLOCALE_PATH=\"/usr/local/share/locale\" -DPRTOPT_PATH=\"/usr/local/etc/pipslite/prtOpt.csv\" -DPAPER_PATH=\"/usr/local/share/pipslite/paper_list.csv\" -D_LPR_DIRECT -fsigned-char -DCUPS_FILTER_PATH=\"/usr/local/local/libexec/cups/filter\" -g -O2 -Wall -o pipslitelp backend.o  -lcups -lm ./.libs/libcutils.a -L/usr/local/lib -lpthread
./.libs/libcutils.a(err.o)(.text+0xc4): In function `err_doit':
/usr/home/tingo/work/pipslite/src/err.c:104: undefined reference to `libintl_gettext'
*** Error code 1

Stop in /usr/home/tingo/work/pipslite/src.
*** Error code 1

Stop in /usr/home/tingo/work/pipslite/src.
*** Error code 1

Stop in /usr/home/tingo/work/pipslite.
*** Error code 1

Stop in /usr/home/tingo/work/pipslite.

Nope, still errors out in the same place. New try with configure:

tingo@kg-v2$ ./configure --with-libintl-prefix=/usr/local LIBS=-lintl LDFLAGS=-L/usr/local/lib

make clean and make. Ok, it got a bit further:

gcc -DHAVE_CONFIG_H -I. -I.. -I../src/filter-l2/magick  -DCONFIG_FILE_PATH=\"/usr/local/etc/pipslite/pipslitedrc\"  -I/usr/local/include  -g -O2 -Wall -MT cbtd_setup.o -MD -MP -MF .deps/cbtd_setup.Tpo -c -o cbtd_setup.o cbtd_setup.c
cbtd_setup.c: In function 'is_searching_printer':
cbtd_setup.c:70: error: '_IOC_READ' undeclared (first use in this function)
cbtd_setup.c:70: error: (Each undeclared identifier is reported only once
cbtd_setup.c:70: error: for each function it appears in.)
*** Error code 1

Stop in /usr/home/tingo/work/pipslite/daemon.
*** Error code 1

Stop in /usr/home/tingo/work/pipslite/daemon.
*** Error code 1

Stop in /usr/home/tingo/work/pipslite.
*** Error code 1

Stop in /usr/home/tingo/work/pipslite.

Now, let's see...

2011-05-22: OK, trying to get pipslite (1.5.0-3, filename pipslite_1.5.0-3.tar.gz) aka Epson Photo Image Print system Lite to compile under FreeBSD. Extracted the archive to ~/work, then did

cd pipslite
./configure

Then did a make

tingo@kg-v2$ make
make  all-recursive
Making all in lib
/bin/sh ../libtool --tag=CC    --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../src/filter-l2/magick    -I/usr/local/include  -g -O2 -Wall -MT escpr_api.lo -MD -MP -MF .deps/escpr_api.Tpo -c -o escpr_api.lo escpr_api.c
mkdir .libs
 gcc -DHAVE_CONFIG_H -I. -I.. -I../src/filter-l2/magick -I/usr/local/include -g -O2 -Wall -MT escpr_api.lo -MD -MP -MF .deps/escpr_api.Tpo -c escpr_api.c  -fPIC -DPIC -o .libs/escpr_api.o
 gcc -DHAVE_CONFIG_H -I. -I.. -I../src/filter-l2/magick -I/usr/local/include -g -O2 -Wall -MT escpr_api.lo -MD -MP -MF .deps/escpr_api.Tpo -c escpr_api.c -o escpr_api.o >/dev/null 2>&1
mv -f .deps/escpr_api.Tpo .deps/escpr_api.Plo
/bin/sh ../libtool --tag=CC    --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../src/filter-l2/magick    -I/usr/local/include  -g -O2 -Wall -MT escpr_cmd.lo -MD -MP -MF .deps/escpr_cmd.Tpo -c -o escpr_cmd.lo escpr_cmd.c
 gcc -DHAVE_CONFIG_H -I. -I.. -I../src/filter-l2/magick -I/usr/local/include -g -O2 -Wall -MT escpr_cmd.lo -MD -MP -MF .deps/escpr_cmd.Tpo -c escpr_cmd.c  -fPIC -DPIC -o .libs/escpr_cmd.o
 gcc -DHAVE_CONFIG_H -I. -I.. -I../src/filter-l2/magick -I/usr/local/include -g -O2 -Wall -MT escpr_cmd.lo -MD -MP -MF .deps/escpr_cmd.Tpo -c escpr_cmd.c -o escpr_cmd.o >/dev/null 2>&1
mv -f .deps/escpr_cmd.Tpo .deps/escpr_cmd.Plo
/bin/sh ../libtool --tag=CC    --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../src/filter-l2/magick    -I/usr/local/include  -g -O2 -Wall -MT escpr_osdep.lo -MD -MP -MF .deps/escpr_osdep.Tpo -c -o escpr_osdep.lo escpr_osdep.c
 gcc -DHAVE_CONFIG_H -I. -I.. -I../src/filter-l2/magick -I/usr/local/include -g -O2 -Wall -MT escpr_osdep.lo -MD -MP -MF .deps/escpr_osdep.Tpo -c escpr_osdep.c  -fPIC -DPIC -o .libs/escpr_osdep.o
In file included from escpr_osdep.c:23:
/usr/include/malloc.h:3:2: error: #error "<malloc.h> has been replaced by <stdlib.h>"
escpr_osdep.c: In function 'ESCPR_Mem_Alloc':
escpr_osdep.c:46: warning: implicit declaration of function 'malloc'
escpr_osdep.c:46: warning: incompatible implicit declaration of built-in function 'malloc'
escpr_osdep.c: In function 'ESCPR_Mem_Free':
escpr_osdep.c:56: warning: implicit declaration of function 'free'
*** Error code 1

Stop in /usr/home/tingo/work/pipslite/lib.
*** Error code 1

Stop in /usr/home/tingo/work/pipslite.
*** Error code 1

Stop in /usr/home/tingo/work/pipslite.

Ok, must fix that. Replaced the include of with in file ./lib/escpr_osdep.c and ran make again. Got another problem:

Making all in filter-l2
/bin/sh ../../libtool --tag=CC    --mode=link gcc -DCUPS_FILTER_PATH=\"/usr/local/local/libexec/cups/filter\"  -I../../lib-l2 -I../../src/filter-l2/ -g -O2 -Wall    -o pipslitel2-filter analyze.o animate.o annotate.o  attribute.o blob.o channel.o  color.o colorspace.o command.o  composite.o compress.o constitute.o  decorate.o delegate.o deprecate.o  display.o draw.o effect.o  enhance.o error.o fx.o gem.o  image.o list.o locale.o log.o  magic.o magick.o magick_endian.o  map.o memory.o module.o  monitor.o montage.o operator.o  paint.o pixel_cache.o pixel_iterator.o  PreRvIcccm.o profile.o quantize.o  registry.o render.o resize.o  resource.o segment.o semaphore.o  shear.o signature.o static.o  sun.o tempfile.o timer.o  transform.o tsd.o type.o  unix_port.o utility.o version.o  widget.o xwindow.o l2filter.o ../../lib-l2/liblitel2.la  -lcups -lm  -lcupsimage -lcups -ljpeg -lm -lpthread
gcc -DCUPS_FILTER_PATH=\"/usr/local/local/libexec/cups/filter\" -I../../lib-l2 -I../../src/filter-l2/ -g -O2 -Wall -o .libs/pipslitel2-filter analyze.o animate.o annotate.o attribute.o blob.o channel.o color.o colorspace.o command.o composite.o compress.o constitute.o decorate.o delegate.o deprecate.o display.o draw.o effect.o enhance.o error.o fx.o gem.o image.o list.o locale.o log.o magic.o magick.o magick_endian.o map.o memory.o module.o monitor.o montage.o operator.o paint.o pixel_cache.o pixel_iterator.o PreRvIcccm.o profile.o quantize.o registry.o render.o resize.o resource.o segment.o semaphore.o shear.o signature.o static.o sun.o tempfile.o timer.o transform.o tsd.o type.o unix_port.o utility.o version.o widget.o xwindow.o l2filter.o  ../../lib-l2/.libs/liblitel2.so -lcupsimage -lcups -ljpeg -lm -lpthread -Wl,--rpath -Wl,/usr/local/lib
/usr/bin/ld: cannot find -lcupsimage
*** Error code 1

Stop in /usr/home/tingo/work/pipslite/src/filter-l2.
*** Error code 1

Stop in /usr/home/tingo/work/pipslite/src.
*** Error code 1

Stop in /usr/home/tingo/work/pipslite.
*** Error code 1

Stop in /usr/home/tingo/work/pipslite.

There must be a problem here, but things look ok:

root@kg-v2# cups-config --ldflags
-Wl,-R/usr/local/lib -L/usr/local/lib

and the Makefile too:

tingo@kg-v2$ grep CUPS_LDFLAGS ./src/filter-l2/Makefile
CUPS_LDFLAGS = -Wl,-R/usr/local/lib -L/usr/local/lib

Hmm, what to do now?

2011-05-21: scanner - FreeBSD: tested from my main workstation:

tingo@kg-v2$ uname -a
FreeBSD kg-v2.kg4.no 8.1-STABLE FreeBSD 8.1-STABLE #3: Thu Sep 16 22:18:48 CEST 2010     root@kg-v2.kg4.no:/usr/obj/usr/src/sys/GENERIC  amd64

Let's see if it is detected:

tingo@kg-v2$ scanimage -V
scanimage (sane-backends) 1.0.21; backend version 1.0.21
tingo@kg-v2$ scanimage -L
device `snapscan:libusb:/dev/usb:/dev/ugen2.2' is a AGFA SNAPSCAN 1212U_2 flatbed scanner

Nope, only my old scanner there. Anyway, let's find out if it works:

tingo@kg-v2$ scanimage -d epson2:net:10.1.161.8 --mode Color > work/0_scan/test_out.pnm

ok, that works. But xscanimage always crashes. It doesn't matter if I try "preview" or "Scan", it just crashes:

tingo@kg-v2$ SANE_DEBUG_XSCANIMAGE=3 xscanimage epson2:net:10.1.161.8
[sanei_debug] Setting debug level of xscanimage to 3.
[xscanimage] xscanimage (version: 1.0.14, package: sane-frontends) starting
[sanei_debug] Setting debug level of xscanimage to 3.
Segmentation fault (core dumped)

Not good.