diff --git a/en_US.ISO8859-1/articles/cups/Makefile b/en_US.ISO8859-1/articles/cups/Makefile new file mode 100644 index 0000000000..44784a415f --- /dev/null +++ b/en_US.ISO8859-1/articles/cups/Makefile @@ -0,0 +1,17 @@ +# +# $FreeBSD$ +# +# Article: CUPS on FreeBSD + +DOC?= article + +FORMATS?= html +WITH_ARTICLE_TOC?= YES + +INSTALL_COMPRESSED?=gz +INSTALL_ONLY_COMPRESSED?= + +SRCS= article.sgml + +DOC_PREFIX?= ${.CURDIR}/../../.. +.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/en_US.ISO8859-1/articles/cups/article.sgml b/en_US.ISO8859-1/articles/cups/article.sgml new file mode 100644 index 0000000000..ceb2c06819 --- /dev/null +++ b/en_US.ISO8859-1/articles/cups/article.sgml @@ -0,0 +1,387 @@ + +%articles.ent; + +]> + +
+ + CUPS on FreeBSD + $FreeBSD$ + + + Chess + Grifin + +
chess@chessgriffin.com
+
+
+
+ + + &tm-attrib.freebsd; + &tm-attrib.general; + + + + An article about configuring CUPS on &os;. + +
+ + + An Introduction to the Common Unix Printing System (CUPS) + + printing + CUPS + + CUPS, the Common UNIX Printing + System, provides a portable printing layer for &unix;-based + operating systems. It has been developed by Easy Software + Products to promote a standard printing solution for all &unix; + vendors and users. + + 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 (a.k.a. JetDirect) + protocols are also supported with reduced functionality. + CUPS adds network printer browsing and + PostScript Printer Description (PPD) based + printing options to support real-world printing under &unix;. As + a result, CUPS is ideally-suited for + sharing and accessing printers in mixed environments of &os;, + &linux;, &macos; X, or &windows;. + + The main site for CUPS is . + + + Installing the CUPS Print Server + + CUPS can be installed from ports + or by using a precompiled binary package. To install + CUPS from ports, issue the following + command from a root terminal: + + &prompt.root; cd /usr/ports/print/cups && make install clean + + To install CUPS using a + precompiled binary, issue the following command from a root + terminal: + + &prompt.root; pkg_add -r cups + + Other optional, but recommended, ports or packages are + print/gutenprint-cups and + print/hplip, both of which add + drivers and utilities for a variety of printers. Once + installed, the CUPS configuration + files can be found in the directory + /usr/local/etc/cups. + + + + Configuring the CUPS Print Server + + After installation, a few files must edited in order to + configure the CUPS server. First, + create or modify, as the case may be, the file + /etc/devfs.rules and add the following + information to set the proper permissions on all potential + printer devices and to associate printers with the cups user + group: + + [system=10] +add path 'unlpt*' mode 0660 group cups +add path 'ulpt*' mode 0660 group cups +add path 'lpt*' mode 0660 group cups + + Next, add two lines to /etc/rc.conf + as follows: + + cupsd_enable="YES" +devfs_system_ruleset="system" + + These two entries will start the + CUPS print server on boot and invoke + the local devfs rule created above, respectively. + + In order to enable CUPS printing + under certain µsoft.windows; clients, the line + application/octet-stream should be + uncommented in /usr/local/etc/cups/mime.types + and /usr/local/etc/cups/mime.convs. + + Once these changes have been made, the &man.devfs.8; and + CUPS systems must both be restarted, + either by rebooting the computer or issuing the following two + commands in a root terminal: + + &prompt.root; /etc/rc.d/devfs restart +&prompt.root; /usr/local/etc/rc.d/cupsd restart + + + + + Configuring Printers on the CUPS Print Server + + After the CUPS system has been + installed and configured, the administrator can begin configuring + the local printers attached to the + CUPS print server. This part of the + process is very similar, if not identical, to configuring + CUPS printers on other &unix;-based + operating systems, such as a &linux; distribution. + + The primary means for managing and administering the + CUPS server is through the web-based + interface, which can be found by launching a web browser and + entering http://localhost:631 in the + browser's URL bar. If the CUPS + server is on another machine on the network, substitute the + server's local IP addresss for + localhost. The CUPS + web interface is fairly self-explanatory, as there are sections + for managing printers and print jobs, authorizing users, and + more. Additionally, on the right-hand side of the + Administration screen are several check-boxes allowing easy + access to commonly-changed settings, such as whether to share + published printers connected to the system, whether to allow + remote administration of the CUPS + server, and whether to allow users additional access and + privileges to the printers and print jobs. + + Adding a printer is generally as easy as clicking + Add Printer at the Administration screen of + the CUPS web interface, or clicking + one of the New Printers Found buttons also + at the Administration screen. When presented with the + Device drop-down box, simply select the + desired locally-attached printer, and then continue through the + process. If one has added the + print/gutenprint-cups or + print/hplip ports or packages as + referenced above, then additional print drivers will be available + in the subsequent screens that might provide more stability or + features. + + + + Configuring CUPS Clients + + Once the CUPS server has been + configured and printers have been added and published to the + network, the next step is to configure the clients, or the + machines that are going to access the + CUPS server. If one has a single + desktop machine that is acting as both server and client, then + much of this information may not be needed. + + + &unix; Clients + + CUPS will also need to be + installed on your &unix; clients. Once + CUPS is installed on the clients, + then CUPS printers that are + shared across the network are often automatically discovered by + the printer managers for various desktop environments such as + GNOME or + KDE. Alternatively, one can access + the local CUPS interface on the + client machine at http://localhost:631 and + click on Add Printer in the Administration + section. When presented with the Device + drop-down box, simply select the networked + CUPS printer, if it was + automatically discovered, or select ipp or + http and enter the IPP or + HTTP URI of the networked + CUPS printer, usually in one of the + two following syntaxes: + + ipp://server-name-or-ip/printers/printername + + http://server-name-or-ip:631/printers/printername + + If the CUPS clients have + difficulty finding other CUPS + printers shared across the network, sometimes it is helpful to + add or create a file + /usr/local/etc/cups/client.conf with a + single entry as follows: + + ServerName (server-ip) + + In this case, (server-ip) would be replaced by the local + IP address of the + CUPS server on the network. + + + + &windows; Clients + + Versions of &windows; prior to XP did not have the + capability to natively network with + IPP-based printers. However, &windowsxp; + and later versions do have this capability. Therefore, to + add a CUPS printer in these + versions of &windows; is quite easy. Generally, the &windows; + administrator will run the &windows; + Add Printer wizard, select Network + Printer and then enter the URI + in the following syntax: + + http://server-name-or-ip:631/printers/printername + + If one has an older version of &windows; without native + IPP printing support, then the general + means of connecting to a CUPS + printer is to use + net/samba3 and + CUPS together, which is a topic + outside the scope of this chapter. + + + + + CUPS Troubleshooting + + Difficulties with CUPS often lies + in permissions. First, double check the &man.devfs.8; + permissions as outlined above. Next, check the actual + permissions of the devices created in the filesystem. It is + also helpful to make sure your user is a member of the + cups group. If the permissions check boxes + in the Administration section of the + CUPS web interface do not seem to be + working, another fix might be to manually backup the main + CUPS configuration file located at + /usr/local/etc/cups/cupsd.conf and edit the + various configuration options and try different combinations of + configuration options. One sample + /usr/local/etc/cups/cupsd.conf to test is + listed below. Please note that this sample + cupsd.conf file sacrifices security for + easier configuration; once the administrator successfully + connnects to the CUPS server and + configures the clients, it is advisable to revisit this + configuration file and begin locking down access. + + # Log general information in error_log - change "info" to "debug" for +# troubleshooting... +LogLevel info + +# Administrator user group... +SystemGroup wheel + +# Listen for connections on Port 631. +Port 631 +#Listen localhost:631 +Listen /var/run/cups.sock + +# Show shared printers on the local network. +Browsing On +BrowseOrder allow,deny +#BrowseAllow @LOCAL +BrowseAllow 192.168.1.* # change to local LAN settings +BrowseAddress 192.168.1.* # change to local LAN settings + +# Default authentication type, when authentication is required... +DefaultAuthType Basic +DefaultEncryption Never # comment this line to allow encryption + +# Allow access to the server from any machine on the LAN +<Location /> + Order allow,deny + #Allow localhost + Allow 192.168.1.* # change to local LAN settings +</Location> + +# Allow access to the admin pages from any machine on the LAN +<Location /admin> + #Encryption Required + Order allow,deny + #Allow localhost + Allow 192.168.1.* # change to local LAN settings +</Location> + +# Allow access to configuration files from any machine on the LAN +<Location /admin/conf> + AuthType Basic + Require user @SYSTEM + Order allow,deny + #Allow localhost + Allow 192.168.1.* # change to local LAN settings +</Location> + +# Set the default printer/job policies... +<Policy default> + # Job-related operations must be done by the owner or an adminstrator... + <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs \ +Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription \ +Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job \ +CUPS-Move-Job> + Require user @OWNER @SYSTEM + Order deny,allow + </Limit> + + # All administration operations require an adminstrator to authenticate... + <Limit Pause-Printer Resume-Printer Set-Printer-Attributes Enable-Printer \ +Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs \ +Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer \ +Promote-Job Schedule-Job-After CUPS-Add-Printer CUPS-Delete-Printer CUPS-Add-Class \ +CUPS-Delete-Class CUPS-Accept-Jobs CUPS-Reject-Jobs CUPS-Set-Default> + AuthType Basic + Require user @SYSTEM + Order deny,allow + </Limit> + + # Only the owner or an administrator can cancel or authenticate a job... + <Limit Cancel-Job CUPS-Authenticate-Job> + Require user @OWNER @SYSTEM + Order deny,allow + </Limit> + + <Limit All> + Order deny,allow + </Limit> +</Policy> + + + + Fine Tuning CUPS-Related Ports + + If CUPS is going to serve as the + primary printing system, then one may choose to optionally add + certain knobs to /etc/make.conf that will + emphasize CUPS over other printing + options. Some of these "knobs" that one may want to add + are: + + WITH_CUPS=YES +CUPS_OVERWRITE_BASE=YES +WITHOUT_LPR=YES + + The first knob, WITH_CUPS, adds + CUPS support to ports where + applicable. The second knob, CUPS_OVERWRITE_BASE, will fix + certain symlinks and paths that would otherwise apply to the + default &os; printing system, LPR, + and will prevent these fixes from being reverted upon the next + "buildworld" system upgrade. The third knob, WITHOUT_LPR, will + prevent LPR support from being added + to ports where applicable. + + +
+ +