[arm-linux]使用arm驱动hp1020激光打印机

2019-07-13 06:59发布

上次讲到交叉编译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] 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] zjs-file
   foo2zjs [options] 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 x 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 x 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 x Set offset of upper left printable in pixels [0x0]
-l x 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