Como fazer o g_printer (impressora USB-gadget) funcionar em Raspberian Pi

0

Estou tentando usar o modo de gadget em um Raspberry Pi Zero W e o dispositivo g_printer para emular uma impressora para que eu possa capturar dados, processá-los e enviá-los para algumas APIs por meio de wi-fi. Eu configurei o quadro usando as instruções no link . Usando o dispositivo g_ether , a placa será mostrada como um dispositivo de rede para o meu Macbook. No entanto, se eu editar o /etc/modules para conter g_printer em vez de g_ether (apenas um e reinicializar), a placa não aparecerá como uma impressora disponível para o Macbook.

modinfo retorna:

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

então parece estar carregado. O que mais é necessário para a placa aparecer como impressora?

    
por George Shaw 01.12.2017 / 23:32

1 resposta

2

O módulo g_printer pode ser adicionado ao cmdline.txt da mesma forma que o módulo g_ether .

Edite o arquivo cmdline.txt e adicione-o diretamente após rootwait

modules-load=dwc2,g_printer

Edite o arquivo config.txt e adicione-o diretamente após a última linha no arquivo:

dtoverlay=dwc2

Quando o Raspberry Pi for iniciado com o cabo USB conectado a um sistema GNU / Linux, você receberá algo como nas mensagens do sistema:

dmesg
[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

Eu não tenho uma máquina MacOSx à mão para testar, mas o Raspberry Pi deve ser visto como um dispositivo de impressão.

Ao ver quais módulos são carregados

modinfo não mostra quais módulos estão sendo executados. lsmod mostrará todos os módulos carregados.

    
por 02.12.2017 / 00:19