Chinaunix

标题: 基于ARM的cups移植,lpinfo -v 为什么没有显示我的USB打印机URI ? [打印本页]

作者: xylinux6    时间: 2015-04-28 17:00
标题: 基于ARM的cups移植,lpinfo -v 为什么没有显示我的USB打印机URI ?
本帖最后由 xylinux6 于 2015-04-28 18:00 编辑

大家好! 我在已经把cups-1.2.12移植到了ARM上并成功启动了cupsd服务。使用 lpinfo -l -v 命令显示可用的设备时发现USB连接的打印机怎么像是挂在了并口上?而在Ubuntu14.04上运行 lpinfo -l -v 则正常。
下边是在ARM上运行 lpinfo -l -v 的结果:
  1. [root@x210ii ~]# lpinfo -l -v
  2. Device: uri = socket
  3.         class = network
  4.         info = AppSocket/HP JetDirect
  5.         make-and-model = Unknown
  6.         device-id =
  7. Device: uri = parallel:/dev/lp0
  8.         class = direct
  9.         info = HP Deskjet 1000 J110 series LPT #1
  10.         make-and-model = HP Deskjet 1000 J110 series
  11.         device-id = MFG:HP;MDL:Deskjet 1000 J110 series;CMD:PCL,DW-PCL,DESKJET,DYN;CLS:PRINTER;DES:CH340D;CID:HPIJVIPAV1;LEDMDIS:USB#07#01#02,USB#FF#04#01;SN:CN36L18RBD05YD;S:038000C484001021002c1f01100c2881028;J:                    ;Z:0102,050361a700b228,0600,0c0,0e00000000,0f00000000,10000008000008,12000,143,150,16361a361a000116da189c0001,17000000000000;
  12. Device: uri = http
  13.         class = network
  14.         info = Internet Printing Protocol (http)
  15.         make-and-model = Unknown
  16.         device-id =
  17. Device: uri = ipp
  18.         class = network
  19.         info = Internet Printing Protocol (ipp)
  20.         make-and-model = Unknown
  21.         device-id =
  22. Device: uri = lpd
  23.         class = network
  24.         info = LPD/LPR Host or Printer
  25.         make-and-model = Unknown
  26.         device-id =
  27. Device: uri = scsi
  28.         class = direct
  29.         info = SCSI Printer
  30.         make-and-model = Unknown
  31.         device-id =
  32. Device: uri = serial:/dev/ttyS0?baud=115200
  33.         class = serial
  34.         info = Serial Port #1
  35.         make-and-model = Unknown
  36.         device-id =
  37. Device: uri = serial:/dev/ttyS1?baud=115200
  38.         class = serial
  39.         info = Serial Port #2
  40.         make-and-model = Unknown
  41.         device-id =
  42. Device: uri = serial:/dev/ttyS2?baud=115200
  43.         class = serial
  44.         info = Serial Port #3
  45.         make-and-model = Unknown
  46.         device-id =
  47. Device: uri = serial:/dev/ttyS3?baud=115200
  48.         class = serial
  49.         info = Serial Port #4
  50.         make-and-model = Unknown
  51.         device-id =
复制代码
在Ubuntu14.04上运行 lpinfo -l -v 的结果:
  1. root@ubuntu:/home/xylinux/0001/cups-1.2.12/cups# lpinfo -l -v
  2. Device: uri = socket
  3.         class = network
  4.         info = AppSocket/HP JetDirect
  5.         make-and-model = Unknown
  6.         device-id =
  7. Device: uri = usb://HP/Deskjet%201000%20J110%20series?serial=CN36L18RBD05YD
  8.         class = direct
  9.         info = HP Deskjet 1000 J110 series USB #1
  10.         make-and-model = HP Deskjet 1000 J110 series
  11.         device-id = MFG:HP;MDL:Deskjet 1000 J110 series;CMD:PCL,DW-PCL,DESKJET,DYN;CLS:PRINTER;DES:CH340D;CID:HPIJVIPAV1;LEDMDIS:USB#07#01#02,USB#FF#04#01;SN:CN36L18RBD05YD;S:038000C484001021002c1f01100c2881028;J:                    ;Z:0102,050361a700b228,0600,0c0,0e00000000,0f00000000,10000008000008,12000,143,150,16361a361a000116da189c0001,17000000000000;
  12. Device: uri = http
  13.         class = network
  14.         info = Internet Printing Protocol (http)
  15.         make-and-model = Unknown
  16.         device-id =
  17. Device: uri = ipp
  18.         class = network
  19.         info = Internet Printing Protocol (ipp)
  20.         make-and-model = Unknown
  21.         device-id =
  22. Device: uri = lpd
  23.         class = network
  24.         info = LPD/LPR Host or Printer
  25.         make-and-model = Unknown
  26.         device-id =
  27. Device: uri = parallel:/dev/lp0
  28.         class = direct
  29.         info = LPT #1
  30.         make-and-model = Unknown
  31.         device-id =
  32. Device: uri = scsi
  33.         class = direct
  34.         info = SCSI Printer
  35.         make-and-model = Unknown
  36.         device-id =
复制代码
因添加打印机需要它连接的URI,为什么我的USB打印机在ARM上”像是“挂在了并口上?怎么能让它正确地挂在USB上呢?
谢谢。
作者: xylinux6    时间: 2015-05-07 11:40
本帖最后由 xylinux6 于 2015-05-07 11:47 编辑

已解决。
导致我这个问题的原因在于:usblp模块没有加载进内核中
解决步骤如下:
1.
  1. lsmod//发现内核没有加载上usblp模块
复制代码
2. 手动加载内核模块
  1. modprobe -a usblp  //如若提示找不到模块,则需重新编译内核。重新编译后,加载成功
复制代码
3. 但 lpinfo -v 命令仍然无法发现usb打印机,
  1. ls -l /dev/usblp0  //发现输出信息的第一列首字母不是c(字符设备)
复制代码
解决方法:进入到/dev/下,
              a.
  1. rm usblp0  //删除节点
复制代码
b.
  1. mknod usblp0 c 180 0  //手动新建节点,'c'表示字符设备,180表示major number, 0表示minor number。(这两个数字尚不清楚,见谅)
复制代码
c.
  1. chmod 744 usblp0  //cups需要对usblp0文件具有可执行权限
复制代码
4. 对我来说,以上步骤解决了我的问题。
/*
      希望我的经历能够帮到其他人,谢谢。
*/

作者: topo    时间: 2015-05-30 16:43
遇到相同问题,/dev/lp0创建,backend 的parrllel能发现设备,usb不行,一直找不到问题,usblp0查看加载模块的时候的确没有,但dmesg能看到影子,菜鸟,刚学,不知道原因,modprobe usblp 也不能创建,看来得重新编译内核了。多谢你的文章,有联系方式吗?加qq:38350771
作者: xylinux6    时间: 2015-06-01 11:11
不客气,希望对你能有所帮助。回复 3# topo


   
作者: ganyu999    时间: 2015-09-10 09:36
你好。我也是做了嵌入式linux系统,是用的Ramdisk的。我现在是要连接打印机,不知道怎么处理cups,还有开机启动cups服务。方便价格QQ或者什么交流下吗?
回复 1# xylinux6


   
作者: xylinux6    时间: 2015-10-29 15:03
本帖最后由 xylinux6 于 2015-10-29 15:04 编辑
  1. /* For PageSize=A4 */
  2. float    PageLeft = 51.0f,                 //Left margin
  3.           PageRight = 544.0f,                 //Right margin
  4.           PageBottom = 56.0f,                 //Bottom margin
  5.             PageTop = 786.0f,                 //Top margin
  6.           PageWidth = 595.0f,                 //Total page width
  7.           PageLength = 842.0f;         //Total page length
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2