# Getting Epson Workforce M100 Inktank printer working - FreeBSD 12.0-RELEASE



## Garimella Srinivas (Aug 14, 2019)

Iam having a Epson Workforce M100 Inktank printer which works in linux but not in FreeBSD. With the help of Tatsuki Makino I successfully installed and happy with the performance. With a view of helping a person in need Iam documenting this:

The first post was wrt FreeBSD 12.0 RELEASE.

There is no driver available for Epson Workforce M100 Inktank printer in the ports system. However Epson provides the driver for linux. Therefore there are two options a) Port the linux driver b) Install the driver using the linux emulation in FreeBSD. I have taken the easier option of using linux emulation.

print/epson-inkjet-printer-escpr driver supports ESC/P-R models and can not be used for these Epson printers and such a printer would need to use the `ESC/P Driver (full feature)' like print/epson-inkjet-printer-201401w and print/epson-inkjet-printer-201601w.

1. To use Linux emulation at  https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/linuxemu.html

2. Inssttall the following from ports or packages.
    emulators/linux_base-c7
    print/linux-c7-cups-libs
    graphics/linux-c7-jpeg
    devel/linux-c7-dbus-libs
    security/linux-c7-libgcrypt
    devel/linux-c7-libelf
    print/cups-filters

3. Download the systemd-libs, lz4 and elfutils-libs rpms .
      fetch 'http://mirror.centos.org/centos/7/os/x86_64/Packages/systemd-libs-219-62.el7.x86_64.rpm'
      fetch 'http://mirror.centos.org/centos/7/os/x86_64/Packages/lz4-1.7.5-2.el7.x86_64.rpm'
      fetch 'http://mirror.centos.org/centos/7/os/x86_64/Packages/elfutils-libs-0.172-2.el7.x86_64.rpm'

4. Extract them under /compat/linux
    tar -x -f systemd-libs-219-62.el7.x86_64.rpm -C /compat/linux/ -- ./usr/lib64/libsystemd.so.0 ./usr/lib64/libsystemd.so.0.6.0
    tar -x -f lz4-1.7.5-2.el7.x86_64.rpm -C /compat/linux/ -- ./usr/lib64/liblz4.so.1 ./usr/lib64/liblz4.so.1.7.5
    tar -x -f elfutils-libs-0.172-2.el7.x86_64.rpm -C /compat/linux/ -- ./usr/lib64/libdw-0.172.so ./usr/lib64/libdw.so.1

5. Download ESC/P Driver (full feature) for M100 Series from http://download.ebz.epson.net/dsc/search/01/search/?OSC=LX
    fetch 'http://a1227.g.akamai.net/f/1227/40...kjet-printer-201215w-1.0.0-1lsb3.2.x86_64.rpm'

6. Extract all files under /compat/linux
      tar -x -f epson-inkjet-printer-201215w-1.0.0-1lsb3.2.x86_64.rpm -C /compat/linux/

7. Gunzip all ppd files.
  gunzip -f /compat/linux/opt/epson-inkjet-printer-201215w/ppds/Epson/*.ppd.gz

8. Replace /opt/epson-inkjet-printer-201215w/cups/lib/filter/epson_inkjet_printer_filter in the *cupsFilter: line of the ppd file with /compat/linux/opt/epson-inkjet-printer-201215w/cups/lib/filter/epson_inkjet_printer_filter.

    sed -i '' '/^\*cupsFilter:/s,/opt/,/compat/linux&,' /compat/linux/opt/epson-inkjet-printer-201215w/ppds/Epson/*.ppd

9. Create a symlink for the ppd files to appear in cupsd.
      ln -s -f /compat/linux/opt/epson-inkjet-printer-201215w/ppds/Epson /usr/local/share/cups/model/Epson-201215w

The above procedure uses tar for rpm. But if rpm is installed, it will be like 10.2.3 in the handbook. Step 4 of the above would be

    rpm2cpio /path/to download/directory/elfutils-libs-0.172-2.el7.x86_64.rpm | cpio -id
    rpm2cpio /path/to download/directory/lz4-1.7.5-2.el7.x86_64.rpm | cpio -id
    rpm2cpio /path/to download/directory/systemd-libs-219-62.el7.x86_64.rpm | cpio -id

Some day I want to port the driver to FreeBSD. Maybe somebody can guide me.


----------

