Printing and the XO
peter at osuosl.org
Wed Jan 2 16:43:39 EST 2008
While not a primary concern of the project, printing is something that
teachers are asking for. OSL & HP are exploring how all the pieces will
fit together. Much of this was discussed in a recent call with Walter
Bender, Jim Gettys, Jim Rowson (HP), North Krimsly (OSL), Carlos Jensen
(OSU Engineering), and myself. I'm bringing this to the mail list so
other people can give input.
There were a lot of details discussed so in an effort to be concise this
will be more of an outline. There are many pieces to this problem, this
description is in no way considered complete. I'm just getting the
==== Overview ====
* XO will have CUPS (currently installable by yum) and send print jobs
to the school server or another linux desktop.
* New GUI on the XO will be added to configure and use printers.
* Modifications and or additions to CUPS client might be needed to
improve performance, reduce footprint, and or achieve desired functionality.
* New GUI for security and other configuration options (queueing,
authorization, etc) for cups
==== Configuration - XO ====
The number of printers, the models, and their locations will be
unknown. It may be 1 printer per school, or many depending on the
country or region.
Adding or selecting a printer needs to be simple. Autoconfiguration is
the best case scenario but some manual configuration is still needed. A
GUI is required for all of this.
The presence service may be a way to discover printers and configuration
information. IE. the advertisement includes the configuration to be
added to /etc/cups/printers.conf A printer would really only be
configured, once, at the server.
Some unanswered questions are:
* What does this GUI look like.
* Where is it located within sugar. Within the configure activity?
==== Configuration/Moderation - Server ====
Some form of authorization will be needed to make sure kids only print
to their own school, class, etc. Cups already allows for access per
user and XOs can be identified by their keys. The printer configuration
tool in the current version of Ubuntu has this feature already.
Printing supplies are not cheap and may be the biggest obstacle. There
is concern that kids will print large jobs and use supplies up quickly.
There should be some form of moderation to prevent waste and misuse.
Authorization queues and or quotas were suggested. Some of these
features exist in CUPS but there is no GUI to expose them.
Some possible features for moderation:
* configurable quotas. IE. 2 pages per day. 20 pages per month. etc.
* override for quota
* Authorization queues. Rulesets to determine which jobs requires
teacher authorization before printing
* previewing jobs in queue
* identification of duplicate jobs
==== Activities ====
The first activities that this is a priority for are write and browse
but development can be in parallel. These activities are some with the
most compelling need for printing. They also are low hanging fruit
since both mozilla and abiword already have printing capabilities.
Files sent to cups must be postscript or PDF. What is shown on the
screen must be translated to one of these formats. Cairo has an API
for creating PDFs.
==== Performance Issues ====
We are under the impression that cups includes drivers and or other
information for a lot of printers. This creates a large footprint on
disk and or in memory. If this is the case then cups should be modified
to allow better control of resources that cups uses.
==== Hardware ====
We did not touch on the questions involving printer hardware very much.
We were focusing on the software side of things. The consensus from the
earlier OSL/HP meetings was that a low cost, rugged, printer that can
use cheap ink would be a great thing. Hardware is not something the OSL
has expertise in creating but perhaps HP labs or OLPC could handle it.
==== Testing CUPS ====
I verified that cups was installable and works on the XO over a
traditional wireless network with the following steps (1-3 require root)
1) yum install cups.i386
2) configure your printer in /etc/cups/printers.conf
3) /etc/init.d/cups restart
4) lpr -P fooprinter foodoc.ps
Open Source Lab
Oregon State University
More information about the Devel