一、开发环境

硬件环境:am3354

打印机型号:hp1020plus

虚假机系统:Ubuntu12.04

交叉编译工具版本:arm-linux-gcc version 4.5.1

二、详细步骤

1、linux内核环境配置

(a)修改drivers/usb/Kconfig中将#source “drivers/usb/class/Kconfig”前的#去掉

(b)静态配置linux内核打开支持USB打印机

在linux内核根目录执行#make menuconfig得到界面如下所示:

打开支持USB打印机的路径是Device Drivers->USB Support->USB Print support;打开的界面如下图所示:

勾选“USB Print support”保存退出,重新编译内核,然后拷贝新内核放到开发板上。

把打印机的USB接口插到开发板的USB接口上,可发现出现/dev/usb/lp0设备节点。

2、交叉编译foo2zjs工具

(a)下载foo2zjs源码,

源码网址:http://foo2zjs.rkkda.com/foo2zjs.tar.gz

(b)解压源码

tar xvf foo2zjs.tar.gz

(c)分别拷贝为PC版本和ARM版本

cp foo2zjs foo2zjs-arm -rf

mv foo2zjs foo2zjs-x86

(d)编译PC版本

cd foo2zjs-x86

make

(e)编译ARM版本

cd foo2zjs-arm

make CC=arm-linux-gcc

编译完成后在foo2zjs-arm的根目录中可得到getweb可执行文件

运行./getweb可得到如下界面:

可看到支持的打印机型号,我们选择的打印机型号是1020。

执行./getweb 1020 即可下载hp1020plus的驱动文件sihp1020.img

用PC版foo2zjs-x86编译出来的arm2hpdl工具,将sihp1020.img转化为sihp1020.dl

(f)把ARM版本foo2zjs-arm编译出来的foo2zjs和sihp1020.dl拷贝到开发板的/usr/printer/目录下

3、添加交叉编译ghostscript工具

因是嵌入式平台编译生产的可执行程序不宜过大,所有ghostscript工具选择用ghostscript-8.15版本。

(a)下载源代码ghostscript-8.15.tar.gz

(b)解压 tar xvf ghostscript-8.15.tar.gz

(c)分别拷贝为PC版本和ARM版本

cp ghostscript-8.15 ghostscript-8.15-arm -rf

mv ghostscript-8.15 ghostscript-8.15-pc

(d)编译PC版本

cd ghostscript-8.15-pc

./configure

make

(e)编译arm版本

cd ghostscript-8.15-arm

./configure --host=arm-linux --target=arm-linux --prefix=/usr/printer/

prefix 参数决定了arm版本的gs搜索路径, 在目标板上必须和编译的时候一致,因为编译好的应用程序会从prefix指定路径查找配置和依赖的文件

把PC版本的echogs,genarch,genconf拷贝到arm版本中

cp ../ghostscript-8.15-pc/obj/echogs obj/echogs

cp ../ghostscript-8.15-pc/obj/genarch obj/genarch

cp ../ghostscript-8.15-pc/obj/genconf obj/genconf

编译

make XCFLAGS=-DHAVE_SYS_TIME_H=1 CC=arm-linux-gcc

make install

其中XCFLAGS=-DHAVE_SYS_TIME_H=1必须有的,不然会报错。

正常情况下,可以编译通过,可执行文件被安装到/usr/printer中

把/usr/printer目录下的ghostscript全部拷贝到开发板的/usr/printer目录中

在开发板中执行gs,生成pbm文件用于打印(用example中的chess.ps做示范)

cd /usr/printer/ghostscript/bin

./gs -q -dBATCH -dSAFER -dQUIET -dNOPAUSE -sPAPERSIZE=a4 -r600x600 -sDEVICE=pbmraw -sOutputFile=test_1.pbm /usr/print/ghostscript-8.15//share/ghostscript/8.15/examples/chess.ps

第一次执行会出现以下错误

Error: /invalidfont in findfont

Operand stack:le=test_1.pbm /uchess.ps

F1 12 Times-Roman Font Times-Roman 290498 Times-Roman --nostringval-- Times-Roman NimbusRomNo9L-Regu Courier NimbusMonL-Reguint

Execution stack:

%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1 3 %oparray_pop 1 3 %oparray_pop 1 3 %oparray_pop 1 3 %oparray_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- 3 4 %oparray_pop 4 4 %oparray_pop --nostringval-- --nostringval-- --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 7 5 %oparray_pop --nostringval-- --nostringval-- --nostringval-- 1 -1 1 --nostringval-- %for_neg_int_continue

Dictionary stack:

--dict:1118/1686(ro)(G)-- --dict:0/20(G)-- --dict:75/200(L)-- --dict:31/70(L)-- --dict:17/17(ro)(G)-- --dict:1118/1686(ro)(G)--

Current allocation mode is local

Last OS error: 2

Current file position is 61042

GPL Ghostscript 8.15: Unrecoverable error, exit code 1

在ubuntu中把/usr/share/fonts/type1/gsfonts/n021003l.pfb文件拷贝到开发板的/usr/printer/ghostscript/share/ghostscript/fonts目录下

再次执行

./gs -q -dBATCH -dSAFER -dQUIET -dNOPAUSE -sPAPERSIZE=a4 -r600x600 -sDEVICE=pbmraw -sOutputFile=test_1.pbm /usr/print/ghostscript-8.15/share/ghostscript/8.15/examples/chess.ps

即可生成pbm文件

4、测试打印文件

准备打印,在开发板终端中发送固件到打印机

cd /usr/printer

这句执行完后打印机有响声

cat sihp1020.dl > /dev/usb/lp0

这句执行完后打印机开始打印

foo2zjs -z1 -p9 -r600x600 test_1.pbm > /dev/usb/lp0

注意一:发送固件到打印机中第一次打印,打印出来的是乱码,之后的打印才是正常的。

注意二:打印文件中的文字打印出来的字体受开发板的字库所影响,分辨率比较低。

嵌入式Linux系统驱动hp1020打印机相关推荐

  1. java调用打印机打印excel linux_手把手教你嵌入式Linux系统驱动hp1020打印机

    一.开发环境 硬件环境:am3354 打印机型号:hp1020plus 虚假机系统:Ubuntu12.04 交叉编译工具版本:arm-linux-gcc version 4.5.1 二.详细步骤 1. ...

  2. 在嵌入式Linux系统上安装打印机

    refer from http://blog.csdn.net/ma100/article/details/4243241 1.简介:   在Linux环境中安装打印机,通常是cups, ghosts ...

  3. 嵌入式linux系统连接USB热敏打印机

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.开发环境 二.Linux内核环境配置 1. 配置Linux内核 2. 内核编译 三.将编译好的内核下载到板子中 四 ...

  4. 嵌入式Linux系统中打印机驱动的移植

    一.开发环境 硬件环境:DM365 打印机型号:HP P1007 虚拟机系统:Red Hat Enterprise Linux 5 交叉编译环境:Ti交叉编译环境安装包 二.详细步骤 1.下载Ghos ...

  5. linux系统添加打印机失败,怎么在Linux 系统下安装打印机的驱动 - 驱动管家

    关于Linux 系统相信经常使用电脑的朋友一定不陌生,它作为免费使用和自由传播的类Unix操作系统,同时也是一个性能稳定的多用户网络操作系统.关于这个免费的系统,它的版本也是非常得多.所以这个操作系统 ...

  6. linux 键盘驱动下载,嵌入式Linux系统的键盘驱动实现

    嵌入式Linux系统的键盘驱动实现1引言 Linux由于其具有内核强大且稳定,易于扩展和裁减,丰富的硬件支持等诸多优点,在嵌入式系统中得到了广泛的应用.很多嵌入式Linux系统,特别是一些具有与用户强 ...

  7. 嵌入式Linux串口终端的定制,基于PC/104平台嵌入式Linux系统定制方法

    基于PC/104平台的嵌入式Linux技术在海洋自动观测系统中具有广泛的应用前景,Linux定制方法的研究是嵌入式Linux系统研制的关键工作.本文结合PC/104平台嵌入式Linux系统的研制,详细 ...

  8. 嵌入式linux结构框图,嵌入式linux系统的结构

    原标题:嵌入式linux系统的结构 1.嵌入式系统的硬件架构 嵌入式系统硬件模型结构,此系统主要由微处理器MPU.外围电路,以及外设组成,微处理器为ARM嵌入式处理芯片,如ARM7TMDI系列及ARM ...

  9. 基于Linux下嵌入式网关,基于嵌入式Linux系统的无线网络网关设计

    嵌入式网关.嵌入式web服务器(boa).嵌入式sqlite数据库.通用网关接口 1.概述 传统网关在功能上主要完成协议转换及部分系统管理功能,而采用嵌入式无线网关作为无线网络设备接入有线网络的接入部 ...

  10. YAFFS2文件系统在嵌入式LINUX系统中的应用

    YAFFS2文件系统在嵌入式LINUX系统中的应用 2011-03-31 19:59 181人阅读 评论(0) 收藏 举报 1.文件系统简述 随着32位CPU价格不断下跌,片上存储设备的容量相比越来越 ...

最新文章

  1. cordova flie文件目录_Cordova - 访问www目录下文件(获取www文件夹路径)
  2. 人生没有后悔药,云主机可以有“时光机”
  3. 技术干货丨隐私保护下的迁移算法
  4. mysql ssh .net_c# – 使用SSH.NET库与MySQL建立SSH连接
  5. 阿里健康上线新冠核酸检测服务:本周覆盖北京武汉等38城
  6. 全网最细最全Appium自动化测试 iOS入门教程,App自动化测试教程,精细整理
  7. iphone 添加网易邮箱(126/163)踩坑(ios16)
  8. win10 许可证即将过期
  9. CANopen协议本质
  10. 如何评测光源的好坏?
  11. python考研人数数据分析统计服_2019年考研统计数据出炉:往届生考研人数占比48.23%...
  12. 伊利诺伊香槟分校计算机排名,伊利诺伊大学香槟分校计算机工程排名第8(2018年TFE美国排名)...
  13. 提笔忘字:时代进步还是退步?
  14. Dagger2集成之环境配置及简单验证
  15. 学习日志[自我监督与复习用]
  16. 电脑显示正在进行自动修复此计算机,怎么处理win10系统开机一直显示“正在准备自动修复”无法启动的操作教程...
  17. 为什么说众期汇场外个股期权代理好?
  18. 某招聘app上海地区数据分析招聘分析
  19. DTM DEM DSM介绍
  20. 中国科学技术大学电子工程与信息科学系、先进技术研究院、科学岛篇|2022年(23届)电子信息/通信工程夏令营保研/考研复试经验贴

热门文章

  1. jarsigner 命令对 apk 加密
  2. 基于ansys命令流的水池静力学分析
  3. cad尺寸标注快捷键_CAD软件中如何修改设置CAD标注尺寸的值?
  4. RSAC2020的PPT下载
  5. 计算机职业规划作文1000字左右,职业生涯规划_1000字
  6. FPGA信号处理系列文章——CIC滤波器的再理解
  7. QT通过ODBC连接MySQL数据库
  8. 基于matlab和proe的曲面建模,两个基础曲面建模实例教你Proe曲面建模技巧和思路...
  9. convertTo函数的用法
  10. opencv——Mat 矩阵数据类型转换convertTo