ltsp-improvedcdsprinting

Revision 1 as of 2007-10-29 16:19:23

Clear message

Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.

Summary

Handling CD's and launching the jetpipe printer daemon can easily be done from udev, meaning that if you don't have a cd or printer, they won't be there, and if you do, they, err, will. Also, rather than use Python versions, they should use C versions that exist, for size considerations on lower powered thin clients.

Release Note

The cdpinger and jetpipe programs have been re-implemented in C, and should be launched from udev, for a more auto-configuring user experience.

Rationale

  • C versions of these support programs will be lighter weight, and work better on lower end thin clients.
  • Launching from udev will eliminate Administrator intervention for configuring cd drives and printers on thin clients.

Use Cases

Assumptions

Design

Implementation

  • Issue for jetpipe. What we want is something like the following:

# 88-ltsp-jetpipe.rules
ACTION=="add", KERNEL=="lp[0-9]*", RUN+="jetpipe_helper %k"

Jetpipe helper:

# Place in /lib/udev

DEVICE=$1
OFFSET=${DEVICE##lp}

if [ "${SUBSYSTEM}" = "usb" ]; then
    PORT=$((${JETPIPE_USB_PORT_START:-9150} + ${OFFSET}))
else
    PORT=$((${JETPIPE_LP_PORT_START:-9100} + ${OFFSET}))
fi

exec jetpipe ${DEVNAME} ${PORT}
  • Advantages:
    • No state needs to be kept, port numbers for jetpipe are assigned based on lp number.
    • Both old parallel and new usb printers work flawlessly.
  • Disadvantages:
    • Since parallel devices start counting at /dev/lp0, and usb printers start at /dev/usblp0, if you have both on one box, you have a conflict.
    • We get around that in the helper by separating them by 50. So, /dev/lp's start at 9100, /dev/usblp's start at 9150.

Question: Are we ok with that? Or can we come up with another method?

UI Changes

USB printers move up from 9100 series to 9150.

Code Changes

Replace cdpinger and jetpipe with the above versions.

Migration

No PRINTER_X_DEVICE etc. entries needed in lts.conf. Simply ignore them.

Test/Demo Plan

  • ?

Outstanding Issues

  • ?

BoF agenda and discussion

  • What do ltsp-drivers think?


CategorySpec