Printer Setup: Difference between revisions
m (Categorized: Printers, Installation) |
(Listed 'hp-setup' as another package not currently supplied; amended styles; python3.4 is not packaged in supported versions - amended to python3; added Todo; added Desktop Environments and See also sections.) |
||
Line 1: | Line 1: | ||
First, you'll need CUPS. If you have a Hewlett-Packard printer (HP brand), add the HPLIP package. | First, you'll need CUPS. If you have a Hewlett-Packard printer (HP brand), add the HPLIP package. | ||
{{cmd|apk add cups cups-libs cups-pdf cups-client cups-filters hplip hplip-libs}} | {{cmd|# apk add cups cups-libs cups-pdf cups-client cups-filters hplip hplip-libs}} | ||
Then go to http://localhost:631 with your web browser and follow the steps to "Add Printer". It'll ask you to log in to add a printer. Log in as root, then finish the steps. Once you're done, you should be able to print. | Then go to http://localhost:631 with your web browser and follow the steps to "Add Printer". It'll ask you to log in to add a printer. Log in as root, then finish the steps. Once you're done, you should be able to print. | ||
If that doesn't work, you may also need to add HPLIP's dependencies separately. There currently | If that doesn't work, you may also need to add HPLIP's dependencies separately. There are currently no packages for '''CUPS DDK''', <code>hp-setup</code> or <code>foomatic</code>. | ||
{{cmd|apk add libusb ghostscript qt py-qt python3 | {{cmd|# apk add libusb ghostscript qt py-qt python3 py-reportlab libjpeg libjpeg-turbo net-snmp}} | ||
{{Expand|Modifications/sections required e.g. to address container user-case scenarios, etc.}} | |||
== Desktop Environment == | |||
Additionally, in a desktop environment you could proceed as follows. | |||
Check whether ''root'' and ''yourusername'' are already members of the <code>lp</code> and <code>lpadmin</code> groups: | |||
$ id root | |||
uid=0(root) gid=0(root) groups=0(root),0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video) | |||
$ id yourusername | |||
uid=1000(yourusername) gid=1000(yourusername) groups=1000(yourusername),6(disk),10(wheel),18(audio),19(cdrom),20(dialout),27(video),100(users),1001(plugdev) | |||
If not, add them: | |||
$ sudo adduser root lp | |||
$ sudo adduser root lpadmin | |||
$ sudo adduser yourusername lp | |||
$ sudo adduser yourusername lpadmin | |||
Start and add cupsd service: | |||
$ sudo rc-service cupsd start | |||
$ sudo rc-update add cupsd | |||
Credit to ArchWiki's excellent [https://wiki.archlinux.org/index.php/CUPS CUPS] page for guidance with the following basic steps. | |||
With your printer connected and powered on, determine the '''URI''' for your printer. Depending on whether the connection is via '''usb''' or '''parallel''' ports, the URI will carry a <code>usb://</code> or <code>parallel:/</code> prefix. | |||
$ lpinfo -v # | |||
network lpd | |||
network socket | |||
network beh | |||
file cups-brf:/ | |||
direct usb://HP/LaserJet%202200 | |||
network ipp | |||
network ipps | |||
network https | |||
network http | |||
direct hp | |||
In the example above, the URI is <code>usb://HP/LaserJet%202200</code> | |||
Now find a .ppd or .ppd.gz '''driver''' for your printer. You could list all the drivers available by running <code>lpinfo -m</code> and then searching through the results to find a .ppd or .ppd.gz specific to your printer. A quick solution is to use the <code>--make-and-model</code> flag and the <code>grep</code> function in order to filter the results by plugging in your printer's make, model and model number in this fashion: | |||
$ lpinfo lpinfo --make-and-model "make_model_names" -m | grep -i printer_model_number | |||
=== Tips === | |||
* Search for the term ''HP'' to find instances of ''Hewlett-Packard''. | |||
* You do not need to state the <code>printer_model_number</code> in whole if at all e.g. ''2200'' may be preferable to searching for ''2200M'', etc.}} | |||
For example, type: | |||
$ lpinfo --make-and-model "HP LaserJet" -m | grep -i 2200 | |||
Out of the results obtained, you might select the following .ppd '''driver''': | |||
drv:///hp/hpcups.drv/hp-laserjet_2200_series.ppd | |||
If required, further drivers can be obtained by installing [http://gimp-print.sourceforge.net/ gutenprint], and running the <code>lpinfo</code> search again. These may not specify .ppd names. | |||
$ sudo apk add gutenprint gutenprint-doc | |||
Create a queue using a '''queue_name''' of your choice. Your selected printer's name is an obvious choice, but do not employ spaces. You will also need to be root or use <code>sudo</code> instead, and you will also need to plug in the '''URI''' and the .ppd '''driver''': | |||
# lpadmin -p queue_name -E -v "uri" -m driver | |||
With this example, you could set as follows, but there are other solutions. | |||
# lpadmin -p HP_LaserJet_2200 -E -v "usb://HP/LaserJet%202200" -m drv:///hp/hpcups.drv/hp-laserjet_2200-pcl3.ppd | |||
This printer queue could be set as '''default''': | |||
# lpoptions -d HP_LaserJet_2200 | |||
Printer settings can typically be set in your GUI application's ''Print'' menu or by examining the CUPS [https://www.cups.org/doc/man-lpoptions.html lpoptions] page. If you have a single queue, the setting options available (such as page type, duplex, etc.) for your queue can simply be '''listed''' by using the '''-l''' flag. Asterisks(*) indicate current settings: | |||
# lpoptions -l | |||
PageSize/Media Size: Card3x5 Hagaki Photo4x6 A6 Photo5x7 Card5x8 Oufuku A5 B5 JB5 Executive 16k Letter *A4 ExecutiveJIS FLSA Legal EnvA2 EnvC6 EnvChou4 EnvMonarch EnvDL Env10 EnvChou3 EnvC5 EnvB5 Custom.WIDTHxHEIGHT | |||
Duplex/Double-Sided Printing: DuplexNoTumble DuplexTumble *None | |||
InputSlot/Media Source: *Auto PhotoTray Upper Lower Envelope LargeCapacity Manual MPTray | |||
ColorModel/Output Mode: *Gray | |||
MediaType/Media Type: *Plain | |||
OutputMode/Print Quality: *Normal Draft Best | |||
OptionDuplex/Duplexer Installed: *False True | |||
If there is only one queue, '''options''' can be set by simply using '''-o''' flags for each setting: | |||
# lpoptions -o PageSize=Legal -o Duplex=DuplexNoTumble | |||
== See also == | |||
* [https://www.cups.org/documentation.html CUPS documentation] | |||
[[Category:Printers]] | [[Category:Printers]] | ||
[[Category:Installation]] | [[Category:Installation]] |
Revision as of 21:01, 17 January 2018
First, you'll need CUPS. If you have a Hewlett-Packard printer (HP brand), add the HPLIP package.
# apk add cups cups-libs cups-pdf cups-client cups-filters hplip hplip-libs
Then go to http://localhost:631 with your web browser and follow the steps to "Add Printer". It'll ask you to log in to add a printer. Log in as root, then finish the steps. Once you're done, you should be able to print.
If that doesn't work, you may also need to add HPLIP's dependencies separately. There are currently no packages for CUPS DDK, hp-setup
or foomatic
.
# apk add libusb ghostscript qt py-qt python3 py-reportlab libjpeg libjpeg-turbo net-snmp
This material needs expanding ... Modifications/sections required e.g. to address container user-case scenarios, etc. |
Desktop Environment
Additionally, in a desktop environment you could proceed as follows.
Check whether root and yourusername are already members of the lp
and lpadmin
groups:
$ id root uid=0(root) gid=0(root) groups=0(root),0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video) $ id yourusername uid=1000(yourusername) gid=1000(yourusername) groups=1000(yourusername),6(disk),10(wheel),18(audio),19(cdrom),20(dialout),27(video),100(users),1001(plugdev)
If not, add them:
$ sudo adduser root lp $ sudo adduser root lpadmin $ sudo adduser yourusername lp $ sudo adduser yourusername lpadmin
Start and add cupsd service:
$ sudo rc-service cupsd start $ sudo rc-update add cupsd
Credit to ArchWiki's excellent CUPS page for guidance with the following basic steps.
With your printer connected and powered on, determine the URI for your printer. Depending on whether the connection is via usb or parallel ports, the URI will carry a usb://
or parallel:/
prefix.
$ lpinfo -v # network lpd network socket network beh file cups-brf:/ direct usb://HP/LaserJet%202200 network ipp network ipps network https network http direct hp
In the example above, the URI is usb://HP/LaserJet%202200
Now find a .ppd or .ppd.gz driver for your printer. You could list all the drivers available by running lpinfo -m
and then searching through the results to find a .ppd or .ppd.gz specific to your printer. A quick solution is to use the --make-and-model
flag and the grep
function in order to filter the results by plugging in your printer's make, model and model number in this fashion:
$ lpinfo lpinfo --make-and-model "make_model_names" -m | grep -i printer_model_number
Tips
- Search for the term HP to find instances of Hewlett-Packard.
- You do not need to state the
printer_model_number
in whole if at all e.g. 2200 may be preferable to searching for 2200M, etc.}}
For example, type:
$ lpinfo --make-and-model "HP LaserJet" -m | grep -i 2200
Out of the results obtained, you might select the following .ppd driver:
drv:///hp/hpcups.drv/hp-laserjet_2200_series.ppd
If required, further drivers can be obtained by installing gutenprint, and running the lpinfo
search again. These may not specify .ppd names.
$ sudo apk add gutenprint gutenprint-doc
Create a queue using a queue_name of your choice. Your selected printer's name is an obvious choice, but do not employ spaces. You will also need to be root or use sudo
instead, and you will also need to plug in the URI and the .ppd driver:
# lpadmin -p queue_name -E -v "uri" -m driver
With this example, you could set as follows, but there are other solutions.
# lpadmin -p HP_LaserJet_2200 -E -v "usb://HP/LaserJet%202200" -m drv:///hp/hpcups.drv/hp-laserjet_2200-pcl3.ppd
This printer queue could be set as default:
# lpoptions -d HP_LaserJet_2200
Printer settings can typically be set in your GUI application's Print menu or by examining the CUPS lpoptions page. If you have a single queue, the setting options available (such as page type, duplex, etc.) for your queue can simply be listed by using the -l flag. Asterisks(*) indicate current settings:
# lpoptions -l PageSize/Media Size: Card3x5 Hagaki Photo4x6 A6 Photo5x7 Card5x8 Oufuku A5 B5 JB5 Executive 16k Letter *A4 ExecutiveJIS FLSA Legal EnvA2 EnvC6 EnvChou4 EnvMonarch EnvDL Env10 EnvChou3 EnvC5 EnvB5 Custom.WIDTHxHEIGHT Duplex/Double-Sided Printing: DuplexNoTumble DuplexTumble *None InputSlot/Media Source: *Auto PhotoTray Upper Lower Envelope LargeCapacity Manual MPTray ColorModel/Output Mode: *Gray MediaType/Media Type: *Plain OutputMode/Print Quality: *Normal Draft Best OptionDuplex/Duplexer Installed: *False True
If there is only one queue, options can be set by simply using -o flags for each setting:
# lpoptions -o PageSize=Legal -o Duplex=DuplexNoTumble