openwrt linux ssd20x平台添加USB打印功能


前言

刚好公司项目中有 linux 平台连接打印机打印热敏小票机的需求。在网搜索到的资料相对都少且不是很全面,因而重新整理分享一下。所用终端信息为openwrt linux ssd20x平台。


一、内核配置

Kernel modules ->
USB Support ->
kmod-usb-printer
在这里插入图片描述
另外要注意的是:我们用的是ssd20x平台,所有要留意到平台的usb驱动要配置上
在这里插入图片描述
接下来就是编译内核了,直接 make 或者make -j8。然后就直接烧录内核就行不过度描述了。
当能识别到驱动:

ls /dev/usb/lp0

要注意的是很多设备都是有管脚控制电源的,要注意控制电压的管脚

二、如何使用

这里就是关键的地方了,网的表述一般到上面的结束了。并没介绍如何使用。我看到晚上说直接使用

echo 'helllo ' > /dev/usb/lp0

我试过了并不行。
下面分享代码
初始化

    fd = open("/dev/usb/lp0", O_RDWR | O_NOCTTY | O_NONBLOCK);
    if (fd < 0)
    {
        perror("open /dev/usb/lp0");
        return 0;
    }


    fcntl(fd, F_SETFL, 0); //
    //
    struct termios opts;
    tcgetattr(fd, &opts); //

    opts.c_cflag |= CLOCAL | CREAD; //

    // 8N1
    opts.c_cflag &= ~PARENB;
    opts.c_cflag &= ~CSTOPB;
    opts.c_cflag |= CS8;

    opts.c_cflag &= ~CRTSCTS; //

    opts.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); //raw input
    opts.c_oflag &= ~OPOST; // raw output          

    opts.c_iflag &= ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON);  //解决接收不到0x11,0x0d特色字符的问题

    //设置等待时间和最小接收字符  
    opts.c_cc[VTIME] = 1 * 1; /* 读取一个字符等待1*(1/10)s */
    //opts.c_cc[VTIME] = 1 * 100; /* 读取一个字符等待1*(1/10)s */
    opts.c_cc[VMIN] = 0; /* 读取字符的最少个数为1 */

    tcsetattr(fd, TCSANOW, &opts);

输出

write(fd, "hello ", 3);  

总结

设备不是简单open就行了,我是试过了。必须要下面配置

  • 13
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
OpenWRT USB打印服务器插件是一个为OpenWRT路由器提供的打印功能扩展插件。通过使用此插件,用户可以将路由器上的USB接口扩展为一个打印服务器,从而能够通过网络将打印任务发送到路由器并完成打印。 该插件的使用非常简便。首先,用户需要安装并启动OpenWRT USB打印服务器插件。接着,将打印机通过USB接口连接到路由器上。一旦打印机连接成功,用户只需登录路由器管理页面,在设置中找到并启用打印服务器功能。 启用打印服务器后,用户可以在网络中的任何设备上将打印任务发送到路由器,无需连接到实际的打印机。用户只需选择“打印”选项,并选择路由器上所配置的打印机。路由器将接收到的打印任务传递给打印机,并完成打印OpenWRT USB打印服务器插件不仅提供了方便的打印功能,还具有一些额外的优势。首先,用户可以通过网络共享打印机,并允许多个设备同时使用同一台打印机。其次,由于打印机直接连接到路由器,用户无需将电脑或其他设备保持开启状态即可进行打印。此外,该插件还支持自动打印队列管理,确保打印任务按照先后顺序进行处理。 总之,OpenWRT USB打印服务器插件为OpenWRT路由器提供了强大的打印功能扩展。通过将USB接口配置为打印服务器,用户可以在局域网中方便地共享和管理打印机,并实现无线打印功能。这大大提升了打印效率和便利性,是个实用的插件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值