上次讲到交叉编译ghostscript,今天就来看看如何利用gs等软件,在arm开发板上驱动激光打印机,手头只有usb接口的hp 1020 plus,就锁定这款吧。

1)要想Linux支持usb打印机,需要在内核选项中 <*>   USB Printer support

2)在网络上搜索,hp 1020 plus如果想在linux下使用,需要一个叫foo2zjs的驱动程序(http://foo2zjs.rkkda.com/),能否通过交叉编译,只能祈求god bless咯

(1)解压foo2zjs,查看Makefile,直接添加CC=arm-linux-gcc,编译。
(2)编了一会就停止了报错make: *** 没有规则可以创建“all”需要的目标“printer-profile”。
幸运的是此时foo2zjs的可执行文件已经编译完成并可用了。

3)下面的操作在arm开发板上进行:
(1)插上usb打印机
/ # usb 1-1: new high speed USB device using s1r72v17 and address 2
usb 1-1: Product: HP LaserJet 1020
usb 1-1: Manufacturer: Hewlett-Packard
usb 1-1: SerialNumber: JL3ESMZ
usb 1-1: configuration #1 chosen from 1 choice
drivers/usb/class/usblp.c: usblp0: USB Bidirectional printer dev 2 if 0 alt 0 proto 2 vid 0x03F0 pid 0x2B17

(2)mdev -s生成lp0节点,位于/dev/lp0

(3)使用gs生成pbm文件
./gs -q -dBATCH -dSAFER -dQUIET -dNOPAUSE -sPAPERSIZE=a4 -r300x300 -sDEVICE=pbmraw -sOutputFile=test.pbm test.pdf

(4)调用foo2zjs打印pbm文件
./foo2zjs -z1 -p9 -r600x600 test.pbm > /dev/lp0

可以看看foo2zjs的帮助,修改附带参数

/ # ./foo2zjs -h
Usage:
   foo2zjs [options] <pbmraw-file >zjs-file

Convert Ghostscript pbmraw format to a monochrome ZJS stream,
        for driving the Minolta/QMS 2300 DL network color laser printer
        and other Zenographics-based black and white printers.

gs -q -dBATCH -dSAFER -dQUIET -dNOPAUSE \
                -sPAPERSIZE=letter -r1200x600 -sDEVICE=pbmraw \
                -sOutputFile=- - < testpage.ps \
        | foo2zjs -r1200x600 -g10200x6600 -p1 >testpage.zm

foo2zjs [options] <bitcmyk-file >zjs-file
   foo2zjs [options] <pksmraw-file >zjs-file

Convert Ghostscript bitcmyk or pksmraw format to a color ZJS stream,
        for driving the Minolta/QMS 2300 DL network color laser printer
        N.B. Color correction is expected to be performed by ghostscript.

gs -q -dBATCH -dSAFER -dQUIET -dNOPAUSE \
            -sPAPERSIZE=letter -g10200x6600 -r1200x600 -sDEVICE=bitcmyk \
            -sOutputFile=- - < testpage.ps \
        | foo2zjs -r1200x600 -g10200x6600 -p1 >testpage.zc

Normal Options:
-c                Force color mode if autodetect doesn't work
-d duplex         Duplex code to send to printer [1]
                    1=off, 2=longedge, 3=shortedge
                    4=manual longedge, 5=manual shortedge
-g <xpix>x<ypix> Set page dimensions in pixels [10200x6600]
-m media          Media code to send to printer [1]
                    1=standard 2=transparency 3=glossy 257=envelope
                    259=letterhead 261=thickstock 262=postcard 263=labels
-p paper          Paper code to send to printer [1]
                    1=letter, 5=legal 7=executive 9=A4 11=A5 13=B5
                    20=env#10, 27=envDL 28=envC5 34=envB5 37=envMonarch
-n copies         Number of copies [1]
-r <xres>x<yres> Set device resolution in pixels/inch [1200x600]
-s source         Source code to send to printer [7]
                    1=upper 2=lower 4=manual 7=auto
                    Code numbers may vary with printer model
-t                Draft mode. Every other pixel is white.
-J filename       Filename string to send to printer []
-U username       Username string to send to printer []

Printer Tweaking Options:
-u <xoff>x<yoff> Set offset of upper left printable in pixels [0x0]
-l <xoff>x<yoff> Set offset of lower right printable in pixels [0x0]
-L mask           Send logical clipping values from -u/-l in ZjStream [3]
                  0=no, 1=Y, 2=X, 3=XY
-A                AllIsBlack: convert C=1,M=1,Y=1 to just K=1
-B                BlackClears: K=1 forces C,M,Y to 0
                  -A, -B work with bitcmyk input only
-P                Do not output START_PLANE codes. May be needed by some
                  some black and white only printers.
-X padlen         Add extra zero padding to the end of BID segments [16]
-z model          Model: 0=2300DL 1=hp1020 [0]

Debugging Options:
-S plane          Output just a single color plane from a color print [all]
                  1=Cyan, 2=Magenta, 3=Yellow, 4=Black
-D lvl            Set Debug level [0]
-V                Version $Id: foo2zjs.c,v 1.84 2009/03/07 21:46:43 rick Exp $

打印效果没的说,就是打印大文件速度慢了点,最快的左边那张也要10s

#Linux

[arm-linux]使用arm驱动hp1020激光打印机相关推荐

  1. arm linux免驱usb声卡,arm linux利用alsa驱动并使用usb音频设备

    一.背景: arm linux的内核版本是3.13.0 二.准备工作 添加alsa驱动到内核中,也就是在编译内核的时候加入以下选项: 接下来就重新编译内核即可 三.交叉编译alsa-lib和alsa- ...

  2. linux usb网卡驱动 ko,qf9700 USB网卡在x86 linux和arm linux上的驱动安装以及配置

    最近要在一块老板子上面移植openwrt,需要扩展网口,于是选择了qf9700这款USB网卡,附赠的光盘里面有提供在linux下面安装的驱动源代码,所以我们要自己编译驱动源代码生成内核加载模块,加载模 ...

  3. arm linux i2c 总线驱动,ARM-Linux中I2C总线驱动开发

    摘  要: 针对I2C总线的特点,Linux内核中定义了I2C驱动体系结构.在分析Linux的I2C总线驱动体系结构基础上,介绍了在S3C2410中设计I2C总线驱动的方法. 关键词: ARM-Lin ...

  4. 嵌入式arm linux工控机,ARM工控机和X86嵌入式工控机的区别

    四信工控机采用ARM架构的处理器结合Android操作系统,动力强劲,轻盈优雅,为移动互联网时代的智能售货机带来全新的解决方案.ARM工控机和X86有什么不一样的地方呢? arm和x86这两个架构之间 ...

  5. ffmpeg arm linux编译,arm linux 移植 ffmpeg 库 + x264 + x265

    背景 Ffmpeg 中带有h264的解码,没有编码,需要添加x264.libx264是一个自由的H.264编码库,是x264项目的一部分,使用广泛,ffmpeg的H.264实现就是用的libx264. ...

  6. glib 2.0 arm linux,为ARM编译Glib

    一些有用的参考: http://gtk-doc-cn.googlecode.com/svn/docs/glib/glib-cross-compiling.html http://blog.sina.c ...

  7. arm linux 中断优先级,ARM中断处理过程

    以s3c2440 ARM9核为例: 一:s3c2440 ARM处理器特性: 1.S3C2440支持60个中断源,含子中断源: 2.ARM9采用五级流水线方式: 3.支持外部中断和内部中断: 二.s3c ...

  8. arm linux fpu,ARM处理器的浮点运算单元(FPU)

    浮点运算单元(FPU)简介 Float Point Unit,浮点运算单元是专用于浮点运算的协处理器,在计算领域,例如三角函数以及时域频域变换通常会用到浮点运算.当CPU执行一个需要浮点数运算的程序时 ...

  9. arm linux tcp,ARM Linux多连接TCP服务器的应用程序设计

    嵌入式Linux工控主板EM9160的主要功能之一就是作为网络平台,工控领域中比较常见的网络应用是利用TCP/IP协议进行数据通讯.在网络应用中,通常都实现多连接的应用需求,本文主要介绍EM9160作 ...

最新文章

  1. 为了方便读者检索和阅读以往的内容,已开通“号内搜”功能
  2. mysql主从切换机制torch_Mysql主从复制 - osc_y0vjyklt的个人空间 - OSCHINA - 中文开源技术交流社区...
  3. python画三维立体图-Python 竟能绘制出如此酷炫的三维图
  4. 原始代理需要改进的地方
  5. 数据中台到底包括什么内容?一文详解架构设计与组成
  6. Fiddle:使用断点:bpu,bpafter
  7. “滚!”央视、腾讯暂停NBA季前赛转播,NBA被中国市场“下架”!
  8. css3中transition和display的坑
  9. 整理了10个行业的30份可视化大屏模板,可直接拿走套用
  10. Jenkins持久化集成使用
  11. Linux firewall防火墙详解(一)——firewall基础知识简介
  12. 小米平板2wifi驱动下载_小米平板2windows系统无线网怎么连接
  13. 数学基础(9)--MATLAB 数据拟合 SSE,MSE,RMSE,R-square
  14. python编写鸡兔同笼程序_Python解决鸡兔同笼问题的方法
  15. php调查问卷数据库,关于一个问卷调查的程序,如何插入数据库
  16. 性能测试——jmeter性能测试——重点—核心——线程组、Ramp-Up Period、Loop Count 次采样...
  17. 阿里云服务器地域节点测试IP分享(国内+海外)Ping值延迟测试
  18. try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后
  19. CASA(Carnegie-Ames-Stanford Approach)模型、MAXENT模型
  20. 通过L0phtcrack 7进行账号口令破解

热门文章

  1. maven install 提示:Process terminated
  2. Java程序占用 CPU 过高怎么排查
  3. iOS11降级到iOS10.3.3/10.3.2教程
  4. 高性能RTMP推流服务器软件EasyDSS如何支持推流摄像机推流直播进行云端录像存储及计划保存
  5. 第三方SDK:百度地图(二)定位 + 鹰眼轨迹
  6. Burpsuite配置抓apk流量代理设置脚本
  7. python从入门到入土表情包-我用Python一键保存了半佛老师所有的骚气表情包
  8. c++ notes (very basic)
  9. nginx如何解析html响应,在nginx中,如何返回http 500返回码并包含响应客户端的响应体...
  10. 出色性能+创新设计 新华三AMD服务器