epsoneplijs - Is it working on freeBSD ?

I will go straight to the point:

I have a printer EPSON Aculaser M1200.

That printer worked under many Ubuntu based linux distros - but it required to install package called epsoneplijs and provide a .ppd file during printer installation (EPL-6200L-Hardy.ppd ).

Currently i'm trying (without success) getting this printer to work with NomadBSD (which i understand is based on FreeBSD).

The problem is that this package isn't available in repositories and i must be compiled which clearly fails...

I'm not a programmer so my analysis of make and configuration files didn't helped me...

Is anybody out there who can take a look at epsoneplijs and say if in it's current form it should work at all here ? ... or is that package a Linux specific software and my struggle is pointles ?
 
I know a .ppd is just a text file ... But in case of this one it contains references to linux specific paths.

I guess the real problem here is epsoneplijs isn't working properly and that's a real shame for me cause the not working printer is the only problem i have with freebsd.
 
That's the problem. There is print/epsonepl ... but what is needed is BSD version of epsoneplijs (which is something different from esponepl - at least this is how i understand it). Plus probably a modified version of .ppd file with device paths used in BSD not in Linux...
 
the port installs ijs_server_epsonepl which is a "plugin" for ghostscript to convert from ps to the printer language
it should be usable
looks the same stuff that linux has
 
It just won't work. For linux also is available epsonepl ... But it won't work with that printer. epsoneplijs must be installed and then .ppd file.
 
Currently i managed to compile epsoneplijs under freeBSD ... make install command failed ... but i copied the executalbe manually to /usr/bin/ , /usr/sbin/ , /usr/local/bin/ and /usr/local/sbin.

In every of this locations the ijs_server_epsonepl can be now called with --help suffix and it works ... but adding a printer still does nothing (printer is not working after adding in CUPS).

This is the moment where things getting weird. Having working ijs_server_epsonepl in bin and sbin directories in linux always worked. But not in freeBSD.

Looks like it can be problem with .ppd file...
 
epl is the "epson printer language"
the ijs is a protocol used by ghostscript to support "foreign/external" raster output formats (so gs developers wont have to maintain them,etc)
the port provides a converter from ps/pdf to epl so you can use whatever printing system you want
you can use lpr/lpd without cups and ppd files (but you can take the ppd from github/linux package/whatever)
looks like you have to compile ghostscript with ijs support
 
I understand the theory.

But it still won't work. I can find printer but ijs server can't communicate with it.

Code:
ugen2.6: <Printer Seiko Epson Corp.> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (2mA)
nomad@NomadBSD ~> ijs_server_epsonepl EPL-6200L /dev/ugen2.6
Confirmed EPL-6200L
Unknown transport method: 0

I'm using 6200L model here cause this is what ijs server support and my printer M1200 is just a clone of 6200L.
 
Sometimes, CUPS has a printer driver for a similar model printer that would work.

One thing to consider with printers that old is that it's going to be difficult to find compatible toner cartridges.

A thread I made back in September of '24 may be of interest: Thread airprint-seems-to-be-the-new-standard-for-printing.94865

Sometimes you gotta ask yourself what you're willing to spend time on - fighting with code (that may or may not work correctly on FreeBSD) or shopping for a newer printer (One that doesn't require esoteric config to work correctly on FreeBSD)...
 
Sometimes, CUPS has a printer driver for a similar model printer that would work.

One thing to consider with printers that old is that it's going to be difficult to find compatible toner cartridges.

A thread I made back in September of '24 may be of interest: Thread airprint-seems-to-be-the-new-standard-for-printing.94865

Sometimes you gotta ask yourself what you're willing to spend time on - fighting with code (that may or may not work correctly on FreeBSD) or shopping for a newer printer (One that doesn't require esoteric config to work correctly on FreeBSD)...
I know exactly what you mean. It would be much easier to just buy a printer that simply works with freeBSD ... but :

1. I hate the idea that i must put away a printer that is in perfect condition and work just fine with proper drivers.

2. I remember having the same problems with this printer under Linux - and today i can install that printer under Linux without any problem.

3. It would be a satisfaction to get it working finally - and maybe it can help someone in the future.
 
did you build it from git sources? because that error is not in the freebsd port
anyway that seems to be printer comm problem not a printer. if the kernel can talk to the printer you don't need that part
i could convert a ps file to epl format via gs with the port.
i don't have the printer so can't test
 
did you build it from git sources? because that error is not in the freebsd port
anyway that seems to be printer comm problem not a printer. if the kernel can talk to the printer you don't need that part
i could convert a ps file to epl format via gs with the port.
i don't have the printer so can't test
Yes. I compiled from git sources.

From what i know Epson AcuLaser M1200 (and EPSON 6200L) are that weird type of gear where nothing works like it should. It's using some weird type of two-way USB communication or something like that... These type of printers definitely not gonna work on standard epsonepl (no matter if in Linux or BSD).

In linux it works after installing epsoneplijs and adding a prepared .ppd file during CUPS printer adding.
 
I know exactly what you mean. It would be much easier to just buy a printer that simply works with freeBSD ... but :

1. I hate the idea that i must put away a printer that is in perfect condition and work just fine with proper drivers.

2. I remember having the same problems with this printer under Linux - and today i can install that printer under Linux without any problem.

3. It would be a satisfaction to get it working finally - and maybe it can help someone in the future.
TBF, I'm actually totally with you on keeping the printer going until it fries - keeps stuff out of landfills.

One idea that I have - Maybe set up a separate Linux or Windows machine with that printer, and 'share' it using AirPrint. Idea being, if you can get that printer going under Linux, CUPS will be your friend in doing that. And under Windows - there are utilities to get going with AirPrint.

And after that, a CUPS installation on your FreeBSD machine should be able to find that AirPrint-shared printer on your LAN. Cumbersome, I know, but that's the idea behind a 'print server'.
 
Assuming that the Aculaser M1200 and the EPL-6200L are similar printers I found a ppd and driver archive on a Hungarian site:
Epson AL-M1200 work on Linux

*.ppd's are erroneously referred to a "drivers" but if you look at the plain text code of a ppd, it actually references a driver and translates the print job into commands the printer understands.
Look at the initial code of the *.ppd:
Code:
*PPD-Adobe: "4.3"
*%
*% For information on using this, and to obtain the required backend
*% script, consult http://www.linuxprinting.org/
*%
*% This file is published under the GNU General Public License
*%
*% PPD-O-MATIC (3.0.0 or newer) generated this PPD file. It is for use with
*% all programs and environments which use PPD files for dealing with
*% printer capability information. The printer must be configured with the
*% "foomatic-rip" backend filter script of Foomatic 3.0.0 or newer. This
*% file and "foomatic-rip" work together to support PPD-controlled printer
*% driver option access with arbitrary free software printer drivers and
*% printing spoolers.
*%
*% To save this file on your disk, wait until the download has completed
*% (the animation of the browser logo must stop) and then use the
*% "Save as..." command in the "File" menu of your browser or in the
*% pop-up manu when you click on this document with the right mouse button.
*% DO NOT cut and paste this file into an editor with your mouse. This can
*% introduce additional line breaks which lead to unexpected results.
*%
*% You may save this file as 'Epson-EPL-6200L-epl6200l.ppd'
*%
*%
*FormatVersion: "4.3"
*FileVersion:   "1.1"
*LanguageVersion: English
*LanguageEncoding: ISOLatin1
*PCFileName:    "EPL6200L.PPD"
*Manufacturer:  "Epson"
*Product:       "(EPL-6200L)"
*cupsVersion:   1.0
*cupsManualCopies: True
*cupsModelNumber:  2
*cupsFilter:    "application/vnd.cups-postscript 0 foomatic-rip"
*%pprRIP:        foomatic-rip other
*ModelName:     "Epson EPL-6200L"
*ShortNickName: "Epson EPL-6200L epl6200l"
*NickName:      "Epson EPL-6200L Foomatic/epl6200l (recommended)"
*PSVersion:     "(3010.000) 550"
*PSVersion:     "(3010.000) 651"
*PSVersion:     "(3010.000) 652"
*PSVersion:     "(3010.000) 653"
*PSVersion:     "(3010.000) 704"
*PSVersion:     "(3010.000) 705"
*PSVersion:     "(3010.000) 800"
*LanguageLevel: "3"
*ColorDevice:   False
*DefaultColorSpace: Gray
*FileSystem:    False
*Throughput:    "1"
*LandscapeOrientation: Plus90
*TTRasterizer:  Type42

*DefaultResolution: 600x600dpi



*HWMargins: 12 12 12 12
*VariablePaperSize: True
*MaxMediaWidth: 100000
*MaxMediaHeight: 100000
*NonUIOrderDependency: 100 AnySetup *CustomPageSize
*CustomPageSize True: "pop pop pop
<</PageSize [ 5 -2 roll ] /ImagingBBox null>>setpagedevice"
*End
*ParamCustomPageSize Width: 1 points 36 100000
*ParamCustomPageSize Height: 2 points 36 100000
*ParamCustomPageSize Orientation: 3 int 0 0
*ParamCustomPageSize WidthOffset: 4 points 0 0
*ParamCustomPageSize HeightOffset: 5 points 0 0

*FoomaticIDs: Epson-EPL-6200L epl6200l
*FoomaticRIPCommandLine: "gs -q -dBATCH -dSAFER -dNOPAUSE -sProcessCol&&
orModel=DeviceGray -dBitsPerSample=1 -sDEVICE=ijs %A %Z -sIjsServer=ij&&
s_server_epsonepl -dIjsUseOutputFD -sDeviceManufacturer=Epson -sDevice&&
Model=EPL6200L -sIjsParams=&quot;%B&quot; -sOutputFile=- -"
*End

The FoomaticRIPCommandLine actually points to the needed driver.

ijs is supplied by the ghostscript package.

I do not have this particular printer but you may have two options.

If you look at the print section of the FreeBSD handbook it describes how to set it up using the older lpd print spooler in lieu of cups.
The section print filters should work in your case by substituting ijs for ljet4. I would call the filter ijs2ps but you can call it anything you like as long as your /etc/printcap matches.
Code:
#!/bin/sh
/usr/local/bin/gs -dSAFER -dNOPAUSE -dBATCH -q -sDEVICE=ljet4 -sOutputFile=- -
to
Code:
#!/bin/sh
/usr/local/bin/gs -dSAFER -dNOPAUSE -dBATCH -q -sDEVICE=ijs -sOutputFile=- -

The lpd system also accommodates two usb port types:
USB
USB printers can be connected to any available USB port on the computer.

When FreeBSD detects a USB printer, two device entries are created: /dev/ulpt0 and /dev/unlpt0. Data sent to either device will be relayed to the printer. After each print job, ulpt0 resets the USB port. Resetting the port can cause problems with some printers, so the unlpt0 device is usually used instead. unlpt0 does not reset the USB port at all
It is easier to adjust the usb port type in lpd.

If you want to stick w/ cups, I would copy the above ppd into
/usr/local/share/cups/model
install gutenprint
and cross your fingers.

Good Luck
 
I tried to configure with libusb (and then make):

Code:
nomad@NomadBSD ~/P/epsoneplijs-0.4.1> ./configure --with-libusb

checking for gcc... no
checking for cc... cc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ANSI C... none needed
checking for OS USB support... Not Linux. Disabling option.
checking for libusb... no
checking for OS 1284 support... OS doesn't seem to have IEEE 1284 support
checking for libieee1284... no
checking for null transport... yes
checking for solaris-specific requirements... no
checking for ranlib... ranlib
checking for a BSD-compatible install... /usr/bin/install -c
configure: creating ./config.status
config.status: creating Makefile
config.status: creating ijs-config
config.status: executing default commands

And the effect is the same ( i guess the driver should somehow "see" the printer but currently it doesn't look so):

Code:
nomad@NomadBSD ~/P/epsoneplijs-0.4.1 [127]> ./ijs_server_epsonepl EPL-6200L libusb
Confirmed EPL-6200L
Unknown transport method: 0

My bet is that the epsoneplijs isn't confured/build properly to support usb communication on freeBSD... but that's just my guess...
 
If you want to stick w/ cups, I would copy the above ppd into
/usr/local/share/cups/model
install gutenprint
and cross your fingers.

Good Luck

I didn't tried it yet but honestly i doubt that .ppd file will do the job.

There are two reasons why i think it will not:

1). The .ppd file contains a section that is linux specific and i guess that just can't work on BSD:

Code:
*OpenUI *FlowControl/Flow Control: PickOne
*FoomaticRIPOption FlowControl: enum CmdLine B
*OrderDependency: 190 AnySetup *FlowControl
*DefaultFlowControl: Off
*FlowControl libieee1284/ParPort (libieee1284): "%% FoomaticRIPOptionSetting: FlowControl=libieee1284"
*FoomaticRIPOptionSetting FlowControl=libieee1284: "EplFlowControl=lib&&
ieee1284,"
*End
*FlowControl libusb/USB (libusb): "%% FoomaticRIPOptionSetting: FlowControl=libusb"
*FoomaticRIPOptionSetting FlowControl=libusb: "EplFlowControl=libusb,"
*FlowControl Off/Off: "%% FoomaticRIPOptionSetting: FlowControl=Off"
*FoomaticRIPOptionSetting FlowControl=Off: "EplFlowControl=off,"
*FlowControl ParPort_kernel_dev_lp0/ParPort (kernel dev_lp0): "%% FoomaticRIPOptionSetting: FlowControl=ParPort_kernel_dev_lp0"
*FoomaticRIPOptionSetting FlowControl=ParPort_kernel_dev_lp0: "EplFlow&&
Control=/dev/lp0,"
*End
*FlowControl ParPort_kernel_dev_lp1/ParPort (kernel dev_lp1): "%% FoomaticRIPOptionSetting: FlowControl=ParPort_kernel_dev_lp1"
*FoomaticRIPOptionSetting FlowControl=ParPort_kernel_dev_lp1: "EplFlow&&
Control=/dev/lp1,"
*End
*FlowControl USB_kernel_dev_usb_lp0/USB (kernel dev_usb_lp0): "%% FoomaticRIPOptionSetting: FlowControl=USB_kernel_dev_usb_lp0"
*FoomaticRIPOptionSetting FlowControl=USB_kernel_dev_usb_lp0: "EplFlow&&
Control=/dev/usb/lp0,"
*End
*FlowControl USB_kernel_dev_usb_lp1/USB (kernel dev_usb_lp1): "%% FoomaticRIPOptionSetting: FlowControl=USB_kernel_dev_usb_lp1"
*FoomaticRIPOptionSetting FlowControl=USB_kernel_dev_usb_lp1: "EplFlow&&
Control=/dev/usb/lp1,"
*End
*CloseUI: *FlowControl

2. Second reason is : If look at my post above you will find that the epsoneplijs driver just can't communicate the printer (unknown transport mode). I guess this is where the source of problem is.

My lack of knowledge unfortunately doesn't allow me to fix the driver and then probably to modify the .ppd file to work on BSD systems.
 
Code:
nomad@NomadBSD ~/P/epsoneplijs-0.4.1 [1]> ls /dev/ulpt*
/dev/ulpt0
nomad@NomadBSD ~/P/epsoneplijs-0.4.1> ijs_server_epsonepl EPL-6200L /dev/ulpt0
Confirmed EPL-6200L
Unknown transport method: 0
nomad@NomadBSD ~/P/epsoneplijs-0.4.1 [1]>
 
I don't know why but when compiling epsoneplijs it always stop like that:

Code:
nomad@NomadBSD ~/P/epsoneplijs-0.4.1 [2]> make install
/usr/bin/install -c ijs_server_epsonepl -c /usr/local/bin/ijs_server_epsonepl
install: target `/usr/local/bin/ijs_server_epsonepl' is not a directory
usage: install [-bCcpSsUv] [-f flags] [-g group] [-m mode] [-o owner]
               [-M log] [-D dest] [-h hash] [-T tags]
               [-B suffix] [-l linkflags] [-N dbdir]
               file1 file2
       install [-bCcpSsUv] [-f flags] [-g group] [-m mode] [-o owner]
               [-M log] [-D dest] [-h hash] [-T tags]
               [-B suffix] [-l linkflags] [-N dbdir]
               file1 ... fileN directory
       install -dU [-vU] [-g group] [-m mode] [-N dbdir] [-o owner]
               [-M log] [-D dest] [-h hash] [-T tags]
               directory ...
*** Error code 64

Stop.

So i just copied the compiled file ijs_server_epsonepl to /usr/bin and /usr/local/bin ... Maybe it's not enough to make it work properly.
 
ok
build ghostscript with ijs support
then
ps2epl /usr/share/examples/BSD_daemon/beastie.eps a.epl
cat a.epl >/dev/ulpt0
see if it works

you have to have ijs_server_epsonepl in $PATH for ps2epl to work (just copy it to /usr/local/bin for testing)

don't put too much paper in the tray so if it goes wild you wont waste it
 
Code:
nomad@NomadBSD ~/P/epsoneplijs-0.4.1 [1]> ps2epl /usr/share/examples/BSD_daemon/beastie.eps a.epl
ps2epl: Can't read config file '/usr/local/etc/epsonepl.conf'!
nomad@NomadBSD ~/P/epsoneplijs-0.4.1 [1]>

I edited the epsonepl.conf file (it was named epsonepl.conf.sample) but...

When i put model 6200L in the file i got 'unknown printer'... when i put 5900L i got ' ijs - unknown device'...

Code:
nomad@NomadBSD ~/P/epsoneplijs-0.4.1 [1]> ps2epl /usr/share/examples/BSD_daemon/beastie.eps a.epl
ps2epl: Unknown model 'EPL6200L'!
nomad@NomadBSD ~/P/epsoneplijs-0.4.1 [1]> ps2epl /usr/share/examples/BSD_daemon/beastie.eps a.epl
Unknown device: ijs
nomad@NomadBSD ~/P/epsoneplijs-0.4.1 [1]>
 
Back
Top