Setting up Knoppix to be a print server for an HPGL based vinyl cutter/sign maker/plotter/____.


A few years ago, my department inherited an Allen Datagraph Model 824 Vinyl Cutter. The machine is a very capable vinyl cutter, but the software that came with it was Sign Making software that was written for Windows 3.11. Upgrading the software would cost ~$600. This may be considered an investment for someone in the Sign Making industry, but it’s a huge cost for a school.

Students taking the Intro Graphic Communications class learn the difference between Vector and Raster images using Adobe Photoshop and Illustrator.  The goal for the plotter would be to enable the vector drawings students create to be output to a vector printer.  The school already has Adobe Illustrator, design software wasn’t needed, just a way to drive the cutter.


  • Knoppix LiveCD, version 5.1.1
  • PC with bootable CD-Rom drive
  • Network
  • Plotter


  1. Boot with the Knoppix LiveCD in the drive
  2. At the boot menu, type:
    knoppix 2

System Configuration

  1. Set the root password.
  2. Start SSH, which will allow remote access.
    /etc/init.d/ssh start
  3. Set the serial port communication protocol (baud=9600 data=8 parity=n stop=2), and give other processes permission to send data to the first serial port.
    stty -F /dev/ttyS0 9600 cs8 -parenb cstopb
    chmod 666 /dev/ttyS0

Install Helper Programs

  1. Go to root‘s home directory
    cd ~
  2. Download, unpack, compile, and install pstoedit, version 3.50
    gunzip pstoedit-3.50.tar.gz
    tar xvf pstoedit-3.50.tar
    cd pstoedit-3.50
    ./configure --without-libwmf
    make && make install
    cd ..

    **Configure’ing with –prefix=/usr does not work.

  3. Download, unpack, compile, and install hpgl-distiller, version 0.9.1
    gunzip hpgl-distiller-0.9.1.tar.gz
    tar xvf hpgl-distiller-0.9.1.tar
    cd hpgl-distiller-0.9.1
    make && cp hpgl-distiller /usr/local/bin/
    cd ..

Print Server Setup

  1. Allow remote printing
    vim /etc/cups/cupsd.conf
    • Change line 16: Listen *:631
    • Add at line 31: Allow From 10.17.*.*
  2. Install the following script as a printer
    vim /usr/lib/cups/backend/plot

    Use the script below… CUPS Backend

    chmod +x /usr/lib/cups/backend/plot
  3. Start CUPS print service
    /etc/init.d/cupsys start
  4. Add plotter as a printer
    lpadmin -p Plotter -E -v plot:/dev/ttyS0

Printing from Mac

CUPS Backend

# (c) D. Czechowski 2010
# Based on email dated June 2003 to printing.cups.devel
# (c) Kurt Pfeifle, Danka Deutschland GmbH
# [ this is not really a copyright ; - ) Use and modify freely as you like,
# but don't complain to me...]


# if there are no arguments: print the accepted URI
if [ $# -eq 0 ]; then
echo "direct plot "Unknown" "Send print job as HPGL to port specified in
exit 0

# in case of wrong number of arguments: print usage hint
if [ $# -ne 5 -a $# -ne 6 ]; then
echo ""
echo "Usage: plot job-id user title copies options [file]"
echo " example for device-URI: 'plot:/dev/port'"
echo "(this converts the printfile to HPGL then sends outputs it to specified device file)"
echo ""
echo "Install a printqueue with 'lpadmin -p
-v plot:/ -E"
echo ""
exit 1

# get location of plotter port from device URI
# establish temp file for converting
TMPFILE="/tmp/plot-"`date +%Y%m%d%H%M%S`

# but check "accepting" status first...
GREPSTRING="not accepting" ;
if lpstat -a $PLOTTER | grep "$GREPSTRING" &> /dev/null ; then
echo "ERROR: printer $PLOTTER not accepting jobs"
exit 1

# check temp file status second...
GREPSTRING="not accepting" ;
if lpstat -a $TMPFILE | grep "$GREPSTRING" &> /dev/null ; then
echo "ERROR: printer $TMPFILE not accepting jobs"
exit 1

# output the postscript data
cat $FILE > $TMPFILE".ps"

# convert postscript file to hpgl and distill it
/usr/local/bin/pstoedit -xscale 1.42 -yscale 1.42 -f hpgl $TMPFILE".ps" $TMPFILE".hpgl"
/usr/local/bin/hpgl-distiller -i $TMPFILE".hpgl" -o $TMPFILE".hpgl2"

# output HPGL file to Serial Port 0
cat $TMPFILE".hpgl2" > $PLOTTER

# remove temp files
rm $TMPFILE".ps" $TMPFILE".hpgl" $TMPFILE".hpgl2"

exit 0

3 Responses to Plotter

  1. chris says:

    I have purchased Artcut software fairly cheap, I run a roland plotter from a simple hpgl driver. I have some succes exporting files from Freehand, into a cheap CAD software, which could output to plotter.

  2. thetechnologyteacher says:

    Eventually, I installed this on a dedicated (old) machine. I used “Superb Mini Server – Native – 1.6.2” and had to make a couple changes:

    System Configuration #3 – Added to /etc/rc.d/rc.local
    System Configuration #4 – Comment out “faxgetty ttyS0” from /etc/inittab

    Install #1.5 – Download, unpack, configure “–without-x”, compile, and install ghostscript.
    Install #2 – Using version 3.6, “./configure –without-magick –prefix=/usr”

    Server Setup #1 – skipped

    Download S.M.S. from:

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: