[mdlug] windows linux network and printer

Ken Spress ken at altimaz.com
Wed Apr 29 23:43:27 EDT 2009


Hope This Helps


 


 


Overview

Ubuntu supports network printing, so you can print from either your Ubuntu
machine or a Windows machine etc, to another Ubuntu machine that has a
printer attached (ie a "print server"). This page covers these scenarios
only. 

This page does not cover printing from Ubuntu to a printer attached to a
Windows machine, ie a Windows print server. The WindowsXPPrinter
<https://help.ubuntu.com/community/WindowsXPPrinter>  page addresses this. 


Background

Ubuntu uses the Common UNIX Printing System ("CUPS") to handle printing.
CUPS uses the Internet Printing Protocol ("IPP") as the basis for managing
print jobs and queues. The Line Printer Daemon ("LPD") Server Message Block
("SMB"), and AppSocket <https://help.ubuntu.com/community/AppSocket>
(a.k.a. JetDirect <https://help.ubuntu.com/community/JetDirect> ) protocols
are also supported with reduced functionality. This page describes network
printing with CUPS and IPP. 

CUPS printer configuration and management is handled by the Printer Admin
utility launched from the Gnome menu - System -> Administration -> Printing.
In addition CUPS provides command-line commands that are similar to old
Berkley and SystemV print commands such as lpq, lpstat etc. Also IPP
provides web services so after you have configured CUPS appropriately, you
can access the printers and jobs via your web browser. 

When a locally attached printer is defined, eg using the Printer Admin
utility, that printer is automatically published from this "print server"
host to the network, depending on the server directives in the CUPS
configuration file. A remote Ubuntu "client" host can then be able to see
and use the printer attached to the server. The network printer
automatically appears in the client's Printer Admin utility. It simply pops
up if CUPS is up and configured correctly and disappears if you stop CUPS at
either the Print Server or your local machine. 


Ubuntu 7.10

Printer sharing in Ubuntu 7.10 Gutsy is very simple. It no longer requires
manual editing of config files. I will assume there is a working printer
installed and printing on the Ubuntu computer that will be used as the print
server. 


Ubuntu Print Server


1.	On the server machine (the one the printer is attached to) open up
printer manager with 

o                     sudo system-config-printer 

Or System->Administration->Printing. 

2.       Under Server Settings check, i.e, turn on, the Share published
printers connected to this system. 

3.	Click on the Apply button; 


Ubuntu Client Machine


Now on the client(s) (the one that you want to link to the shared printer
that is in server machine): 

*         1.Open up the printer manager System->Administration->Printing 

*	Or open the Terminal: 

*                             sudo system-config-printer 

2.Under the Server Settings check the Show Printers shared by others systems
option. 

*	Click on the Apply button; 

Then you can open any document, and try to print it. It should appear in the
printer dialogs box the name of the shared Printer. 


Ubuntu 7.04


Printer sharing in Ubuntu 7.04 Feisty is very simple. It no longer requires
manual editing of config files. I will assume there is a working printer
installed and printing on the Ubuntu computer that will be used as the print
server. 


Ubuntu Print Server


1.	On the server machine (the one the printer is attached to) open up
printer manager with 

o                     sudo gnome-cups-manager 

or System->Administration->Printing. 

2.       Under Global Settings click on the share printers. 


Ubuntu Client Machine


Now on the client(s) open up the printer manager
System->Administration->Printing and under the Global Settings check the
Detect LAN Printers option.Then go to Printer->Add Printer check the Network
Printer option and in the area marked URI write something like 

*         ipp://192.168.0.1/printers/<name of printer> 

where 192.168.0.1 is your servers ip address and <name of printer> is the
name you gave the printer when you set it up (usually the model of the
printer). Click Next and select the brand,model, and driver just like you
did when setting up the printer on the server. Click Next and fill in the
name and description like on the server's printer then click Next. There you
should now have a networked printer. 


WindowsXP Client Machine


1.	Open the Control Panel 

2.       Click Printers and Faxes 

3.       Click Add a Printer 

4.       On the first page of the Add Printer Wizard, click Next 

5.       Choose Add a network Printer 

6.       Choose Connect to a printer on the internet and type
http://SERVER_NAME:631/printers/PRINTER_NAME in the text box and then click
next 

7.	On the next screen, Choose the correct driver for your printer 

8.       Click ok to finish 

9.       Right click the printer, choose properties, and then try to print a
test page 


Ubuntu 6.10


Printer sharing in Edgy is fairly simple ,although it does require opening
one .conf file.I will assume there is a working printer connected and
printing. 


Ubuntu Print Server


First on the server machine (the one the printer is attached to) open up
printer manager with 

*	gnome-cups-manager 

or System->Administration->Printing.Under Global Settings click on the share
printers. Next we must edit the cups config file like this 

*	sudo vim /etc/cups/cupsd.conf 

You will probably see a section like this: 

*                 # Only listen for connections from the local machine.
*                 Listen localhost:631
*                 Listen /var/run/cups/cups.sock

Add this line to it: 

*	Listen 192.168.0.1:631 

Assuming 192.168.0.1 is your servers ip address. Restart cups with 

*	sudo /etc/init.d/cupsys restart 


Ubuntu Client Machine


Now on the client(s) open up the printer manager
System->Administration->Printing and under the Global Settings check the
Detect LAN Printers option.Then go to Printer->Add Printer check the Network
Printer option and in the area marked URI write something like 

*         ipp://192.168.0.1/printers/<name of printer> 

where 192.168.0.1 is your servers ip address and <name of printer> is the
name you gave the printer when you set it up usually the model of the
printer.Click Next and select the brand,model, and driver just like you did
when setting up the printer on the server.Click Next and fill in the name
and description like on the server's printer then click Next. There you
should now have a networked printer. 


Ubuntu 5.10


*	.. print from one Ubuntu desktop ("client") machine to another
Ubuntu ("print server") machine that has a printer connected to it. 

Currently, with Ubuntu 5.10 (Breezy Badger) you need to make changes with an
editor to the CUPS configuration file /etc/cups/cupsd.conf for network
printing to work. The following are complete working replacement examples
that work for a Print Server and for a Client Machine. 


Ubuntu Print Server


*	This is the machine that has a printer attached to it, that you want
to send print jobs to. 

*         Add a local printer definition, using the Printer Admin utility
(Gnome menu System -> Administration -> Printing). 

*         Reconfigure the CUPS server 

*	Cups Server: /etc/cups/cupsd.conf This file is based on that
supplied with Ubuntu 5.10. Comment lines have been removed. Copy it onto
your system. 

o                         # /etc/cups/cupsd.conf
o                         # Simple CUPS configuration file for a print
server
o                         # which serves printers within a private local
area network.
o                         # - There is no need for additional security
within the print server, ie only authorises people can access the machine.
o                         
o                         # This setup also allows access to the CUPS
"Administrative tasks" system
o                         # via your web browser to http://localhost:631
o                         # File based on Ubuntu 5.10 (Breezy Badger) (Linux
version 2.6.12-10-386)
o                         # Server Directives are explained in
http://localhost:631/sam.html
o                         
o                         # 25/04/2006
o                         # DavidTangye at netscape.net
o                         
o                         ConfigFilePerm 0600
o                         LogLevel info
o                         Printcap /var/run/cups/printcap
o                         RunAsUser Yes
o                         Port 631
o                         Include cupsd-browsing.conf
o                         BrowseAddress @LOCAL
o                         BrowseAddress 10.0.0.0/8
o                         BrowseAddress 172.16.0.0/12
o                         BrowseAddress 192.168.0.0/16
o                          
o                         <Location />
o                         AuthType None
o                         Order Deny,Allow
o                         Deny From All
o                         Allow From @LOCAL
o                         Allow From 10.0.0.0/8
o                         Allow From 172.16.0.0/12
o                         Allow From 192.168.0.0/16
o                         </Location>
o                         
o                         <Location /jobs>
o                         AuthType None
o                         Order Deny,Allow
o                         Deny From All
o                         Allow From @LOCAL
o                         Allow From 10.0.0.0/8
o                         Allow From 172.16.0.0/12
o                         Allow From 192.168.0.0/16
o                         </Location>
o                         
o                         <Location /printers>
o                         AuthType None
o                         Order Deny,Allow
o                         Deny From All
o                         Allow From @LOCAL
o                         Allow From 10.0.0.0/8
o                         Allow From 172.16.0.0/12
o                         Allow From 192.168.0.0/16
o                         </Location>
o                         
o                         <Location /admin>
o                         AuthType None
o                         Order Deny,Allow
o                         Deny From All
o                         Allow From @LOCAL
o                         Allow From 10.0.0.0/8
o                         Allow From 172.16.0.0/12
o                         Allow From 192.168.0.0/16
    </Location>

*         This config file should be altered if security within your local
network is an issue for you. E.g. if you use a poorly-secured wireless
network, this could allow access to anyone nearby. 

*	Change the network addresses if you are part of a different network,
eg on the real internet, and remove unnecessary ones. 

*         This config allows you to use a web browser to manage CUPS, eg set
up printers, manage jobs, via "http://PRINTSERVERNAME:631/". 

*         Restart CUPS 

*	After changing this file, restart CUPS by running ... 

*                                   sudo /etc/init.d/cupsys restart

or use the Services tool under Gnome menu System -> Administration. After
CUPS is restarted the printers will immediately be found automatically by
machines that are set up as per the next sections. 


Ubuntu Client Machine


*	This is the machine you want to work on and send print jobs from. 

1.       Reconfigure CUPS 

*	CUPS Client: /etc/cups/cupsd.conf Use the following file. Its
features are contained in its comments. 

o                         # /etc/cups/cupsd.conf
o                         # Simple CUPS configuration file for a pure client
machine:
o                         # which has:
o                         # - no printers of its own, (or any local printers
will not be shared?)
o                         # - no need for security within the machine, ie a
personal workstation
o                         # - a network connection to a local network, where
it will find CUPS-controlled printer servers
o                         
o                         # This setup also allows access to the
"Administrative tasks" system at
o                         # http://localhost:631
o                         # File based on Ubuntu 5.10 (Breezy Badger) (Linux
version 2.6.12-10-386)
o                         # Server Directives are explained in
http://localhost:631/sam.html
o                         
o                         # 25/04/2006
o                         # DavidTangye at netscape.net
o                         
o                         ConfigFilePerm 0600
o                         LogLevel info
o                         Printcap /var/run/cups/printcap
o                         RunAsUser Yes
o                         ### Listen fails. Use Port
o                         #Listen 127.0.0.1:631
o                         #Listen 10.0.0.0/8:631
o                         #Listen 128.0.0.0/16:631
o                         #Listen 192.168.0.0/24:631
o                         Port 631
o                         
o                         ### Which print servers to use
o                         Include cupsd-browsing.conf
o                         BrowseOrder deny,allow
o                         BrowseDeny from All
o                         BrowseAllow from @LOCAL
o                         BrowseAllow from 10.0.0.0/8
o                         BrowseAllow from 172.16.0.0/12
o                         BrowseAllow from 192.168.0.0/16
o                          
o                         <Location />
o                         AuthType None
o                         Order Deny,Allow
o                         Deny From All
o                         Allow From @LOCAL
o                         </Location>
o                          
o                         <Location /jobs>
o                         AuthType None
o                         Order Deny,Allow
o                         Deny From All
o                         Allow From @LOCAL
o                         </Location>
o                          
o                         <Location /printers>
o                         AuthType None
o                         Order Deny,Allow
o                         Deny From All
o                         Allow From @LOCAL
o                         </Location>
o                          
o                         <Location /admin>
o                         AuthType None
o                         Order Deny,Allow
o                         Deny From All
o                         Allow From @LOCAL
    </Location>

2.       Restart CUPS 

o        After making any alterations you wish to this file, restart CUPS by
running ...

      sudo /etc/init.d/cupsys restart

or use the Services tool under Gnome menu System -> Administration. After
CUPS is restarted, the printers on file servers, (eg, set up in the Print
Servers section above) will be found automatically by your machine. They
will pop up in your "Printers" screen. This might take up to 30 seconds
though.th 

If you want your machine to print to printers on other Ubuntu hosts, and
also to be a print server for other machines, you need to create a
combination of the above two cupsd.conf files. 


Windows Client Machine


*	Add the printer to the Windows client by using the Windows "Add
Printer" Wizard. Type in the following in the printer URL: 

    http://PRINTSERVERNAME:631/printers/PRINTERNAME

*	PRINTSERVERNAME is the name or ip address of the print server, 
	
*	PRINTERNAME is the name given to the printer on the print server. 


Common Problems


1.       Print jobs stay on the client machine and do not print. Run the
command 

o                          lpstat -p -d

If it reports something like ... 

o                     printer HP-OfficeJet-D155 is idle.  enabled since Jan
01 00:00
o                             Network host 'alice' is busy; will retry in 30
seconds...

or it reports something like ... 

o                     printer OfficeJet-D155 at 10.0.0.40 is idle.  enabled
since Jan 01 00:00
o                             Unable to get printer status
(client-error-forbidden)!
o                     system default destination: OfficeJet-D155 at 10.0.0.40

2.	.. your client computer cannot obtain printer information from the
server. In either case use the "/etc/cups/cupsd.conf" files as above and
restart CUPS. 




More information about the mdlug mailing list