在CUPS中创建原始打印机队列(主机),并通过CUPS(客户端)添加它们

10
我希望将我的RasPi打造成一个小型打印和文件服务器,用于连接三台Linux客户端的小型家庭网络。不幸的是,Brother只提供面向x86的二进制驱动程序,因此我不能在RasPi上运行Brother打印机。但是,我发现了一篇博客文章,建议在RasPi的CUPS安装中创建原始队列,并使用安装在客户端上的二进制驱动程序访问此队列。这里是博客文章:http://chemdroid.net/en/raspberry-pi/36-raspberry-pi-as-print-server 不幸的是,作者没有详细描述如何在RasPi上创建原始队列以及如何从客户端访问它,而是集中于描述在RasPi上安装非标准CUPS版本。
我在这里找到了一个类似的问题:CUPS bypassing interface 然而,我并不完全理解答案。答案中 "How to setup CUPS 'raw' queues" 部分是否指主机(RasPi)?如果是,那么我必须指定哪个socket/port呢?打印机是Brother HL-2030,通过USB连接。
当从客户端访问打印机时,答案中说如何编辑 'lp' 命令,但我想通过CUPS共享打印机,那么我该怎么办?
感谢您的任何帮助!
Photon
2个回答

13
如何在RasPi上创建原始队列
  1. 从树莓派(或SSH/Putty会话)中将自己添加到lpadmin组

    sudo adduser $USER lpadmin

  2. 启用远程管理(或手动

    sudo cupsctl --remote-admin

  3. 重启CUPS以确保它能正常工作

    sudo service cups restart -- 或者 -- sudo /etc/init.d/cups restart

  4. 导航至http://localhost:631(如果您没有键盘访问权限:从另一台机器上的http://<ip_address_of_pi>:631

  5. 导航至Administration,Add Printer

    a. 在提示登录时,请使用您的标准用户名和密码。

    b. 注意:如果密码不起作用,请sudo reboot,然后再试一次。

  6. AppSocket/HP JetDirect,然后:

    a. 网络连接:socket://<ip_of_printer>:9100

    b. USB连接:socket://<usb_handle>,使用lpinfo -v |grep usb:查找,不需要"? location=1a200000"信息。假定已先安装适当的驱动程序。请注意,如果您的设备驱动程序不支持ARM架构,请参见this article

  7. 制造商:Raw(不是Generic)

  8. 命名它,分享它,继续
  9. 返回http://localhost:631的CUPS管理页面 a. 通过以下方式启用打印机共享:

    .[X] Share printers connected to this system

    . [X] Allow printing from the internet

[...] 如何从客户端访问它

这在不同平台上有很大的差异。

  1. 一般的URL格式是: http://<pi的ip>:631/printers/<在第8步中使用的名称>

    a. Windows:设备和打印机,添加打印机(而不是添加设备,在工具栏中),手动选择/未列出,本地或网络打印机,创建新端口,标准TCP/IP端口

    b. MacOS:启用,然后使用CUPS Web界面。GUI不能做到这一点。您需要在管理员组中,并知道您的用户ID(例如echo $USER

    c. Linux:使用GUI或CUPS,网络打印机,AppSocket / HP JetDirect


谢谢回复!与此同时,我通过使用这个教程解决了问题:https://www.lhinderberger.de/pi/2016/01/27/raspberry-pi-binary-x86-drivers.html - Photon
@Photon 感谢您的跟进。我已将您的链接添加到驱动程序部分。 - tresf
3
非常感谢“制作:原始(非通用)”。 - 5f0f5
坏消息 - Michael Sweet(CUPS [Apple]开发人员)表示,将在未来的版本中删除对RAW打印机的支持,以及对PPD文件的支持。他只想支持2010年之后生产的打印机。如果您的打印机不支持IPP v2.0,则需要为其编写自己的IPP v2.0到RAW shim。来源:https://github.com/apple/cups/issues/5271 - The Dude
1
@TheDude 感谢分享。我一直在与Michael Sweet积极互动,但Linux/Unix上RAW的最终解决方案/替代品尚未宣布。 - tresf
1
@tresf 谢谢。我希望能够解决这个问题。自从90年代末以来,我一直很高兴地在CUPS上使用原始打印机。 - The Dude

0

我知道这有点过时了,但我尝试了同样的事情并遇到了问题: 上面所说的是正确的,但我发现在我的设置中,HL-2030与Gutenprint驱动程序不兼容。我需要安装foomatic驱动程序。

sudo apt-get install foomatic-filters foomatic-db-engine

然后在Web界面的打印机列表中选择

Brother HL-2030 Foomatic/hl1250(推荐)

,一切都正常工作。


看起来Brother现在为ARM架构提供二进制驱动程序,因此不需要像从客户端运行驱动程序这样的黑客攻击。至少对于Brother HL-L2300D有效,不知道旧型号如HL-2030是否适用。 - Photon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接