问题
I want to make my RasPi act as a little print and file server in a small home network consisting of three Linux clients. Unfortunately, Brother provides only binary drivers for x86, so I cannot run my Brother printer on the RasPi. However, I found a blog entry proposing to create a raw queue on the RasPi's CUPS install and access this queue from the clients using binary drivers installed on them. Here is the blog entry: http://chemdroid.net/en/raspberry-pi/36-raspberry-pi-as-print-server
Unfortunately, the author doesn't describe in much details how to create a raw queue on the RasPi and how to access it from the clients, instead he concentrates on describing the installation of a non-standard CUPS version on the RasPi.
I found a similar question here: CUPS bypassing interface However, I don't fully understand the answer. Does the "How to setup CUPS 'raw' queues" section in the answer there refer to the host (the RasPi)? If so, what is the socket/port that I have to specify? The printer is a Brother HL-2030, connected through USB.
When accessing the printer from the clients, the answer says how to edit the 'lp' command, however I want to use the shared printer through CUPS, so how do I proceed here?
Thanks for any input!
Photon
回答1:
[...] how to create a raw queue on the RasPi
From the Pi (or an SSH/Putty session) add yourself to the lpadmin group
sudo adduser $USER lpadmin
Enable remote administration (or manually)
sudo cupsctl --remote-admin
Cycle CUPS to make sure it likes you
sudo service cups restart
-- OR --sudo /etc/init.d/cups restart
Navigate to http://localhost:631 (of if you don't have keyboard access:
http://<ip_address_of_pi>:631
from another machine)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.AppSocket/HP JetDirect, then:
a. Network Attached:
socket://<ip_of_printer>:9100
b. USB Attached:
socket://<usb_handle>
find usinglpinfo -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.Make: Raw (NOT Generic)
- Name It, Share It, Continue
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.
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
回答2:
Found a solution for the problem which I described in a little tutorial: https://forum.manjaro.org/t/how-to-set-up-a-remote-printer-which-is-attached-to-a-raspberry-pi-or-any-other-arm-computer/57056
回答3:
I know it is a bit outdated, but I tried the same thing and ran into a problem: What is said above is correct, but I found out that the HL-2030 did not work in my setup with the Gutenprint driver. I needed to install the foomatic drivers
sudo apt-get install foomatic-filters foomatic-db-engine
Then choose the
Brother HL-2030 Foomatic/hl1250 (recommended)
from the list of printers in the web interface. And everything worked fine.
来源:https://stackoverflow.com/questions/26329186/creating-a-raw-printer-queue-in-cups-host-and-adding-them-through-cups-client