我使用的是 Debian Linux。我想确定打印机的用户基本页面限制,不同用户的不同页面限制。
我可以确定带有 CUPS 的打印机的页面限制,但无法确定单个用户的页面限制。
我怎样才能实现这个目标?
我最近刚刚安装了 Arch Linux,并注意到网络打印机(三星 C1860FW 型号)出现了一些奇怪的行为。我已通过 IPP 将 CUPS 连接到打印机,并使用 FooMatic 的 PPD。
每当我登录或插入闪存驱动器或 USB 设备时,打印机就会被唤醒。没有打印任何内容,但打印机的触摸屏打开并预热并准备打印,就像我按下电源按钮将其从睡眠模式唤醒一样。我将 CUPS 日志记录更改为调试级别并运行,udisksctl monitor
但没有显示任何相关内容。但是,登录控制台不会触发此操作;仅登录 Plasma。(我没有安装任何其他桌面。)
当我将设备插入电脑时会发生这种情况(后端口或前端口似乎并不重要)。
PC通过以太网/CAT5e连接;带 WiFi 的打印机。两者都直接连接到网关,也连接了一个交换机,但未使用。
打印机包含“SyncThru Web 服务”。我可以更改打印机保持预热的时间长度,但不能更改导致其唤醒的操作。
编辑:使用 Wireshark,数据包将发送到端口 9400 TCP,这显然意味着三星设备上的 TWAIN 协议,因此这与扫描有关。(我也将其连接为网络扫描仪。)
编辑2:使用NetHogs,我发现正在colord-sane
发送数据包。我也发现了这一点,但没有关于如何禁用此行为的相关答案。我将进一步调查...
编辑3:我在SE上发现了关于同一问题的另外两个问题:this和this。唯一的答案是卸载 colord,这可能是我必须要做的。
编辑4:我重命名了彩色服务文件。暂时修复了。
在 CUPS 中添加新打印机时,可以使用特定打印机型号的驱动程序,也可以使用“无驱动打印”。据我所知,现在几乎每台新打印机都支持 AirPrint,因此应该可以使用 CUPS 进行无驱动打印。
此外,Debian Wiki 上的打印文档(据我所知,其中大部分也适用于使用 CUPS 的非 Debian 系统)似乎表明无驱动打印是首选,甚至打印机驱动程序最终也不会不再支持 CUPS。例如参见无驱动打印部分。
是否有任何理由仍然需要或可取地使用打印机驱动程序?特别是,在购买用于 Linux 的新打印机时,是否有任何理由担心该特定打印机的 Linux 驱动程序的可用性(或缺乏),或者是否足以检查它是否支持 AirPrint?
我在 ARM 单板计算机上使用 CUPS 通过网络共享 USB 打印机。为了节省电力,打印机通常通过远程控制电源插座关闭电源,仅在需要时通过网络界面打开。通电后,打印机大约需要半分钟时间进行初始化并准备好接受打印作业。
即使打印机已关闭或仍在初始化,CUPS 也会将打印机显示为“空闲”和“就绪”,但lsusb
在打印机仍处于不可用状态时不会显示打印机。
我想要一种方法来判断打印机在发送打印作业之前是否已开机并初始化(如果打印机不可用,则可能会挂起或掉落)。
我熟悉内核模块并听说过 IPP、PPD、PS、PCL、PDL 打印机驱动程序概念。我已经读到Mac/Windows 上预装了“通用”打印机驱动程序,因此您不必安装自定义驱动程序,它使用户体验无缝。
有鉴于此,我正在寻找这些通用驱动程序的外观(假设它是一个内核模块)。还没有找到关于这个主题的任何例子,但找到了这些存储库:
与这些相关,我在 Gutenprint 中找到了:src/main/print-lexmark.c和src/main/canon-printers.h,其中包含这些cap_t
~table~ 东西,似乎具有为单个打印机型号编码的功能。这似乎有很多工作要做。有一个巨大的支持的Gutenprint打印机列表在这里。
我的问题分为几个部分:
我不得不export LC_PAPER=a4
从我的中删除,~/.bashrc
因为它破坏了字符显示screen
和其他一些应用程序:符号在 `screen` 中显示错误 - ascii 或 utf。
因此,问题是,如何a4
在不破坏事物的情况下设置为默认页面大小(因此在 Chrome 和其他应用程序中是默认值)?
不,我不想更改整个国家/地区/语言区域设置。我只想改变LC_PAPER
-> 有可能以非破坏性的方式制作吗?我错过了什么?
我想写入位于/dev/usb/lp0
. 该文件归lp
用户和组所有。每当我将打印机设备连接到系统时,就会创建此文件。
我尝试将自己添加到lp
组中。但是,lp0
连接打印机时该文件不会出现。将自己从群组中移除可以解决此问题。
获得写入权限的一种解决方案是-
sudo chmod 0666 /dev/usb/lp0
这让我在https://unix.stackexchange.com/a/28711找到了答案
shell 脚本被成功触发,但它不运行sudo command
*,因为 shell 脚本不是从终端执行的。我曾尝试使用sudo
和gksudo
,但都未能提示我输入密码,即,我无法通过后台 shell 脚本升级权限。
setuid
来自Unix & Linux @ StackExchange,但这似乎是一个非常糟糕的主意。echo 'my_insecure_password' | sudo -S command
,它没有用*。 Polkit
由于其复杂程度,我没有尝试,这是在其他答案中建议的。但我愿意按照正确的方向去做。