Goal

Having a printserver based on cups which is able to handle a printer which is not powered all the time (only on demand). The printer is the Samsung ML-1610 with the free splix ppd instead of the ppd file from the install cd.

NOTE(2007-Jan): Our splix ebuild is now in portage so this page is obsolete

According to the splix homepage this printers seem to be supported (or not):

Xerox  Phaser 6100  Works
Samsung  CLP-300  Non-working
Samsung  CLP-500  Works
Samsung  CLP-510  Works
Samsung  CLP-600  Untested
Samsung  ML-1510  Works
Samsung  ML-1520  Works
Samsung  ML-1610  Works
Samsung  ML-1710  Works
Samsung  ML-1740  Works
Samsung  ML-1750  Works
Samsung  ML-2010  Works
Samsung  ML-2150  Untested
Samsung  ML-2250  Works
Samsung  ML-2550  Untested

Gentoo ebuilds

Today we (Jakob & I) decided to create ebuilds and after a while ... here you are! Have fun. You can download them here:

http://www.lastlog.de/misc/ebuilds/net-print.tar.bz2

Installation instructions:

  1. create an overlay in make.conf pointing to /usr/local/portage
  2. cd /usr/local/portage
  3. wget http://www.lastlog.de/misc/ebuilds/net-print.tar.bz2
  4. tar xjvf net-print.tar.bz2
  5. cd net-print/splix
  6. ebuild splix-9999.ebuild digest
  7. cd /usr/local/portage
  8. cd net-print/cupsddk
  9. ebuild cupsddk-9999.ebuild digest
  10. unmask those two packets in /usr/portage/package.keywords
  11. emerge splix

More up to date ebuilds can be found here until they are available on gentoo-sunrise:

  • lastlog.de/misc/ebuilds/net-print/splix/splix-9999.ebuild
  • lastlog.de/misc/ebuilds/net-print/splix/files/fixedMakefile.patch
  • lastlog.de/misc/ebuilds/net-print/cupsddk/cupsddk-9999.ebuild

We tested this ebuilds with:

  • cups 1.2.6 (stable, from portage)
  • splix svn at revision 53
  • cupsddk svn at revision 296

not having gentoo

Problem, now old problem...

I've tried cups 1.1.23-r8 which is gentoo stable but it didn't work because there I had to restart the cupsd process every time when the printer was powered. So I decided for cups 1.2.3 which has this kind of "hotplugging". There the job is processed but if no printer is attached it'll wait for 30 seconds and then tries again.

So what software did I use, which drivers:

  • As printserver: cups version 1.2.3 ebuild
  • cups-ddk [2]: You need the cups ddk because (ppdc - cups ppd compiler) is needed:
svn co http://svn.easysw.com/public/cupsddk/trunk/ cupsddk
NOTE: You need svn version because ddk 1.0 and ddk 1.0.1 produced some unresolved symbols, see below.
  • As driver for the ML-1610 I tried splix SVN [1]
svn co https://svn.sourceforge.net/svnroot/splix splix

the cups ddk 1.0 and 1.0.1 error I got while make

routeFix cupsddk-1.0.1 # make
for dir in espmsg cups ppdc data examples man po; do \
        (cd $dir ; make ) || exit 1;\
done
make[1]: Entering directory `/root/cups-ddk/cupsddk-1.0.1/espmsg'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/root/cups-ddk/cupsddk-1.0.1/espmsg'
make[1]: Entering directory `/root/cups-ddk/cupsddk-1.0.1/cups'
gcc -Wall -Wwrite-strings -O -fno-exceptions   -fno-rtti -o  cupsprofile    cupsprofile.o -lcups -L/usr/lib -lgnutls -lgcrypt -lgpg-error -lz -lpthread -lm -lcrypt -lm  -lsupc++
cupsprofile.o: In function `main':
cupsprofile.c:(.text+0xfc): undefined reference to `cups_strlcat'
cupsprofile.c:(.text+0x10b): undefined reference to `cups_strlcat'
cupsprofile.c:(.text+0x130): undefined reference to `cups_strlcat'
cupsprofile.c:(.text+0x145): undefined reference to `cups_strlcat'
cupsprofile.c:(.text+0x173): undefined reference to `cups_strlcat'
cupsprofile.o:cupsprofile.c:(.text+0x194): more undefined references  to `cups_strlcat' follow
cupsprofile.o: In function `main':
cupsprofile.c:(.text+0x22b): undefined reference to `cups_strlcpy'
collect2: ld returned 1 exit status
make[1]: *** [cupsprofile] Error 1
make[1]: Leaving directory `/root/cups-ddk/cupsddk-1.0.1/cups'
make: *** [all] Error 1

Solution:

  • use svn version of cups ddk

Howto?

  1. install cupsd 1.2.3 with emerge
  2. emerge subversion # if not there already
  3. install cups-ddk, get the svn the other releases don't work
Note: You need to: ./configure; make; make install
  1. install splix:
svn co https://svn.sourceforge.net/svnroot/splix splix
cd splix
rm -Rf /usr/share/cups/model/samsung # if this is a directory
./configure; make; make install
/etc/init.d/cupsd restart

misc

My cups useflags:

routeFix cups # emerge -pv cups 

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R   ] net-print/cups-1.2.3  USE="X jpeg nls pam png ppds  slp ssl -dbus -php -samba -tiff" 0 kB   

Total size of downloads: 0 kB

My cupsd.conf extension:

# I've added this important line:
Listen 192.168.100.100:631
# And I had to change the <Location />
<Location />
  Order allow,deny
  Allow localhost
  Allow 192.168.100.111 # this line was added
</Location>

NOTE

I tried to use the cups configuration dialog but ...:

  • Share published printers connected to this system

After I clicked "change settings" my /etc/cups/cupsd.conf file was deleted (but there is a backup called cupsd.conf.O). I don't know what caused that problem but it's working now and I have different things to do. However you can configure /etc/cups/cupsd.conf as documented in the cups documentation which is quite good. This way you don't need this setting to be applied via the web interface setting dialog.

Links

[1] http://splix.sourceforge.net/
[2] http://www.cups.org/ddk/index.php

Powered by MediaWiki