提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言一、开发环境二、Linux内核环境配置1. 配置Linux内核2. 内核编译 三、将编译好的内核下载到板子中四、测试五、打印控制指令前言
提示:这里可以添加本文要记录的大概内容:
本文介绍嵌入式linux开发板连接USB热敏打印机的步骤。
提示:以下是本篇文章正文内容,下面案例可供参考
一、开发环境
硬件环境: OKMX6ULL打印机型号:BT58S虚拟机:Ubuntu二、Linux内核环境配置
1. 配置Linux内核
切换到内核源码路径,打开menuconfig
工具。root@ubuntu:/# cd /home/forlinx/work/linux-4.1.15root@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-gnueabiroot@ubuntu:/home/forlinx/work/linux-4.1.15# make imx6ull_defconfigroot@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/zImageroot@fl-imx6ull:/# sync root@fl-imx6ull:/# reboot
重启后,拷贝完成。
四、测试
插入USB打印机后,显示如下信息:root@fl-imx6ull:/# usb 1-1.2: new full-speed USB device number 8 using ci_hdrcusblp 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/lp0crw-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/lpin 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 00echo -e '\x1d\x6b\x04000\x00' >/dev/usb/lp0
参考:
https://www.coder.work/article/1507248
/questions/30662024/