Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Howto: Cups Printing in pfSense 2.0

    Scheduled Pinned Locked Moved Documentation
    35 Posts 17 Posters 57.9k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • G
      giggetto
      last edited by

      Hi,
      I installed cups on pfsense 2.0.1 as described above, but I have always these errors:

      22/Dec/2012:10:03:59 +0100] Unable to create directory "/var/spool/cups" - No such file or directory
      E [22/Dec/2012:10:03:59 +0100] Unable to create directory "/var/spool/cups/tmp" - No such file or directory
      E [22/Dec/2012:10:03:59 +0100] Unable to open spool directory "/var/spool/cups": No such file or directory
      E [22/Dec/2012:10:03:59 +0100] Unable to open temporary directory "/var/spool/cups/tmp" - No such file or directory
      E [22/Dec/2012:10:03:59 +0100] Unable to create certificate file /var/run/cups/certs/0 - No such file or directory
      X [22/Dec/2012:10:12:02 +0100] kevent() returned Bad file descriptor
      E [22/Dec/2012:10:12:02 +0100] Unable to create job cache file "/var/cache/cups/job.cache" - No such file or directory
      E [22/Dec/2012:10:12:55 +0100] Unable to create directory "/var/spool/cups" - No such file or directory
      E [22/Dec/2012:10:12:55 +0100] Unable to create directory "/var/spool/cups/tmp" - No such file or directory
      E [22/Dec/2012:10:12:55 +0100] Unable to open spool directory "/var/spool/cups": No such file or directory
      E [22/Dec/2012:10:12:55 +0100] Unable to open temporary directory "/var/spool/cups/tmp" - No such file or directory
      E [22/Dec/2012:10:12:55 +0100] Unable to create certificate file /var/run/cups/certs/0 - No such file or directory
      X [22/Dec/2012:10:20:25 +0100] kevent() returned Bad file descriptor
      E [22/Dec/2012:10:20:25 +0100] Unable to create job cache file "/var/cache/cups/job.cache" - No such file or directory
      E [22/Dec/2012:10:34:59 +0100] Unable to create directory "/var/spool/cups" - No such file or directory
      E [22/Dec/2012:10:34:59 +0100] Unable to create directory "/var/spool/cups/tmp" - No such file or directory
      E [22/Dec/2012:10:34:59 +0100] Unable to open spool directory "/var/spool/cups": No such file or directory
      E [22/Dec/2012:10:34:59 +0100] Unable to open temporary directory "/var/spool/cups/tmp" - No such file or directory
      E [22/Dec/2012:10:34:59 +0100] Unable to create certificate file /var/run/cups/certs/0 - No such file or directory
      E [22/Dec/2012:10:34:59 +0100] Unable to create certificate file /var/run/cups/certs/0 - No such file or directory
      E [22/Dec/2012:10:34:59 +0100] Unable to create certificate file /var/run/cups/certs/0 - No such file or directory

      If I manually create the directories then cups works well, but when I reboot pfsense I have the same errors.
      Any help would be appreciated.
      Thank you.

      1 Reply Last reply Reply Quote 0
      • G
        garg_art2002
        last edited by

        @catfish99:

        I couldn't get the repository you mention in your post to work. Seems the URL has changed to the following:

        setenv PACKAGESITE http://ftp-archive.freebsd.org/mirror/FreeBSD-Archive/old-releases/i386/8.1-RELEASE/8.1-RELEASE/packages/Latest/

        @kevev:

        repo:
        setenv PACKAGESITE ftp://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/i386/8.1-RELEASE/packages/Latest/

        I have a nanobsd implementation and can not get this or any other "setenv PACKAGESITE" to work for me. Is there another trick in the Nanobsd world? Picture of my install is also attached…
        Many thanks.
        Anil Garg

        1 Reply Last reply Reply Quote 0
        • N
          ncat
          last edited by

          Is it possible to use USB printer? My CUPS finds nothing =( printer at

          kernel: ugen0.2: <samsung> at usbus0</samsung>
          
          1 Reply Last reply Reply Quote 0
          • kevevK
            kevev
            last edited by

            @ncat:

            Is it possible to use USB printer? My CUPS finds nothing =( printer at

            kernel: ugen0.2: <samsung> at usbus0</samsung>
            

            Did you read the instructions given by the cups package after install? It may help.
            Read the part about "USB printer" at the bottom. I have not tried this so I do not know if it will work.
            Good luck.

            To enable printing with local printer you need to give group 'cups'
            r/w access to printer device:
            
            1) Add following to /etc/devfs.rules (create if it doesn't exist):
            
            [system=10]
            add path 'unlpt*' mode 0660 group cups
            add path 'ulpt*' mode 0660 group cups
            add path 'lpt*' mode 0660 group cups
            
            2) And following to /etc/rc.conf:
            
            devfs_system_ruleset="system"
            
            3) Restart devfs: /etc/rc.d/devfs restart
            
            If your system supports 'devd' you can copy
            $PREFIX/share/examples/cups/lpt-cupsd.conf to $PREFIX/etc/devd/
            
            To enable printing under Gimp and MS-Windows clients do the following:
            
            1) Uncomment application/octet-stream line in mime.types
            2) Uncomment application/octet-stream line in mime.convs
            3) Restart cupsd
            
            If you are using libusb, it is important that no device driver, e.g.
            ulpt(4) is attached to the device you wish to use. In this case please
            ensure the cups user and group has read/write access to /dev/ugen*
            
            If you are using a USB printer wtih FreeBSD 8.0 or later, you will
            need to find the proper /dev/usb/* device pointed at by the /dev/ugen*
            entry. Follow the instructions for devfs.rules as above, but append a
            rule similar to the following for a printer attached as /dev/ugen0.2:
            
            add path 'usb/0.2.*' mode 0660 group cups
            
            1 Reply Last reply Reply Quote 0
            • kevevK
              kevev
              last edited by

              If anyone is trying to do an embedded "CF" install on a read only filesystem, here are some steps:

              1.) Remount the root filesystem read/write before installing/modifying anything.

              mount -urw /

              2.) Set the pkg_add temp directory to somewhere that has space.

              setenv PKG_TMPDIR /tmp1
                  setenv TMPDIR /tmp1

              Note: If you notice any of the pkg_add commands failing with error "Broken pipe" while installing
                         dependencies, you will need to install the dependencies manually. I would start with the last
                         package listed right before the error and install each manually, one at a time.

              Update

              This will not work with the Prolific Technology Inc. usb-to-parallel adapters as nanobsd does not seem to have the module/s for this chip.
              I am not sure about other usb-to-parallel devices.

              1 Reply Last reply Reply Quote 0
              • P
                phreshjive
                last edited by

                Running 2.1Beta, followed the instructions.  When I try running /usr/local/etc/rc.d/run_cups.sh, it returns Command not found.  Also rebooted.  Still cannot connect to 631.

                Checked the error log (/var/log/cups/error_log) which states: E [10/Apr/2013:22:37:15 -0400] Syntax error on line 33.

                Anyone have a clue?

                Edit: Solved my own problem… spaces are inserted which need to be deleted in various lines (e.g. 33, 42...).  Sorry for bumping the thread)

                Edit2: How would one go about upgrading to the latest version of CUPS?

                1 Reply Last reply Reply Quote 0
                • N
                  ncat
                  last edited by

                  when trying to add new printer - cups requires authentication. What credentials should I use? root + %system pass% Or %pfsense login% + %system pass% do not work…

                  1 Reply Last reply Reply Quote 0
                  • K
                    kejianshi
                    last edited by

                    http://en.wikipedia.org/wiki/Attack_surface

                    1 Reply Last reply Reply Quote 0
                    • N
                      ncat
                      last edited by

                      @kejianshi:

                      http://en.wikipedia.org/wiki/Attack_surface

                      Ok, But still no answer to my question  :)
                      I should have missed something during installation or not?
                      It seems that the easiest way to buy a print server but he needs a place, one more outlet for additional power adapter and so on.

                      1 Reply Last reply Reply Quote 0
                      • K
                        kejianshi
                        last edited by

                        You have samba on this also?  I'm just looking at my CUPs settup and comparing.

                        (for making system changes, I'd think you would need to use the pfsense root username and password)

                        1 Reply Last reply Reply Quote 0
                        • N
                          ncat
                          last edited by

                          no i have no samba…
                          and all login-password pairs which come to mind dont fits..

                          1 Reply Last reply Reply Quote 0
                          • K
                            kejianshi
                            last edited by

                            I'm not sure - When I setup  CUPs on this system, I don't remember needing to do anything with passwords, but that linux and not BSD.  I did need to configure CUPs to allow guest printing via IPP without usernames or pass.

                            1 Reply Last reply Reply Quote 0
                            • N
                              ncat
                              last edited by

                              well, maybe you can help me with another issues?

                              1. It seems strange that when i plug printer to usb port i have only one message:
                              kernel: ugen0.2: <samsung> at usbus0</samsung>
                              

                              I guess that normally there should be something like this

                              ugen2.2: <samsung> at usbus2
                              ulpt0: <samsung 0="" 2="" samsung="" ml-2010,="" class="" 0,="" rev="" 1.10="" 1.00,="" addr=""> on usbus2</samsung></samsung>
                              
                              1. my devfs.rules seems to be correct:
                              
                              [2.0.1-RELEASE][admin@pfsense.ncat.routerpc]/dev(41): ls -l
                              total 3
                              <...>
                              lrwxr-xr-x  1 root  wheel            9 Aug  2 22:51 ugen0.1 -> usb/0.1.0
                              lrw-rw----  1 root  cups             9 Sep 16 01:59 ugen0.2 -> usb/0.2.0
                              lrwxr-xr-x  1 root  wheel            9 Aug  2 22:51 ugen1.1 -> usb/1.1.0
                              lrwxr-xr-x  1 root  wheel            9 Aug  2 22:51 ugen2.1 -> usb/2.1.0
                              lrwxr-xr-x  1 root  wheel            9 Aug  2 22:51 ugen3.1 -> usb/3.1.0
                              lrwxr-xr-x  1 root  wheel            9 Aug  2 22:51 ugen4.1 -> usb/4.1.0
                              lrwxr-xr-x  1 root  wheel            9 Aug  2 22:51 ugen4.2 -> usb/4.2.0
                              lrwxr-xr-x  1 root  wheel            6 Aug  2 22:51 urandom -> random
                              <...>
                              
                              

                              3)additionally i installed SpliX with pkg_add and now it is also seems to work ok:

                              /usr/local(17): lpinfo --make-and-model 'Samsung ML-2010' -m
                              samsung/ml2010.ppd Samsung ML-2010, SpliX V. 2.0.0
                              
                              
                              /usr/local/share/cups/model(36): ls -l
                              total 21
                              drwxr-xr-x  2 root  wheel   512 Sep 15 20:02 dell
                              -rw-r--r--  1 root  wheel  9645 Jun 30  2010 pxlcolor.ppd
                              -rw-r--r--  1 root  wheel  9453 Jun 30  2010 pxlmono.ppd
                              drwxr-xr-x  2 root  wheel  1024 Sep 15 20:02 samsung
                              drwxr-xr-x  2 root  wheel   512 Sep 15 20:02 xerox
                              
                              

                              4)Is lpinfo -v output correct?

                              /usr/local(18): lpinfo -v
                              Password for root on localhost?
                              network http
                              network ipp
                              network lpd
                              network socket
                              
                              

                              I can't add printer using lpadmin. Maybe smth wrong with the command:

                              /usr/local(21): lpadmin -E -p net_printer -v file:/dev/usb/0.2.0 -m "samsung/ml2010.ppd Samsung ML-2010, SpliX V. 2.0.0" -L "ML-2015 home router" -E
                              lpadmin: Unable to connect to server: Bad file descriptor
                              
                              

                              And i can't add printer using Web interface: http://clip2net.com/s/5L6TRv (sorry for Russian language)

                              1 Reply Last reply Reply Quote 0
                              • K
                                kejianshi
                                last edited by

                                Nope - Never used pfsense with CUPs.  I'm not sure what to recommend for you and I'm also not sure if its recommended.

                                1 Reply Last reply Reply Quote 0
                                • kevevK
                                  kevev
                                  last edited by

                                  Your issue with the password may be Chrome browser if you are using it. I just tested and that browser will not allow loading the "Add Printer" screen. Try Firefox or IE.

                                  If you are using a USB-to-LTP adapter like me you should see the device:

                                  [2.0.2-RELEASE][root@router.localdomain]/root(62): ls /dev/|grep lpt
                                  ulpt0
                                  unlpt0

                                  [2.0.2-RELEASE][root@router.localdomain]/root(63): lpinfo -v
                                  Password for root on localhost?
                                  network http
                                  network ipp
                                  network lpd
                                  network socket
                                  direct usb:/dev/ulpt0
                                  direct usb:/dev/unlpt0

                                  @ncat:

                                  well, maybe you can help me with another issues?

                                  1. It seems strange that when i plug printer to usb port i have only one message:
                                  kernel: ugen0.2: <samsung> at usbus0</samsung>
                                  

                                  I guess that normally there should be something like this

                                  ugen2.2: <samsung> at usbus2
                                  ulpt0: <samsung 0="" 2="" samsung="" ml-2010,="" class="" 0,="" rev="" 1.10="" 1.00,="" addr=""> on usbus2</samsung></samsung>
                                  
                                  1. my devfs.rules seems to be correct:
                                  
                                  [2.0.1-RELEASE][admin@pfsense.ncat.routerpc]/dev(41): ls -l
                                  total 3
                                  <...>
                                  lrwxr-xr-x  1 root  wheel            9 Aug  2 22:51 ugen0.1 -> usb/0.1.0
                                  lrw-rw----  1 root  cups             9 Sep 16 01:59 ugen0.2 -> usb/0.2.0
                                  lrwxr-xr-x  1 root  wheel            9 Aug  2 22:51 ugen1.1 -> usb/1.1.0
                                  lrwxr-xr-x  1 root  wheel            9 Aug  2 22:51 ugen2.1 -> usb/2.1.0
                                  lrwxr-xr-x  1 root  wheel            9 Aug  2 22:51 ugen3.1 -> usb/3.1.0
                                  lrwxr-xr-x  1 root  wheel            9 Aug  2 22:51 ugen4.1 -> usb/4.1.0
                                  lrwxr-xr-x  1 root  wheel            9 Aug  2 22:51 ugen4.2 -> usb/4.2.0
                                  lrwxr-xr-x  1 root  wheel            6 Aug  2 22:51 urandom -> random
                                  <...>
                                  
                                  

                                  3)additionally i installed SpliX with pkg_add and now it is also seems to work ok:

                                  /usr/local(17): lpinfo --make-and-model 'Samsung ML-2010' -m
                                  samsung/ml2010.ppd Samsung ML-2010, SpliX V. 2.0.0
                                  
                                  
                                  /usr/local/share/cups/model(36): ls -l
                                  total 21
                                  drwxr-xr-x  2 root  wheel   512 Sep 15 20:02 dell
                                  -rw-r--r--  1 root  wheel  9645 Jun 30  2010 pxlcolor.ppd
                                  -rw-r--r--  1 root  wheel  9453 Jun 30  2010 pxlmono.ppd
                                  drwxr-xr-x  2 root  wheel  1024 Sep 15 20:02 samsung
                                  drwxr-xr-x  2 root  wheel   512 Sep 15 20:02 xerox
                                  
                                  

                                  4)Is lpinfo -v output correct?

                                  /usr/local(18): lpinfo -v
                                  Password for root on localhost?
                                  network http
                                  network ipp
                                  network lpd
                                  network socket
                                  
                                  

                                  I can't add printer using lpadmin. Maybe smth wrong with the command:

                                  /usr/local(21): lpadmin -E -p net_printer -v file:/dev/usb/0.2.0 -m "samsung/ml2010.ppd Samsung ML-2010, SpliX V. 2.0.0" -L "ML-2015 home router" -E
                                  lpadmin: Unable to connect to server: Bad file descriptor
                                  
                                  

                                  And i can't add printer using Web interface: http://clip2net.com/s/5L6TRv (sorry for Russian language)

                                  1 Reply Last reply Reply Quote 0
                                  • N
                                    ncat
                                    last edited by

                                    Thank you for help. IE also wants login and password.
                                    Opera - same thing.
                                    Could you share your cupsd.conf (/usr/local/etc/cups.cupsd.conf)?

                                    As for interface - I use usb, not usb-to-lpt converter (ls /dev/|grep lpt shows nothing)
                                    Maybe I should specify login and pass for cups group? Or what group? Ooohh…  :(

                                    1 Reply Last reply Reply Quote 0
                                    • kevevK
                                      kevev
                                      last edited by

                                      User is root or admin. Both work. Password should be the same for admin and root unless you changed them.

                                      cupsd.conf:

                                      DefaultEncryption Never
                                      LogLevel warn
                                      SystemGroup wheel
                                      # Allow remote access
                                      Port 631
                                      Listen /var/run/cups.sock
                                      # Enable printer sharing and shared printers.
                                      Browsing On
                                      BrowseOrder allow,deny
                                      BrowseAllow all
                                      BrowseRemoteProtocols CUPS
                                      BrowseAddress @LOCAL
                                      BrowseLocalProtocols CUPS
                                      DefaultAuthType Basic
                                       <location># Allow shared printing and remote administration...
                                        Order allow,deny
                                        Allow @LOCAL</location> 
                                       <location admin=""># Allow remote administration...
                                        Order allow,deny
                                        Allow @LOCAL</location> 
                                       <location admin="" conf="">AuthType Default
                                        Require user @SYSTEM
                                        # Allow remote access to the configuration files...
                                        Order allow,deny
                                        Allow @LOCAL</location> 
                                       <policy default=""><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="" cups-get-document="">Require user @OWNER @SYSTEM
                                          Order deny,allow</limit> 
                                        <limit cups-add-modify-printer="" cups-delete-printer="" cups-add-modify-class="" cups-delete-class="" cups-set-default="" cups-get-devices="">AuthType Default
                                          Require user @SYSTEM
                                          Order deny,allow</limit> 
                                        <limit pause-printer="" resume-printer="" 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-accept-jobs="" cups-reject-jobs="">AuthType Default
                                          Require user @SYSTEM
                                          Order deny,allow</limit> 
                                        <limit cups-authenticate-job="">Require user @OWNER @SYSTEM
                                          Order deny,allow</limit> 
                                        <limit all="">Order deny,allow</limit></policy> 
                                       <policy authenticated=""><limit create-job="" print-job="" print-uri="">AuthType Default
                                        Order deny,allow</limit> 
                                        <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="" cups-get-document="">AuthType Default
                                      Require user @OWNER @SYSTEM
                                      Order deny,allow</limit> 
                                        <limit cups-add-modify-printer="" cups-delete-printer="" cups-add-modify-class="" cups-delete-class="" cups-set-default="">AuthType Default
                                        Require user @SYSTEM
                                        Order deny,allow</limit> 
                                        <limit pause-printer="" resume-printer="" 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-accept-jobs="" cups-reject-jobs="">AuthType Default
                                          Require user @SYSTEM
                                          Order deny,allow</limit> 
                                        <limit cancel-job="" cups-authenticate-job="">AuthType Default
                                            Require user @OWNER @SYSTEM
                                            Order deny,allow</limit> 
                                        <limit all="">Order deny,allow</limit></policy> 
                                      BrowseWebIF Yes
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • H
                                        hanbaoxu
                                        last edited by

                                        Found this article for pfSense 2.1: http://www.buildyourown.info/router/cups-printing-pfsense.html
                                        Works perfect on pfSense 2.1 x86 CF

                                        1 Reply Last reply Reply Quote 0
                                        • kevevK
                                          kevev
                                          last edited by

                                          @hanbaoxu:

                                          Found this article for pfSense 2.1: http://www.buildyourown.info/router/cups-printing-pfsense.html
                                          Works perfect on pfSense 2.1 x86 CF

                                          Nice find!

                                          1 Reply Last reply Reply Quote 0
                                          • D
                                            daverowland
                                            last edited by

                                            @kevev:

                                            @hanbaoxu:

                                            Found this article for pfSense 2.1: http://www.buildyourown.info/router/cups-printing-pfsense.html
                                            Works perfect on pfSense 2.1 x86 CF

                                            Nice find!

                                            This was a good find however slightly dated as Cups is now updated a fair bit.  I did try and work out how to update it but struggled as i could add to a package that was already on the machine.  Is there a pkg upgrade command in FreeBSD?

                                            I have been on the web interface 631, search printers work but didn't show mine but other printers but "Add printer" just asks for my login passwords and then returns me to the main page.  urgh… not what I was hoping for.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.