ltsp-improvedcdsprinting

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?

francis-giraldeau : Could it be possible to configure the printer to be used in the user's session as soon as jetpipe is started? Because even if jetpipe starts, the printer doesn't show up in the available printers, so in the user's point of view, the printer doesn't work. What can be done for that?

ScottBalneaves: Well, two questions with that. One, do we want a default behaviour that when a printer is connected to an thin client, it's always added as a print queue? And two, do we want a global print queue? Or a per user print queue? If you're in a classroom environment, and you have a printer plugged into one of the workstations, it's not going to be too useful if only the user sitting at the workstation can print to it. However, that being said:

  • on plugin, try to run hp-detect from hplip
  • For the information returned, somehow add the printer over the ssh tunnel.
  • if it's not an hp printer, ummm, don't know. lts.conf variable for printer type?

Personally, I wasn't really interested in having the print queue added automatically, but rather just have jetpipe RUN automatically.

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

ltsp-improvedcdsprinting (last edited 2008-08-06 16:19:06 by localhost)