嵌入式Linux下CUPS移植

一、交叉編譯
     交叉編譯的過程不贅述,跟其他開源軟件類似。編譯後將安裝路徑裏的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
發佈了5 篇原創文章 · 獲贊 5 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章