在树莓派上使用brother_ql库连接QL-700打印机的端口问题
解决树莓派上brother_ql连接QL-700找不到设备路径的问题
我之前也碰到过类似的情况,Raspberry Pi OS(原Raspbian)的USB设备路径确实和普通Linux发行版不太一样,咱们一步步来排查解决:
1. 先定位打印机的USB标识
首先运行lsusb命令,找到你的Brother QL-700对应的条目,输出大概是这样:
Bus 001 Device 004: ID 04f9:0272 Brother Industries, Ltd QL-700
这里的04f9是设备的VID(厂商ID),0272是PID(产品ID),先把这两个值记下来。
2. 找到正确的USB设备节点
brother_ql是直接通过USB发送原始指令,不需要依赖CUPS生成的/dev/usb/lp*节点,咱们可以用两种方式定位:
- 方式一:直接获取USB总线路径
用这条命令直接定位到设备的总线路径:
输出会显示类似ls -la /dev/bus/usb/$(lsusb | grep Brother | awk '{print $2}')/$(lsusb | grep Brother | awk '{print $4}' | cut -d: -f1)/dev/bus/usb/001/004的路径,这就是你要找的原始USB设备节点。 - 方式二:查找HIDRAW节点
运行find /dev -name "hidraw*",QL-700可能会被识别为HID设备,输出比如/dev/hidraw0,你可以逐个测试这些节点。
3. 测试设备访问权限
默认情况下普通用户可能没有访问USB设备的权限,先尝试用sudo测试指令发送:
sudo cat command.bin > /dev/bus/usb/001/004
(把路径替换成你找到的实际节点)如果能正常打印,说明路径是对的,接下来可以配置权限让普通用户也能访问。
4. 配置udev规则(可选,长期使用更方便)
创建一个udev规则文件,让系统自动给打印机设备赋予合适的权限:
- 编辑规则文件:
sudo nano /etc/udev/rules.d/99-brother-ql.rules - 粘贴以下内容(替换成你之前找到的VID和PID):
SUBSYSTEM=="usb", ATTRS{idVendor}=="04f9", ATTRS{idProduct}=="0272", MODE="0666", GROUP="lp" - 保存退出后,重新加载udev规则:
这样以后普通用户也能直接访问设备,不用每次加sudo。sudo udevadm control --reload-rules && sudo udevadm trigger
5. 用brother_ql自带工具直接验证
其实brother_ql支持直接通过VID/PID连接,不用手动找设备路径,试试这条命令:
brother_ql print --backend pyusb --printer usb://04f9:0272 your_label.png
(记得先安装pyusb依赖:pip install pyusb)如果能正常打印,说明一切配置没问题。
补充说明
为什么找不到/dev/usb/lp1?因为这个节点是CUPS打印服务生成的,而brother_ql是绕过驱动直接走USB原始通信,所以不需要依赖CUPS的设备节点,直接和USB硬件通信即可。
内容的提问来源于stack exchange,提问作者AlexP
相关产品推荐
相关产品推荐

