参考链接

http://blog.163.com/chujb_chen/blog/static/105711120109115059282/

cups 移植说明:

版本库

url:   http://17.251.224.41/cups.git

commit f28bae1aeae3964fba4f0728263657405f63c417   Tag 1.7.0

编译步骤:

    //在kernel 中添加对usb 打印机的支持cd cups-2.0autoconfig./configure --host=arm-linux --target=arm-linux --build=i686-linux CC=$(HOME)/bin/ti-sdk-am335x/linux-devkit/bin/arm-arago-linux-gnueabi-gcc CXX=$(HOME)/bin/ti-sdk-am335x/linux-devkit/bin/arm-arago-linux-gnueabi-g++ LD=$(HOME)/bin/ti-sdk-am335x/linux-devkit/bin/arm-arago-linux-gnueabi-ld RANLIB=$(HOME)/bin/ti-sdk-am335x/linux-devkit/bin/arm-arago-linux-gnueabi-ranlib AR=$(HOME)/bin/ti-sdk-am335x/linux-devkit/bin/arm-arago-linux-gnueabi-ar --disable-gnutls --disable-gssapi --disable-dbus --prefix=/opt/usr/local

修改

1.修改Makedefs文件130行为(移除man 支持)

    BUILDDIRS   =   filter backend berkeley cgi-bin monitor notifier ppdc scheduler systemv conf data desktop locale doc examples templatesmake//make会有一次错误,下次make就没有了make && make install DSTROOT=${PWD}/_install

2.修改配置文件

     /opt/usr/local/etc/cups/cups-files.conf将       SystemGroup lpadmin sys root改成     SystemGroup  root原因在于板子只有一个用户启动cups deamon :    /opt/usr/local/sbin/cupsd 或者  /etc/init.d/cups start默认的启动参数位于/opt/usr/local/etc/cups/ 该参数路径与编译时候的 --prefix有关

ghostscript-9.14移植

注意gs的启动需要${TEMPDIR}(一般是/tmp目录)
    Gs所做的工作就是将中间文件转化为适应各种打印机的打印机语言(或者叫光栅文件)。
    然后将该文件发送给打印机,打印机将光栅文件打印到纸张上,就是一次完整的打印过程。

文件

    http://www.linuxfromscratch.org/blfs/view/svn/pst/gs.htmlhttp://www.linuxfromscratch.org/blfs/view/svn/general/libpng.html
<pre name="code" class="plain">    ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/lpng1612.7z

ghostscript依赖png库libpng-1.6.12 wget downloads.ghostscript.com/public/ghostscript-9.14.tar.gz 文件校验和: 586494befb443363338c1b6379f13973 ghostscript-9.14.tar.gz 75f2e8ab8891d052ade9b64eb4eb5294 ghostscript-9.14.tar.bz2
297388a6746a65a2127ecdeb1c6e5c82  libpng-1.6.12.tar.gz
ee752da8aa75076500e4cf31318e636e  libpng-1.6.12.tar.xz
056f615a212325da11627bc07e7aac5a  lpng1612.zip

步骤

编译步骤:1.编译PC版本./configure make编译PC版本一般不会报错,如有报错应该是主机缺少必要的库,自行解决2.备份交叉编译时需要用到的文件cp obj/aux/genarch  genarch_backcp obj/aux/genconf  genconf_backcp obj/aux/echogs   echogs_backcp obj/aux/mkromfs  mkromfs_back3.编译ARM版本./configure --host=arm-linux --prefix=/opt/usr/local --disable-gtk --disable-cups --disable-fontconfig--prefix选项需要注意.该选项是说明你将要将gs库安装到的根目录.在ubuntu下,默认安装位置是 /usr . 但是我们目前的单板是安装在/opt/usr/local下.根据不同的需求自行更改4.修改Makefile文件# Define the default gcc flags.GCFLAGS=  -Wall -Wstrict-prototypes -Wundef -Wmissing-declarations -Wmissing-prototypes -Wwrite-strings -Wno-strict-aliasing -Wdeclaration-after-statement -fno-builtin -fno-common -DHAVE_STDINT_H=1 -DHAVE_DIRENT_H=1 -DHAVE_SYS_DIR_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_TIMES_H=1 -DHAVE_INTTYPES_H=1 -DGX_COLOR_INDEX_TYPE="unsigned long long"主要修改: 将-DGX_COLOR_INDEX_TYPE="unsigned long int"  改成 -DGX_COLOR_INDEX_TYPE="unsigned long long"将 AR=arm-none-eabi-ar                                                      ARFLAGS=qc                                                               RANLIB=arm-none-eabi-ranlibCC=arm-none-eabi-gcc                                                     CCAUX=arm-none-eabi-gcc改成AR=$(HOME)/bin/ti-sdk-am335x/linux-devkit/bin/arm-arago-linux-gnueabi-ar                      ARFLAGS=qc                                                                RANLIB=$(HOME)/bin/ti-sdk-am335x/linux-devkit/bin/arm-arago-linux-gnueabi-ranlib将CAPOPT= -DHAVE_MKSTEMP -DHAVE_FILE64 -DHAVE_FSEEKO -DHAVE_MKSTEMP64   -DHAVE_SETLOCALE -DHAVE_SSE2 -DHAVE_DBUS -DHAVE_BSWAP32 -DHAVE_BYTESWAP_H -DHAVE_STRERROR改成CAPOPT= -DHAVE_MKSTEMP -DHAVE_FILE64 -DHAVE_FSEEKO -DHAVE_MKSTEMP64   -DHAVE_SETLOCALE -DHAVE_DBUS -DHAVE_BSWAP32 -DHAVE_BYTESWAP_H -DHAVE_STRERROR        主要修改是移除了SSE2指令集的支持.SSE2是X86平台的指令集,在ARM上不支持依据不同情况更改将   STDLIBS=-lpthread -lm改成 STDLIBS=-lpthread -lm -static 若是目标板子上已经存在pthread动态库,此处可以不更改,但是在最后的编译结果中会有警告5.编译make -j4make 过程中会有两次错误第一次执行:cp genarch_back obj/aux/genarch  cp genconf_back obj/aux/genconf  cp echogs_back obj/aux/echogs   touch obj/aux/genarch  touch obj/aux/genconf  touch obj/aux/echogs   第二次cp mkromfs_back obj/aux/mkromfs  touch  obj/aux/mkromfs  make -j4//make完成后会有关于pthread 和 enum 32 bit相关的警告,选择忽略或者解决自行决定make install DESTDIR=${PWD}/_install    //完成对目标文件的copy,执行将文件copy到单板

foo2zjs 移植

参考:http://blog.csdn.net/liaozhenqiu/article/details/6311690
    说明:foo2zjs HP XQX 打印通信协议驱动程序
    下载 wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz

步骤

        cd foo2zjs//编译PC版本的额foo2zjs文件makecp  arm2hpdl ../  (保存该文件,事实上此步骤可以省略)//编译arm版本的文件.注意:foo2zjs需要cups的支持//修改Makefile文件,在最开始添加CC=$(HOME)/bin/ti-sdk-am335x/linux-devkit/bin/arm-arago-linux-gnueabi-gcc//修改动态链接库的支持command2foo2lava-pjl: command2foo2lava-pjl.o//-  $(CC) $(CFLAGS) -L/usr/local/lib command2foo2lava-pjl.o -lcups -o $@$(CC) $(CFLAGS) -L$(HOME)/cups/cups-2.0/out/opt/usr/local/lib command2foo2lava-pjl.o -lcups -o $@//修改command2foo2lava-pjl.c文件-#include <cups/sidechannel.h>-#include <cups/cups.h>-#include <cups/ppd.h>+/*#include <cups/sidechannel.h>*/+/*#include <cups/cups.h>*/+/*#include <cups/ppd.h>*/+#include "$(HOME)/cups-2.0/out/opt/usr/local/include/cups/sidechannel.h"+#include "$(HOME)/cups-2.0/out/opt/usr/local/include/cups/cups.h"+#include "$(HOME)/cups-2.0/out/opt/usr/local/include/cups/ppd.h"make//加载固件//生成固件:// ./getweb P1008//利用x86平台的arm2hpdl ./arm2hpdl sihpP1006.img > sihpP1008.dlcat /bin/sihpP1007.dl > /dev/lp0 //将需要的可执行文件copy到板子上//执行命令,可以得到打印机的相关信息usb_printerid /dev/lp0打印测试:在PC端执行:gs -q -dBATCH -dSAFER -dQUIET -dNOPAUSE -sPAPERSIZE=a4 -r1200x1200 -sDEVICE=pbmraw -sOutputFile=./test.pbm test.pdf在单板执行:foo2xqx -p9 -r1200x1200 test.pbm > /dev/usb/lp0

其他

添加打印机:

/opt/usr/local/sbin/lpadmin -p HP_LaserJet_P1008 -E -v /dev/usb/lp0 -m /opt/usr/local/etc/cups/ppd/hp-laserjet_p1008.ppd

设置默认打印机

lpoptions -d HP_LaserJet_P1008

Linux 打印机移植说明相关推荐

  1. mac软件移植linux,相比软件迁移 Apple Silicon Mac的Linux系统移植工作更困难

    Asahi Linux 项目团队在博客文章中写道,他们尝试了在 Apple Silicon 系统上设置备用启动内核.虽然已实现大多数功能,但还是缺乏对安装非苹果内核的命令支持. Apple Insid ...

  2. linux移植会话层层协议,Linux内核移植-南京林业大学毕业设计.DOC

    Linux内核移植-南京林业大学毕业设计 南京林业大学 本科毕业设计(论文) 题 目:嵌入式LINUX在ARM9系统中的移植 院 (系) 信息与科学技术学院 专 业 计算机科学与技术 学 生 谢监荣 ...

  3. 6410 linux内核移植

    linux内核移植(6410) linux内核移植一,硬件环境:友善之臂 tiny6410 开发板开发主机Linux系统:fedora 10 编译器:arm-linux-gcc-4.5.1 二,内核实 ...

  4. Socket 编程 windows到Linux代码移植遇到的问题

    Socket 编程 windows到Linux代码移植遇到的问题 1.一些常用函数的移植 http://www.vckbase.com/document/viewdoc/?id=1586 2.网络 - ...

  5. linux 内核移植和根文件系统的制作【转载】

    原文地址:http://www.cnblogs.com/hnrainll/archive/2011/06/09/2076214.html 1.1 Linux内核基础知识 在动手进行Linux内核移植之 ...

  6. 嵌入式linux系统移植的四大步骤_嵌入式系统移植步骤

    在嵌入式系统移植中重要的一部分是操作系统的移植,与其它操作系统相比,Linux大的特点:它是一款遵循GPL的操作系统,我们可以自由地使用.修改.和扩展它.正是由于这一特色,嵌入式系统移植过程中Linu ...

  7. ffmpeg-0.8 开源编码解码库从linux下移植到windows vs2005

    最新 ffmpeg-0.8 开源编码解码库,从linux下移植到windows vs2005,全部开源. 需要 Intel C++ Compile 和 开源的SDL库支持,由于 Intel C++ C ...

  8. linux 内核 网卡驱动 移植,Linux内核移植步骤_添加DM9000网卡驱动(设备树).docx

    Linux内核移植步骤_添加DM9000网卡驱动(设备树) Linux内核移植步骤2015年05月13日星期三上午 11:05往设备树中添加网卡驱动:1.选平台,指定交叉编译工具链:(1).在Make ...

  9. linux 挂iscisc存储,基于arm的嵌入式linux操作系统的移植研究-通信与信息系统专业论文.docx...

    基于arm的嵌入式linux操作系统的移植研究-通信与信息系统专业论文 Classified Index: TP316.8 U.D.C: 621.38 Dissertation for the Mas ...

最新文章

  1. 人工智能实践:TensorFlow笔记学习(四)—— 神经网络优化
  2. ThinkPHP5整合LayUI编辑器图片上传
  3. DNS support edns-client-subnet
  4. Vue 中 slot插槽 的使用
  5. PHP高性能输出UNICODE正则汉字列表 汉字转拼音多音字解决方案 搜索引擎分词细胞词库更新 搜狗词库提取TXT...
  6. 数据库开发技术java方向_Java开发工程师(Web方向) - 03.数据库开发 - 第5章.MyBatis...
  7. Mysql 常用函数总结
  8. ADO.NET 核心对象简介
  9. from表单提交和JSON区别
  10. 移动计算比移动数据更划算
  11. php请求api获取返回值,我用curl请求接口获取返回值,但是不成功,大神给看看怎么调取?...
  12. Calvin: Fast Distributed Transactions for Partitioned Database Systems研读
  13. OpenCV2中矩阵的归一化 normalize函数详解
  14. 幼儿园管理系统源码【免费分享】
  15. java摩托游戏_盘点那些JAVA游戏第3期
  16. 用 HTML 做一个表单模板
  17. Flutter 吐司弹框的使用 showToast弹框(插件)
  18. 云场景实践研究第33期:神州优车
  19. 记录各大牛个人主页,紧密跟踪其学术动态
  20. CCF 难题汇总(2013-2019 持续更新)

热门文章

  1. 2022-爬虫-Selenium-百度安全验证
  2. 派工单系统 源码_青鸟报修云酒店设备报修管理系统
  3. sap 流程图 退货销售订单_销售订单_退货型
  4. ipad查看电脑中的文件
  5. access_token(接口访问凭证)
  6. 最新WIFI分销大师小程序源码+带后端/亲测可用
  7. 带你Git从入门到精通
  8. [SPRD CAMERA] 4 HAL Camera open流程一
  9. JQuery——横纵向菜单设计
  10. python右对齐输出乘法表_python打印输出九九乘法表