Canon Pixma IP1500 printer driver for OpenIndiana and OpenSolaris

There is no Pixma IP1500 printer driver for OpenSolaris on the official site of Canon, but there is the driver for Linux.
As I want to print, but lx brand zones are absent in OpenIndiana, I have implemented another method to run the driver.
During of running  the driver application links with that shared objects, which present in the system, despite of version difference between existing and expected shared objects. Functions and variables, which present in glibc only,  were placed into special shared object linux.so.1. This library is forcefully loaded and linked. The driver is run by modified dynamic linker (/opt/pixma1500/ld.so.1), its configuration file (/opt/pixma1500/reloc.conf) and special shared object (/opt/pixma1500/linux.so.1). Commands to run the driver are placed in /opt/pixma1500/bjfilterpixmaip1500.sh file. I have created package, which contains driver files and means to run it. You can download the package here. Project sources are available in repository.

In contrast of running driver in lx brand zone, the proposed method has the following advantages:

  • it needs significantly less space on hard disk: 2MB vs 1.5GB;
  • the driver runs at once the print command is entered, user does not have to wait while zone is booting
  • it is significantly easier to install and configure

The disadvantage of the method is that the method is not applicable for binaries, which contain system call instructions.

Commands to install driver:
wget http://www.os-solaris.ru/wp-content/uploads/2011/12/CANONip1500.pkg.7z
7z x CANONip1500.pkg.7z
sudo pkgadd -d CANONip1500.pkg

The script /opt/pixma1500/bjfilterpixmaip1500.sh is written on suppose that the printer is accessible by file /dev/printers/1

You can test working ability of the package by printing a postscript file by command line

cat 1.ps | /usr/bin/gs -r600 -g4958x7016 -q -dNOPROMPT -dSAFER -sDEVICE=ppmraw -sOutputFile=- – | /opt/pixma1500/bjfilterpixmaip1500.sh

OpenOffice settings:
Select GNOME menu item Applications/Office/Printer administration. This should open the OpenOffice Printer Administration window. Press the New Printer button. Select Add a printer, and press Next. Choose Generic Printer, and press Next. Enter command line
/usr/bin/gs -r600 -g4958x7016 -q -dNOPROMPT -dSAFER -sDEVICE=ppmraw -sOutputFile=- – |/opt/pixma1500/bjfilterpixmaip1500.sh
Press Next. Enter a name for your printer. Press Finish. The new printer will appear in the installed printers list. It will be convenient to set the new printer as default.

PS:
Similarly, you can run other Linux binaries on OpenSolaris, including other printer drivers.
The package was successfully tested on OpenSolaris 2009.06 and OpenIndiana 151a.

Andrey Sokolov (keremet (at) solaris.kirov.ru)

HostLife - лучший платный хостинг


Systemintegra

Speak Your Mind

*

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

Пожертвование