Chinaunix首页 | 论坛 | 博客
  • 博客访问: 20205
  • 博文数量: 7
  • 博客积分: 26
  • 博客等级: 民兵
  • 技术积分: 80
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-19 21:17
个人简介

国产平台专业Linux驱动开发

文章分类

全部博文(7)

文章存档

2014年(6)

2012年(1)

我的朋友

分类: LINUX

2014-09-23 14:12:51

转载来源:

linux桌面打印机配置指南 |


2014-01-28

Linux下打印机适配难,主要是Linux版本太多,导致厂商无力也无太大兴趣关心其,个人刚好接触过这一块,专门整理一份文档方便查阅。

摘要: Linux下打印机适配难,主要是Linux版本太多,导致厂商无力也无太大兴趣关心其,个人刚好接触过这一块,专门整理一份文档方便查阅。
作者: | 原文: | 发表:2014-01-28

目前Linux系统主流使用CUPSCommon Unix Printing System)打印服务系统。

HP printer

(HP Linux Imaging and Printing)开源项目提供的Linux驱动可以支持市面上大多数HP打印机,部分的打印机可能需要额外安装插件,插件一般为固件(.fw文件)或预编译的共享库(.so文件)(需要插件的设备一般不支持国产龙芯和ARM平台之类)。

支持情况查询:http://hplipopensource.com/hplip-web/supported_devices/combined.html
插件安装参考:
经分析,插件下载地址是:
安装目录: /usr/share/hplip/scan/plugins/

Canon printer

驱动地址:

几个Linux重要的打印机驱动包

HPLIP

上面已经介绍过,HPLIP开源项目由HP官方支持,包括打印和扫描扫描设备的驱动,同时包括hp-setup/hp-check等命令可供现场适配调试用。

foo2zjs

Linux著名的第三方开源打印机驱动,对于它的作者我一直没有搞清来历,只在项目主页看到一句充满愤怒的话,如下: > ** DON NOT USE the foo2zjs package from:
> Ubuntu, SUSE, Mandrake/Manrivia, Debian, RedHat, Fedora, Gentoo, Xandros, EEE PC, Linpus, MacOSX, or BSD!
> **
Download it here and follow the directions below.

foo2zjs项目有几个入口,但内容都是一样的,内包含多个小模块(foo2zjs/foo2slx/foo2qpdl/foo2xqx/foo2hbpl2等),可以直接从发行版仓库安装,也可自行下载源码包安装(编译安装方法参考包内INSTALL文件或主页说明)。

注意: 1 可能有多个驱动同时支持一款打印机;
2 HPLIP
项目中列出需要插件的HP打印机,如果使用foo2zjs驱动,同样需要安装插件。

gutenprint

没有仔细研究,建议直接通过发行版安装。

Linux系统打印机适配流程参考

鉴于Linux系统小众的原因,不是市面上每一款打印机都一定能适配成功,但可参考下面方法尝试。

1.       尽量升级驱动到最新版如升级CUPS/foo2zjs/hplip/guteprint/,或者是换最新的Ubuntu/Fedora发新版。

2.      查看硬件设备是否已识别,一般OK,否则可能是设备损坏或者连接有问题。
$ lsusb

3.      查看打印系统(CUPS)是否识别设备
$ sudo /usr/lib/cups/backend/usb #针对USB打印机 如果是HP打印机,可使用hp-setup命令以向导模式安装。

其他辅助操作

###lpadmin命令操作打印机配置 /usr/sbin/lpadmin -p TOEC--Printer -m OEP102B.ppd -v usb://TOEC/Printer #添加 /usr/sbin/lpadmin -d TOEC--Printer #设为默认

打印机后端调试

/usr/lib/cups/backend/usb #发现usb打印设备 CUPS_DEBUG_LEVEL=2 su-c " /usr/lib/cups/backend/ipp" 2>&1 | tee snmp.log #后端调试 usblp.ko #默认匹配多数usb打印机,适配施乐p105b时发现,自动加载模块导致无法发现设备(移除该模块后正常)

查看CUPS日志

/var/log/cups/error_log

Web方式管理CUPS打印系统

CUPS默认开启web后台管理服务,浏览器访问即可。

龙芯平台Canon Laser Shot LBP1120 适配记录

驱动地址: ###源码编译 README中说明了依赖、支持的设备及支持发行版情况。
源代码分为两部分:cndrvdups-commoncndrvcups-capt
cndrvdups-common
参考README,执行(已完成):
make gen make make install [DESTDIR=./root] cndrvcups-capt
./allgen.sh 错误:../libtool: line 841: X–tag=CC: command not found …
解决:缺少$echo定义导致(有$ECHO),在allgen.sh添加export echo=echo(make install前也要添加).

安装调试

按上面的步骤成功编译和安装驱动后,接入打印机自动生成配置,打印测试页失败。比较发现该下载包中预编译的RPM包,要多出一些文件(如/usr/bin/ccpd等),对应到源码下libs目录也有一份预编译的x86的二进制文件,看来canon驱动只是部分开放,下面的说明也验证了这个说法。


具体说,canon的这个驱动在cups和设备之间加了一个黑盒层(不开放源代码)ccpd,通过该守护进程实现功能,而该ccpd守护程序当前无法在Mips下运行。

该情况发送邮件询问canon欧洲官方支持,结果告知问题要发给canon中国解决,如下:

Dear good bai,

Thank you for having contacted Canon Europe customer support.

In order to provide you with the best response to your query, we have forwarded your >request to the local Canon Services & Support organisation responsible for your >geographical region.

Please do not hesitate to contact them directly at the following email address: >

Yours sincerely,

canon中国根本就不提供Linux驱动的下载,该驱动就是从canon欧洲官方网站下载到的。

初步结论:该驱动不支持龙芯平台(经官方方确认)。 ###UFR版驱动 UFR II Printer Driver for Linux Version 2.60
Information on Printers from Canon

URF驱动包与capt包类似,目前编译完成,可自动添加,开始报过滤期丢失,后来驱动无效。。。

补充:canon中国客服告知,LBP2900的唯一驱动是capt,这个与canon欧洲的capt驱动完全一致)

结论:该Canon打印机驱动可以支持X86 Linux系统,但无法支持龙芯等国产平台(因为预编译库为x86版)

通过cups配置打印机共享

·         Server端的设置
1
打印机设置界面中,右键单击想要共享的打印机,在菜单中共享一项前打“√”,表示启用共享。
2
打印机设置界面中,单击服务器,选择设定,输入root密码正确后,在弹出的服务器设定对话框中,勾选发布连接到该系统的共享打印机,其子项允许从互联网打印也要勾选。如果提示更改防火墙,选择更改防火墙。至此,server端设置完成。

·         Client端的设置
1
单击启动,选择系统”—>“硬件”—>“打印,打开打印机设置界面。
2 “
打印机设置界面打开后,单击添加按钮,输入root密码,出现新打印机界面
3
在此界面中选择查找网络打印机,在右边主机中输入serverip地址,然后点击查找
4
可以看到已经查找到网络打印机,单击右下角连接按钮,出现“IPP”选项,选择队列名为:/printers/HP-LaserJet-M1522nf-MFP“IPP”

扫描仪

关于HP扫描仪,通过与launchpad.nethplip 技术人员沟通知悉,hplip扫描的插件不支持mipsel架构,所以龙芯下不能扫描。
详见:

阅读(1789) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~