How to install Kodak 305 Photo Printer Driver

Is there anyway to install "Kodak 305 Photo Printer" driver on linux with cups or anything else?

I can see my printer on "Find New Printers" page in cups server but on the installation page, could not find any driver for my printer except other Kodak drivers.

I have tried almost any other models installed with cups, but no chance, every time when i send a test page or an image to print;

100% Printing 
Render Completed
Sending...

But nothing happens. Printer is running, seems responding;

enter image description here

Also installed c2esp package for but i think it's not working with my printer model. (install with apt-get install printer-driver-c2esp) link below.

https://sourceforge.net/projects/cupsdriverkodak/

Driver manual for windows:

http://resources.kodak.com/support/pdf/en/manuals/professional/305/305_Printer_Driver_Guide_v1.0_English.PDF


UPDATE

I have found a solution to install the Kodak 305 driver, finally!

http://gimp-print.sourceforge.net/

Latest release has the driver for the printer.


NOTE:

Driver installed but it's not working.

LUBUSB_ERROR_IO (-1)

lsusb output:

Bus 001 Device 010: ID 040a:404f Kodak Co.

lpinfo -v output:

direct gutenprint52+usb://KODAK/305+Photo+Printer?serial=215563&backend=mitsu70x

tail -f /var/log/syslog

Dec  1 11:35:17 raspberrypi systemd[1]: Starting Printer.
Dec  1 11:35:17 raspberrypi systemd[1]: Reached target Printer.
Dec  1 11:35:17 raspberrypi systemd[1]: Starting Configure Plugged-In Printer...
Dec  1 11:35:17 raspberrypi systemd[1]: Started Configure Plugged-In Printer.
Dec  1 11:35:17 raspberrypi udev-configure-printer: add usb-001-011
Dec  1 11:35:17 raspberrypi udev-configure-printer: device devpath is /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2
Dec  1 11:35:17 raspberrypi udev-configure-printer: MFG:KODAK MDL:305 Photo Printer SERN:- serial:-
Dec  1 11:35:17 raspberrypi colord-sane: [bjnp] create_broadcast_socket: bind socket to local address failed - Cannot assign requested address
Dec  1 11:35:18 raspberrypi kernel: [ 2793.108700] usblp0: removed
Dec  1 11:35:18 raspberrypi udev-configure-printer: no corresponding CUPS device found

cups error log

E [01/Dec/2016:11:46:28 +0200] [cups-deviced] PID 6321 (gutenprint52+usb) stopped with status 1!


Solution 1:

As our both research found out the (currently developed) gutenprint-5.2.12 has finally some support for this printer.

Further research brought up the following blog-entry: http://www.peachyphotos.com/blog/posts/201610061508-mitsubishi-cp-d70-family-working/

We could either get the source-code from here https://sourceforge.net/projects/gimp-print/files/gutenprint-5.2/5.2.12-pre4/ and compile it. But since this is a pretty hefty endeavor getting all the dependencies and stuff right, we will take a shortcut.

Debian experimental has this version already packaged, so we'll download them there and install it in our system. We will need the following two packages: printer-driver-gutenprint and libgutenprint2. The necessary links we can fetch with a few clicks from here: https://packages.debian.org/source/experimental/gutenprint

Since you want to run the printer on your raspberry we'll need to get the armhf packages - for other architectures simply change it in the wget commands. And since we want a clean work area we will create an extra folder:

mkdir guten-new
cd guten-new
wget http://ftp.us.debian.org/debian/pool/main/g/gutenprint/printer-driver-gutenprint_5.2.12~pre4-1_armhf.deb
wget http://ftp.us.debian.org/debian/pool/main/g/gutenprint/libgutenprint2_5.2.12~pre4-1_armhf.deb

Before we install them lets clean up a little:

sudo apt-get purge libgutenprint2 driver-printer-gutenprint

Now lets install them - still in the folder guten-new we run:

sudo dpkg -i libgutenprint2_5.2.12~pre4-1_armhf.deb
sudo dpkg -i printer-driver-gutenprint_5.2.12~pre4-1_armhf.deb
sudo apt-get install -f

So finally to get these things working we do what peachy told us in the above mentioned blog entry:

mkdir guten-finish
cd guten-finish
git clone http://git.shaftnet.org/cgit/selphy_print.git/
cd selphy_print
make
sudo make install
cd lib70x
make
sudo make install
sudo bash
echo '/usr/local/lib' >> /etc/ld.so.conf.d/local.conf
ldconfig
exit
cd ..

Now with the printer attached and running we finally run:

sudo ./mitsu70x testjobs/kodak_305_4x6-8bpp.raw

And if we are lucky the printer starts doing what it is build for ...

Lastly in Cups we can set the printer up - take care it uses gutenprint52+usb. On a terminal we can check this with lpstat -s. The output should look similar to this:

device for Canon_SELPHY_ES1: gutenprint52+usb://Canon/SELPHY%20ES1?serial=221CD10131&backend=canonselphy

Solution 2:

Hi this page gave me the clue, your printer gets supported by the gutenprint-driver. This is available in the repositories under printer-driver-gutenprint - with this one installed Cups should offer you the correct driver, yet as stated in /usr/share/doc/printer-driver-gutenprint/README.gz:

**CUPS dye-sublimation backend**

A new CUPS backend was added to support USB specific dye-sublimation
printers that require a special communications protocol. This backend is
called 'gutenprint52usb' and currently supports the models listed below.
(...)
**Kodak 305 Photo Printer (EXPERIMENTAL)** 
(...)
Although these printers advertise themselves as standard USB Printer
Class devices, they do not actually obey those specifications, and
require two-way handshaking in order to successfully print.

This README further says:

If you are using up-to-date versions of CUPS (1.6.4 or newer) on Linux, then your system will automatically select this backend if the you plug in one of its supported printers. No further intervention on the your part should be necessary.

it also tells us a possibility to check if the proper backend is in use:

To check which backend your printers are using, run the 'lpstat -s' command.
Below is an example of its output:

  device for Canon_SELPHY_ES1: gutenprint52+usb://Canon/SELPHY%20ES1?serial=221CD10131&backend=canonselphy
  device for Canon_SELPHY_ES3: usb://Canon/Canon%20SELPHY%20ES3

In this example, the SELPHY ES1 is using the correct gutenprint
backend, but the ES3 is using the incorrect 'usb' backend. In
order for the ES3 to function properly, you need to configure it
to use the correct backend.

The most expedient way to accomplish this is to remove the printer
via your system's printer configuration interface, then manually
add a new one, taking care to select the correct backend
("gutenprint52+usb"). This backend name is present in the device
URI for the printer, as demonstrated in the above example.  An
alternative to the system printer configuration interface is to
use your local system's CUPS web interface, if it is enabled.
Step-by-step instructions for using any of these interfaces is
beyond the scope of this document.

Once the printer is properly configured, this backend will be
automatically invoked as needed; you will never invoke the backend
directly.

Hope this was of any help.