一、交叉编译
        交叉编译的过程不赘述,跟其他开源软件类似。编译后将安装路径里的cups文件夹(后用[cups]代替)拷贝到板子上
       

二、配置并启动服务
        首先注意编译内核时需要选择usb printer surpport,支持usb打印机。

      [cups] /bin和 [cups] /sbin添加到环境变量

        ARM下没有安装程序,不会自动启动,所以一定注意手动启动:
        >cupsd
        (可以把启动指令cuped写入rcS,开机自动启动cups服务)
        启动时最好先连接打印机
      
         其他配置:
         可以在板子上编辑 [cups] /etc/cups/cupsd.conf 
         将LogLevel info
         改为LogLevel debug
         就可以在[cups]/var/log/cups/error_log中看到详细的debug信息

         更多其他配置都在 [cups] /etc/cups/cupsd.conf中进行,对其进行编辑即可。

三、三星系列打印机使用
    在官网上下载三星打印机驱动uld
           将三星的uld中(下用[uld]代替)的[uld]/arm/rastertospl   拷贝到:
           板子 [cups]/lib/cups/filter/ 下

           将[uld]/arm/libscmssc.so 拷贝到
           板子的/lib下

           在[uld]/arm/noarch/share/ppd下找到自己打印机型号对应的ppd
           我的ML-2166W用的ppd是:Samsung_ML-2160_Series.ppd

           将ppd拷贝至板子的 [cups]/share/cups/model下

           将已连接的ML-2166W打印机添加至CUPS配置,执行指令:
           lpadmin -p [NAME] -E -v [DEVICE] -m [PPD]
           例如:进入 [cups] /share/cups/model下执行
           > lpadmin -p ML-2166W -E -v /dev/lp0 -m   Samsung_ML-2160_Series.ppd

           然后执行
           >lpstat -t    (查看打印机状态)
         我的输出是:

      scheduler is running
      no system default destination
      device for ML-2166W: ///dev/lp0
      ML-2166W accepting requests since Sun Oct 3 18:57:08 2004
      printer ML-2166W is idle. enabled since Sun Oct 3 18:57:08 2004

         说明配置成功,同时可以在 [cups] /etc/cups/printer.conf中看到响应的配置
         
         设置默认打印机,执行
        >lpoptions -d ML-2166W 
        把ML-2166W设为默认打印机

        然后就可以打印ppm的图像文件了
        例如打印SD卡上的report.pbm文件:
        >lp /mnt/sdcard/report.pbm

        注意png jpg等图像文件还不能打印,如果需要打印,则要安装ghostScript
        通过GS把png等转换为pbm,再打印

四、部分错误解决方式:
           报错:
lpadmin: File device URIs have been disabled! To enable, see the FileDevice directive in "/etc/cups/cupsd.conf".
           解决:
编辑cupsd.conf,加入一行:
... # Allow new printers to be added using device URIs "file:/filename" FileDevice Yes ...
 
 
五、直接使用foo2zjs搞定部分型号打印机
   如果你使用的打印机foo2zjs已支持,可以不使用cups,直接用foo2zjs将ppm文件转换成打印机支持的流,传入打印机即可打印。
   1、交叉编译foo2zjs
   2、如果你的打印机需要固件,通过getweb下载固件,并转换成dl文件
   (以上两步只说思路,具体内容太多,可以自己搜索)
   3、将固件刷入打印机(以惠普的hp1020为例)
   > cp sihp1020.dl /dev/lp0  
   4、将ppm格式转换为打印机支持的流进行打印
   >./foo2zjs -p9 -r600x600 test.pbm > /dev/lp0
   
   注意:
   部分由foo2xqx支持的型号,参数与foo2zjs不同,例如惠普的p1007
   需要通过-z来选择型号
   >./foo2xqx -z1 -p9 -r600x600 test.pbm > /dev/lp0

   具体的参数可以通过
   > ./foo2zjs -h
   查看


http://blog.sina.com.cn/s/blog_9da24f3b0101otng.html
Logo

更多推荐