安装Ubuntu 20.04后的打印机问题

安装了20.04版本后,我的台式机打印机就无法工作了。
打印机型号:HP Envy 5640,通过USB连接。 已安装hplip驱动。 已安装cups打印服务。
希望能得到一些建议。 打印机本身没有问题,因为我之前通过无线网络从另一台电脑上成功打印过。

6还有很多其他人也在这里抱怨20.04版本的打印机驱动问题。 - But those new buttons though..
3有没有任何打印机品牌在现代Ubuntu版本上能够无缝工作?花费在破解我的HP打印机上的时间根本不值得... - matanster
2@therobyouknow 我完全理解你现在对这个问题的感受。签名:一个因为不得不打印一些东西(紧急情况下)而与家人共度时光被Ubuntu搞得焦头烂额的人。 - 8bitjunkie
+1 非常感谢 @8bitjunkie,我能理解你的痛苦,因为我也有同样的经历。总体上,我对CUPS(通用Unix打印系统)持有很好的评价,并希望问题能够解决,但当然最好是根本不要发生这样的问题。编写测试、测试代码和测试结果应该成为开发过程的一部分,并与源代码一起存储在版本控制中。我原以为在开发20.04版本的开发人员应该知道18.04和20.04之间的变化会影响到哪些依赖项,包括打印功能,所以我之前的评论仍然适用 - 感谢您的支持,并希望问题能尽快解决! - therobyouknow
这个方法让我的打印机在Ubuntu上正常工作:https://askubuntu.com/questions/1296010/ubuntu-20-04-hp-4520-printer-recognized-by-hp-setup-tool-but-tool-hangs-on-step#comment2333288_1296121 - Ryan
14个回答

尝试使用sudo hp-setup -i命令。至少对于USB连接的打印机有效。这个方法最终帮助我解决了HP LaserJet Pro P1102w的问题。

这解释了为什么在我这种情况下,打印机在20.04全新安装后(在安装过程中保持开启并插入电源)仍然能够正常打印,尽管hplib缺少许多依赖项,但在删除打印机并尝试以正常方式重新安装(非管理员模式)并安装所有依赖项后,问题就解决了。明天会再确认一下(电脑不在身边),但我相当确定这对我来说已经足够了,提前感谢! - mikakun
1真不敢相信在经过了这么多其他的折腾之后,终于成功了!现在它显示打印队列是“无需驱动程序”,但实际上它只是让打印机正常工作而已... - matanster
这是正确的答案。Ubuntu 20.04及更高版本(截至2021-03-07)的问题在于它可以自动检测到许多惠普打印机,并使用无需驱动程序的模式进行自动设置,从而导致用户感到沮丧。相反,当Ubuntu检测到打印机时,应该自动运行“hp-setup”。 - Yan Li
最好的。它应该是被接受的答案! - MMD
这个不起作用,除非安装了SNMP。 - Juan Jimenez
谢谢,这个答案适用于在22.04上无线连接HP Photosmart B210。 - James Bradbury

如果打印机之前在使用hplip时正常工作,只需卸载ippusbxd软件包即可。
sudo apt remove ippusbxd

问题在于,至少在我的情况下,ippusbxd自动创建了一个无法工作并与我的hplip打印机冲突的打印机。

1非常非常感谢。这是导致我在安装Ubuntu 20.04.1 LTS后饱受困扰数月的“打印机繁忙”问题的原因,它阻止了正确的无线安装和hp-toolbox部署。我说过谢谢吗? - Bad Loser
运行sudo hp-setup -i并更改ppd文件的权限没有帮助(单独执行),但是这个方法有效! - oulenz
Ubuntu Mate;最近升级到20.04版本,使用Dell打印机。只需执行这个简单的步骤(删除ippusbxd),然后重置一下,排队的打印任务就会自动打印出来。 - Mrnatural
这对我来说没有起作用。 - Juan Jimenez

  1. 按照以下方式安装hplip图形界面:

    sudo apt install hplip-gui
    
  2. 从hplip图形界面中进入"操作",然后安装所需插件。

这样修复了 HP LasetJet 1018 型号的问题。


我已经按照以下步骤解决了问题,不确定是否所有步骤都是必需的,很可能只有第三步是解决方案。
  1. 移除并重新安装一些软件包:

    sudo apt-get update
    sudo apt-get remove hplip cups-filters cups hplip-data system-config-printer-udev
    sudo apt-get install build-essential tix groff dc axel cups
    sudo apt-get install cups-filters unp system-config-printer-gnome
    
  2. 从惠普开发者门户网站安装hplip: https://developers.hp.com/hp-linux-imaging-and-printing/gethplip

    版本3.20.5声称与20.04兼容,但在我的情况下无法解决问题:

  3. 最后,更改ppd文件的权限:

    sudo chmod 644 /etc/cups/ppd/HP_ENVY_4520_series_XXXXXX_.ppd 
    

    其中(我猜)XXXXXX应该是打印机序列号的一部分

现在打印机工作正常了。我花了几天时间才达到这个结果,打印机在19.10上运行得非常完美,所以我对这个问题有点失望。

这对我没有起作用,使用完全相同的打印机并且通过USB连接。我希望在更新中尽快解决这个问题,我在任何版本的Ubuntu中从未遇到过这个问题,我从9.04开始,现在是20.04。 - trond hansen
在我的Ubuntu 20.04.1 LTS机器上,通过无线连接与HP OfficeJet Pro 9010系列多功能打印机完美配合。 非常感谢您在此事上的帮助! - user99513

我有一个问题已经困扰了一段时间,尝试了上面发布的许多解决方案,但它们对我来说都不起作用(按照原文),不过我能够将它们混合使用,得出这个解决方案。我正在使用HP Deskjet 3520打印机。
  1. 我从Ubuntu 20.04.01开始。原始版本,而不是目前的20.04.03版本。
  2. 我立即运行了sudo apt remove ippusbxd
  3. 然后我从计算机中删除了所有打印机,然后拔掉并重新启动了打印机。
  4. 接下来我运行了sudo hp-setup -i
  5. 打印机现在可以工作,但我想今天升级到Ubuntu 21.04(我认为以下步骤适用于任何升级)
  6. 使用内置的软件更新程序升级到您想要的任何版本
  7. 打印机将不再工作。
  8. 然后我运行了sudo apt remove ipp-usb <- 注意这与上述第2步不同
  9. 然后我从计算机中删除了所有打印机,然后拔掉并重新启动了打印机。
  10. 然后我运行了sudo hp-setup -i
  11. 打印机工作了。

无论如何,我决定随后升级到21.10版本,然后打印机就正常工作了。希望这些步骤能有所帮助,因为找出解决方法真是一件痛苦的事情。


没有尽头的痛苦,但我成功在新安装的xubuntu 20.04.1 LTS上让我的LaserJet p1102w打印机工作。

  1. 关闭打印机,在"Printers"控制面板中删除Ubuntu安装的默认打印机。
  2. 在终端中,移除USB驱动 apt purge ippusbxd
  3. https://download.opensuse.org/repositories/home:/pzz/xUbuntu_20.04/amd64/下载并安装新的ipp-over-IP驱动(DEB)
  4. 打开打印机电源
  5. 在终端中运行hp-setup -i,按照安装程序建议安装带有PPD插件的USB打印机。测试页将无法正常工作。
  6. 从任何程序(如Libre Office)选择打印,您会发现两个(!)打印机,一个带有主机名后缀(1)mylaserjet,和(2)mylaserjet-lenovo
  7. 选择带有主机名后缀的第二台打印机,例如mylaserjet-lenovo进行打印。此打印机在"Printers"控制面板中不可见。
现在,终于,神奇地,我可以打印了。在之前的Ubuntu版本中,我只需将打印机插入USB接口,就能立即使用。有些事情发生了变化。感谢所有为解决这个问题做出贡献的人。

这对我来说很有效。
sudo apt update

sudo apt install hplip


这将带您进入屏幕,您需要决定I/O屏幕的模式 USB 或网络/以太网
它会下载状态管理器
然后您需要确认使用条款/许可协议
然后它会安装软件,并识别打印机型号,并要求您重新确认(在我的情况下是HP_LaserJet_Professional_p1108)
确认后,它会下载驱动程序并要求您指定位置。我选择了本地。然后它会安装驱动程序,并提供测试页面的选项。
希望这对您有所帮助。

我之前遇到了同样的问题,是一台Brother打印机。我尝试卸载cups并重新安装,但问题没有解决。接下来,我使用打印机设置图形界面卸载了打印机。然后我添加了一台新的打印机,它自动找到了驱动程序并加载了进去。现在它完美地工作了。所以如果你不是很懂技术,像我一样,我建议你先尝试使用图形界面删除并重新安装打印机,而不是在终端中进行任何操作。

我尝试按照下面的链接重新安装。

https://answers.launchpad.net/hplip/+question/690299

但是,我遇到了与下面错误相同的通信错误。
{{link1:"设备通信错误(5012)" - HP打印机}}
但是,上面链接中提到的解决方案只部分起作用。
我重新安装了Ubuntu 20.04 LTS,安装过程非常快速,仅需20分钟即可完成。
在安装过程中,我保持打印机开启,并且它自动检测到并开始正常工作,没有任何问题。
我能够打印: 1. Ubuntu测试页面。 2. 我能够双面打印文档。
希望这对其他人有所帮助。

我又发现自己来到了这里。
  • Ubuntu 20.04
  • 内核版本5.10+
运行hp-check命令,查看缺少哪些依赖项。
hp-check
sudo apt purge ippusbxd

安装依赖项:
sudo apt get install libcups2 \
libjpeg-dev libcups2-dev cups-bsd \
cups-client libcupsimage2-dev libusb-dev \
libsane-dev libsnmp-dev snmp-mibs-downloader \
python3-pyqt5 gtk2-engines-pixbuf \
python3-dev libtool libtool-bin \
libavahi-client-dev libavahi-core-dev

下载最新的.run文件

https://developers.hp.com/hp-linux-imaging-and-printing/gethplip

sudo apt install libcanberra-gtk-module libcanberra-gtk3-module

# this will fail, but unpacks a bunch of stuff into the directory
./hplip-3.21.6.run

./configure --prefix=/usr --enable-qt5 --disable-qt4
make -j$(nproc)
sudo make install

如果在运行hp-setup、hp-check等命令时出现以下错误:
Traceback (most recent call last):
  File "/usr/bin/hp-setup", line 48, in <module>
    from base import device, utils, tui, models, module, services, os_utils
  File "/usr/share/hplip/base/device.py", line 42, in <module>
    from . import status
  File "/usr/share/hplip/base/status.py", line 50, in <module>
    cupsext = utils.import_ext('cupsext')
  File "/usr/share/hplip/base/utils.py", line 2508, in import_ext
    return importlib.import_module(ext_name)
  File "/home/jm/.pyenv/versions/3.9.10/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named 'cupsext'


然后复制编译好的库文件:
# if you're using a pyenv
# sudo cp ./.libs/* /home/jm/.pyenv/versions/3.8.10/lib/python3.8/


尝试测试打印页面。
确保网络打印设置已经完成,参见其他答案等。

enter image description here

如果电源指示灯闪烁,请确保墨盒区域门也关闭好。