首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使g_printer (USB-printer打印机)在Raspberian中工作

如何使g_printer (USB-printer打印机)在Raspberian中工作
EN

Unix & Linux用户
提问于 2017-12-01 22:32:11
回答 2查看 2.5K关注 0票数 2

我正在尝试使用Raspberry Pi和g_printer设备上的小工具模式来模拟打印机,这样我就可以捕获数据,处理数据,并通过wi将其发送到一些API中。我已经使用https://gist.github.com/gbaman/50b6cca61dd1c3f88f41的指令建立了董事会。使用g_ether设备,板将显示为网络设备,我的Macbook。但是,如果我编辑/etc/modules以包含g_printer而不是g_ether (只有一个,并重新启动),板就不会显示为Macbook可用的打印机。

modinfo返回:

代码语言:javascript
复制
pi@raspberrypi:~ $ modinfo g_printer
filename:       /lib/modules/4.9.65+/kernel/drivers/usb/gadget/legacy/g_printer.ko
license:        GPL
author:         Craig Nadler
description:    Printer Gadget
srcversion:     2F1D50E570B8D48FA4C2DD9
depends:        libcomposite,udc-core
intree:         Y
vermagic:       4.9.65+ mod_unload modversions ARMv6 p2v8 
parm:           idVendor:USB Vendor ID (ushort)
parm:           idProduct:USB Product ID (ushort)
parm:           bcdDevice:USB Device version (BCD) (ushort)
parm:           iSerialNumber:SerialNumber string (charp)
parm:           iManufacturer:USB Manufacturer string (charp)
parm:           iProduct:USB Product string (charp)
parm:           iSerialNum:1 (charp)
parm:           iPNPstring:MFG:linux;MDL:g_printer;CLS:PRINTER;SN:1; (charp)
parm:           qlen:uint

所以看起来是装上子弹的。董事会还需要什么才能作为打印机出现?

EN

回答 2

Unix & Linux用户

发布于 2017-12-01 23:19:48

g_printer模块可以以与g_ether模块相同的方式添加到cmdline.txt中。

编辑cmdline.txt文件并将其直接添加到rootwait之后

代码语言:javascript
复制
modules-load=dwc2,g_printer

编辑config.txt文件并将其直接添加到文件的最后一行之后:

代码语言:javascript
复制
dtoverlay=dwc2

当Raspberry Pi用USB电缆插入GNU/Linux系统启动时,您将收到类似于系统消息的消息:

代码语言:javascript
复制
dmesg
代码语言:javascript
复制
[40692.579011] usb 2-1.4.3: New USB device found, idVendor=0525, idProduct=a4a8
[40692.579014] usb 2-1.4.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[40692.579016] usb 2-1.4.3: Product: Printer Gadget
[40692.579018] usb 2-1.4.3: Manufacturer: Linux 4.9.59+ with 20980000.usb
[40692.579020] usb 2-1.4.3: SerialNumber: 1
[40692.600820] usblp 2-1.4.3:1.0: usblp0: USB Bidirectional printer dev 18 if 0 alt 0 proto 2 vid 0x0525 pid 0xA4A8
[40692.600851] usbcore: registered new interface driver usblp

我没有方便测试的MacOSx机器,但是Raspberry应该被看作是一种打印机设备。

查看加载了哪些模块的

modinfo没有显示哪些模块正在运行。lsmod将显示所有加载的模块。

票数 3
EN

Unix & Linux用户

发布于 2021-01-19 07:14:28

基本上,要使用g_printer,您必须使用模块参数vendorIDproductIDiPNPstring。要么从您自己的打印机中拿出这些,要么找到它们这里。我建议只添加

代码语言:javascript
复制
dtoverlay=dwc2,dr_mode=peripheral

config.txt的末尾。您将在引导后加载g_printer模块。

CraigW.Nadler发布了一个关于如何使用好的示例代码描述符的/dev/g_printer device

我创建了一个存储库,以获得更详细的说明,如果您想了解更多关于使用Raspberry作为打印机需要做什么的话。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/408293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档