嵌入式linux系统连接USB热敏打印机
嵌入式linux系统连接USB热敏打印机
·
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
本文介绍嵌入式linux开发板连接USB热敏打印机的步骤。
提示:以下是本篇文章正文内容,下面案例可供参考
一、开发环境
- 硬件环境: OKMX6ULL
- 打印机型号:BT58S
- 虚拟机:Ubuntu
二、Linux内核环境配置
1. 配置Linux内核
- 切换到内核源码路径,打开
menuconfig
工具。
root@ubuntu:/# cd /home/forlinx/work/linux-4.1.15
root@ubuntu:/home/forlinx/work/linux-4.1.15# make menuconfig
- 依次进入如下目录,将
USB Printer support
选中:
Device Drivers --->
[*] USB support --->
<*> USB Printer support
- 按键盘的左右方向键,选中
Save
,点击回车保存。 - 保存文件名不用修改,默认为
.config
- 然后,一路
exit
退出menuconfig
工具,配置项完成。
2. 内核编译
- 将刚才生成的
.config
文件复制到linux-4.1.15/arch/arm/configs/imx6ull_defconfig
中
root@ubuntu:/home/forlinx/work/linux-4.1.15# cp .config arch/arm/configs/imx6ull_defconfig
- 编译zImage
# 备注:需要切换到root用户(sudo su)
root@ubuntu:/home/forlinx/work/linux-4.1.15# . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
root@ubuntu:/home/forlinx/work/linux-4.1.15# make imx6ull_defconfig
root@ubuntu:/home/forlinx/work/linux-4.1.15# make zImage
- 编译成功后会在
linux-4.1.15/arch/arm/boot/
路径下生成zImage
三、将编译好的内核下载到板子中
- 将zImage拷贝到u盘
root@ubuntu:/home/forlinx/work/linux-4.1.15# cp arch/arm/boot/zImage /run/forlinx/upan
- 将u盘中的zImage拷贝到板子里
root@fl-imx6ull:/# cp /run/media/sda1/zImage /run/media/mmcblk1p1/zImage
root@fl-imx6ull:/# sync
root@fl-imx6ull:/# reboot
- 重启后,拷贝完成。
四、测试
- 插入USB打印机后,显示如下信息:
root@fl-imx6ull:/# usb 1-1.2: new full-speed USB device number 8 using ci_hdrc
usblp 1-1.2:1.0: usblp0: USB Bidirectional printer dev 8 if 0 alt 0 proto 2 vid 0x28E9 pid 0x0289
- 识别到打印机,打印机路径:
/dev/usb/lp0.
- 设置打印机访问权限为lpadmin组
$ ls -l /dev/usb/lp0
crw-rw---- 1 root lpadmin 180, 0 Apr 26 03:34 /dev/usb/lp0
$
$
$ sudo chown root:lpadmin /dev/usb/lp0
- 打印hello world
root@fl-imx6ull:/# echo "hello world" > dev/usb/lp0
- 打印机打印成功
参考:
- Possible problem with /dev/lp in new installations
- 手把手教你嵌入式Linux系统驱动HP1020打印机
- 嵌入式Linux系统添加USB打印机功能
- linux支持usb打印机,不用驱动
- ubuntu下使用命令行调用USB热敏票据打印机
五、打印控制指令
打印中需要使用转义字符来发送控制指令:
- ESC => ASCII码为0x1B => 使用转义字符 ‘\x1b’
- echo -e 指令
举例:
// 显示“000”的 CODE39 条形码
// GS k 4 0 0 0 NUL
//1d 6b 04 30 30 30 00
echo -e '\x1d\x6b\x04000\x00' >/dev/usb/lp0
参考:
https://www.coder.work/article/1507248
https://stackoverflow.com/questions/30662024/
更多推荐
所有评论(0)