Creating a raw printer queue in CUPS (host) and adding them through CUPS (client)

[...] how to create a raw queue on the RasPi

  1. From the Pi (or an SSH/Putty session) add yourself to the lpadmin group

    sudo adduser $USER lpadmin

  2. Enable remote administration (or manually)

    sudo cupsctl --remote-admin

  3. Cycle CUPS to make sure it likes you

    sudo service cups restart -- OR -- sudo /etc/init.d/cups restart

  4. Navigate to http://localhost:631 (of if you don't have keyboard access: http://<ip_address_of_pi>:631 from another machine)

  5. Navigate to Administration, Add Printer

    a. When prompted to login, use your standard username and password.

    b. Note: If the password doesn't work, sudo reboot, try again.

  6. AppSocket/HP JetDirect, then:

    a. Network Attached: socket://<ip_of_printer>:9100

    b. USB Attached: socket://<usb_handle> find using lpinfo -v |grep usb:, you don't need the "? location=1a200000" information. Assumes proper driver is installed first. Note, if your device driver isn't offered for ARM architecture, see this article.

  7. Make: Raw (NOT Generic)

  8. Name It, Share It, Continue
  9. Go back to CUPS Administration page at http://localhost:631 a. Enable printer sharing via:

    .[X] Share printers connected to this system

    . [X] Allow printing from the internet

[...] how to access it from the clients

This varies greatly between platforms.

  1. The general URL format is: http://<ip_of_pi>:631/printers/<name_used_in_step_8_above>

    a. Windows: Devices and Printers, Add Printer (NOT Add Device, it's in the toolbar), Manually Select/Not Listed, Local or Network Printer with Manual Settings, Create a new port, Standard TCP/IP Port

    b. MacOS: Enable, then use the CUPS web interface. The GUI can't do it. You'll need to be in admin group and know your user id (e.g. echo $USER)

    c. Linux: Using the GUI or CUPS, Network Printer, AppSocket/HP JetDirect