12.04 中的并行端口问题

12.04 中的并行端口问题

我的机器上有一个连接到并行端口的“哑”打印机,在同一台机器上的“其他”常驻操作系统(来自 Redmond)下运行良好。我最近在机器上添加了 Ubuntu 12.04 作为双启动,但 Ubuntu 似乎根本无法识别并行端口。我设置打印机所需的只是一个普通的固定间距纯文本通用驱动程序,它存在,但没有显示并行端口。(其他打印机,都在 USB 端口上,似乎工作正常)。

根据网络上众多相互矛盾的建议中我认为最合理的建议,我采取了以下措施:

我添加了以下几行/etc/模块

  • parport_pc
  • ppdev
  • parport

然后,重新启动后,我检查这些线条是否仍然存在,事实确实如此。

我跑了

dmesg | grep par

并在输出中得到以下似乎与并行端口有关的引用:

[   14.169511] parport_pc 0000:03:07.0: PCI INT A -> GSI 21 (level, low) -> IRQ 21
[   14.169516] PCI parallel port detected: 9710:9805, I/O at 0xce00(0xcd00), IRQ 21
[   14.169577] parport0: PC-style at 0xce00 (0xcd00), irq 21, using FIFO [PCSPP,TRISTATE,COMPAT,ECP]
[   14.354254] lp0: using parport0 (interrupt-driven).
[   14.571358] ppdev: user-space parallel port driver
[   16.588304] type=1400 audit(1347226670.386:5): apparmor="STATUS" operation="profile_load" name="/usr/lib/cups/backend/cups-pdf" pid=964 comm="apparmor_parser"
[   16.588756] type=1400 audit(1347226670.386:6): apparmor="STATUS" operation="profile_load" name="/usr/sbin/cupsd" pid=964 comm="apparmor_parser"
[   16.673679] type=1400 audit(1347226670.470:7): apparmor="STATUS" operation="profile_load" name="/usr/lib/lightdm/lightdm/lightdm-guest-session-wrapper" pid=1010 comm="apparmor_parser"
[   16.675252] type=1400 audit(1347226670.470:8): apparmor="STATUS" operation="profile_load" name="/usr/lib/telepathy/mission-control-5" pid=1014 comm="apparmor_parser"
[   16.675716] type=1400 audit(1347226670.470:9): apparmor="STATUS" operation="profile_load" name="/usr/lib/telepathy/telepathy-*" pid=1014 comm="apparmor_parser"
[   16.676636] type=1400 audit(1347226670.474:10): apparmor="STATUS" operation="profile_replace" name="/usr/lib/cups/backend/cups-pdf" pid=1015 comm="apparmor_parser"
[   16.677124] type=1400 audit(1347226670.474:11): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/cupsd" pid=1015 comm="apparmor_parser"
[ 1545.725328] parport0: ppdev0 forgot to release port

我不知道这些是什么意思,但是“ parport0: ppdev0 forgot to release port ”这一行看起来不寻常。

我仍然无法为我的旧车添加打印机,所以我尝试了直接的方法,输入

echo “Hello” > /dev/lp0

并收到一条Permission denied消息。然后我尝试

echo “Hello” > /dev/parport0

它根本没有给我任何消息,但仍然没有打印任何东西。

运行该命令sudo /usr/lib/cups/backend/parallel得到以下结果:

direct parallel:/dev/lp0 "unknown" "LPT #1" "" ""

检查 /dev/parport0、所有者、组和其他的权限都设置为读写。

crw-rw---- 1 root lp  6, 0 Sep  9 16:37 /dev/lp0
crw-rw-rw- 1 root lp 99, 0 Sep  9 16:37 /dev/parport0

该命令的输出lpinfo -v包括以下行:direct parallel:/dev/lp0

我读过几篇网络帖子,它们似乎表明这个问题已经存在好几年了,但是由于没有足够的信息来解决这个问题(微软的阴影!),错误报告都被关闭了。

关于我可能遗漏了什么,有什么建议吗?

答案1

我不太确定,但是因为您对 lpt 的权限设置为 root,所以我认为可能有以下原因:

a) 将您的用户添加到 lp 用户组。使用以下命令完成任务:

gpasswd -a [user] lp

阅读 ArchWiki 中有关用户和群组的文章,了解有关如何使用群组访问某些系统硬件的更多信息。

事实证明 Launchpad 上有多个与此问题相关的错误。以下这些可能有帮助:

https://bugs.launchpad.net/hplip/+bug/802780
https://bugs.launchpad.net/hplip/+bug/718092
https://answers.launchpad.net/hplip/+question/161346

来自:(在另一篇文章中阅读)

添加打印机所需的权限

b) 您可以将 parport 权限更改为每个用户。但我不确定这是否是一个更好的主意。

sudo chmod 666 /dev/parport0

从: Fedora Parport 权限 - 但 Ubuntu 中也一样

答案2

此行为是由启用 FIFO 选项引起的。如果您重新编译内核并禁用 FIFO,您的打印机将像以前一样打印。

此处存在一个与此相关的错误:https://bugs.launchpad.net/ubuntu/raring/+source/linux/+bug/339752

然而糟糕的是我不知道他们什么时候会修复它:-(

答案3

简单方法。默认情况下,root 权限被禁用,请按照以下问答操作:(https://superuser.com/questions/301753/how-do-i-print-directly-to-lpt-port-in-ubuntu),希望能有所帮助。

答案4

删除 libsane-hpaio。此软件包抓取并保存并行端口。此软件包适用于连接到 LPT1 的 HP 扫描仪。

真让人头疼!!我不敢相信这种情况持续了这么长时间。

相关内容