在CUPS上实现LPD协议驱动

用CUPS作为网络打印服务器,其他计算机作为客户端可以通过CUPS实现对打印机的管理。

客户端常用方法是通过IPP协议安装打印机驱动。。安装步骤如下:

1)在弹出的对话框中选择“添加打印机”

2)选择添加的打印机类型为“网络打印机”

3)在URL下输入地址:http://10.2.2.3:631/printers/ll,其中10.2.2.3为cups打印服务器的IP地址,631为cups服务端口,ll为添加的打印机的名称。

4)点击“下一步”,然后提供Windows下的打印机驱动即可。

以上是客户端通过IPP协议安装驱动。但是IPP协议在Windows 2000下并不能完全兼容(在某些网段上无法搜索到打印机),而且IPP协议有个缺点,就是在打印机关闭的情况下,客户端某些软件启动会搜索打印机。某些软件在调用createNewDocument函数时花费的时间很长。该函数为windows的MFC库函数,为根据文档模板中记录的运行时信息创建文档视图模型对象。根据微软公开的资料,与打印机状态没有关系,但在实际使用中,发现该函数调用底层库时,对默认打印机的状态进行查询。由于默认打印机设为网络打印机,操作系统底层会从网络中搜索该台打印机,由于该打印机状态为关机,无法及时得到它的状态,所以操作系统底层会在网段上搜索打印机,直到超时返回,此过程需要10秒钟到1分钟,视网络环境而定。

以上缺点影响了CUPS在某些系统中的应用。为解决这个问题,可以将打印协议改为LPD协议,从而避免每次使用打印机时进行实时查询。LPD协议为假脱机协议,对Windows而言,安装了LPD协议的打印机始终是出于“就绪”状态。只有在真正进行打印任务时,Windows才会将数据通过LPD协议发送到打印机,此时若打印机出于“不可使用”状态,则会返回给上层应用软件:该打印机不可用。

CUPS本身支持LPD协议。在CUPS服务器端,需要将inetd添加到系统服务中,建立/etc/inetd.conf,添加一行:printer stream tcp nowait root/arm_cups/lib/cups/daemon/cups-lpd cups-lpd。这样CUPS服务器端就支持LPD协议了。

(注意:arm_cups/etc/cups/cupsd.conf 里调试等级不能是debug2。在ipp.c中add_job函数中,一个调试信息cupsdLogMessage(CUPSD_LOG_DEBUG2,"add_job(%p[%d], %p(%s), %p(%s/%s))",

con, con->http.fd, printer, printer->name,

filetype, filetype->super,filetype->type);

会导致程序崩溃。因为filetype 为NULL。

安装步骤如下:

1.    进入控制面板----打印机和传真机,点击“添加打印机”按钮,如下:

2.    点击“下一步”,在弹出的界面上,选择“连接到此计算机的本地打印机”,点击“下一步”。

3.    在弹出的“选择打印机端口”界面上,选择“创建新端口”,端口类型为“Standard TCP/IP Port”,然后点击“下一步”。

4.    在弹出的界面上,点击“下一步”。

5.    在弹出的“添加端口”界面上,打印机名或IP地址栏输入打印机的IP地址,点击“下一步”。

6.    在弹出的“需要额外端口信息”界面上,点击“自定义----设置”;

7.    点击“下一步”,在弹出的界面上选择LPR,队列名称为“打印机名称”,将“启用了LPR字节计数”前的复选框勾上,点击确定。特别注意,本步骤非常重要。.

8    点击确定后回到前一窗口,再点击“下一步”,再点击“完成”。

9.    在弹出的界面上,点击“从磁盘安装…”。

接下来正常安装驱动文件。安装成功后,则在“打印机和传真”窗口中显示出安装的打印机。

时间: 2024-10-08 12:09:57

在CUPS上实现LPD协议驱动的相关文章

动态路由上的RIP协议配置

RIP理论部分 RIP路由协议工作原理: v 定期更新(Periodic Updates):每经过特定时间周期就发送更新信息.邻居(Neighbors):共享相同数据的路由器. v 广播更新(Broadcast Update):路由器首次被激活时,会使用最简单的方法,向广播地址发送更新信息. v 全路由表更新(Full Routing Table Update):广播它的整个路由表. RIP的度量值与更新时间: 在RIP中规定了跳数的最大值15,16跳视为不可达. RIP使用UDP协议,端口号为

如何在Windows系统上利用Telnet协议连接Linux服务器

Telnet协议是Internet远程登录服务的标准协议,它为用户提供了在本地计算机上完成远程主机工作的能力.很多终端使用者都习惯在计算机上利用Telnet会话来远程控制服务器.这里小编就分两步为大家演示如何在Windows系统上利用Telnet协议连接Linux服务器. 步骤一:在Windows系统上打开Telnet功能:  步骤二:在Linux系统上启用Telnet服务. 步骤一:Windows终端开启Telnet功能 1/由于在Windows Vista之后的版本默认并没有提供Telnet

Linux-2.6.39在Tiny6410上的移植 - 外设驱动移植

Linux内核版本号:linux 2.6.39 交叉编译工具:arm-linux-gcc 4.5.1 Linux内核下载:www.kernel.org 开发板:友善之臂Tiny6410 LCD:友善之臂S70 一.移植LED驱动 打开arch/arm/mach-s3c64xx/mach-mini6410.c添加下列代码: 1 static struct gpio_led tiny6410_gpio_led[] = { 2 [0] = { 3 .name = "led1", //设备名

在centos7(EL7.3 即 kernel-3.10.0-514.X )上安装BCM4312无线网卡驱动要注意的问题

我新装的centos7主机无法使用里面自带的网卡,查询后发现网卡型号为BCM4312.我在看资料安装的过程中遇到了些问题,纠结了好久,现在分享下要注意的点,为后来的遇到同样问题的人提供点帮助.现在开始说正事: 若要安装以 Broadcom BCM4311.BCM4312.BCM4313.BCM4321.BCM4322.BCM43224.BCM43225.BCM43227 或 BCM43228 为基础的无线网络卡,请遵照以下的步骤: 第 1 步:辨认无线网络芯片及安装时依赖的组件 首先,请确定你是

在CC2541上移植SD卡驱动

CC2541不知道现在还有没有人用,当初算是BLE芯片里头资料比较丰富的一个,只是硬件资源太菜了,51内核真是捉急.去年因为某些原因,在上面实现了SD卡驱动,估计还没有人做过,现在把过程发出来,让大家瞧瞧. CC2541本来是用于低功耗蓝牙通信的,一般也不会有人用来扩展SD卡.不过肯定还是存在一些特殊需求用户,对吧.高速的SD卡驱动一般都用SDIO总线,CC2541自然只能用SPI总线了,速度不会太快,SPI时钟只能到4M.而且受限于CC2541的BLE协议栈,不能存太多的东西,否则时间过长会影

【渗透课程】第二篇上-http请求协议的简单描述

HTTP协议剖析 什么是HTTP协议?如何发起请求?我认为这样讲大家能够理解: 浏览器访问网站也是http请求的一个过程.当你打开浏览器,访问一个URL (协议://服务器IP:端口/路径/文件)的时候,相当于向服务器发送了一个http请求,然后服务器会根据你的请求,向你响应一个HTML数据.这个客户端与服务端交互的过程叫做http协议.那么这个协议的过程是什么样子的呢?(简版) 1:客户端向服务端发送请求 2:服务端向客户端响应html数据 3:连接自动切断 PS:这个请求只能由客户端发起,而

在Citrix NetScaler上启用Framehawk协议

首先来看一个Citrix Framehawk技术和Vmware PCoIP技术的对比视频,在丢包率 5% - 50% 之下的测试区别逐步明显,在移动设备无处不在的今天,这正是我们梦寐以求的远程接入技术! 曾在2013年,在著名的虚拟化技术网站BrianMadden看过一篇文章 Is VMware thinking about ditching PCoIP? If so, they should look at Framehawk. 作者强烈建议VMware收购此公司来弥补协议方面的劣势,但出乎意

物联网常见通信协议与通讯协议梳理【上】- 通讯协议

先说明, 这是在微信公众号看到的,不是自己所写, 觉得别人总结的很好, 就拿过来了.对于学习, 做一个搬运工也不可耻了,将好的知识自己吸收.  在微信公众号里, 没有找到连接. 1  "通信"与"通讯"傻傻分得清 传统意义上的"通讯"主要指电话.电报.电传.通讯的"讯"指消息(Message),媒体讯息通过通讯网络从一端传递到另外一端.媒体讯息的内容主要是话音.文字.图片和视频图像.其网络的构成主要由电子设备系统和无线电系统构

udp - IPv4 上面的 UDP 协议.

SYNOPSIS (总览) #include <sys/socket.h> #include <netinet/in.h> udp_socket = socket(PF_INET, SOCK_DGRAM, 0); DESCRIPTION(描述) 这是一个 RFC768 中的用户数据报协议的实现. 它实现无连接的, 不可靠的数据报信息包服务. 信息包可能在它们传输到达之前重新排序或者重复. UDP 通过生成和检查校验和来俘获传输错误. 当创建一个 UDP 套接字时, 它的本地和远程地