Raspberian Pi에서 g_printer(USB 가젯 프린터)를 작동시키는 방법

Raspberian Pi에서 g_printer(USB 가젯 프린터)를 작동시키는 방법

Raspberry Pi Zero W에서 가젯 모드를 사용하려고 하는데 장치가 g_printer프린터를 에뮬레이션하여 데이터를 캡처하고 처리한 다음 Wi-Fi를 통해 일부 API로 보낼 수 있습니다. 아래 지침에 따라 보드를 설정했습니다.https://gist.github.com/gbaman/50b6cca61dd1c3f88f41. 이 g_ether장치를 사용하면 보드가 내 Macbook에 네트워크 장치로 나타납니다. 그러나 대신 /etc/modules포함하도록 편집하면 (한 개만 포함시킨 후 재부팅) 보드가 Macbook에 사용 가능한 프린터로 표시되지 않습니다.g_printerg_ether

modinfo는 다음을 반환합니다.

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

그래서 로드된 것 같습니다. 보드가 프린터로 표시되려면 무엇이 더 필요합니까?

답변1

모듈은 모듈과 동일한 방식으로 추가될 수 있습니다 g_printer.cmdline.txtg_ether

cmdline.txt 파일을 편집하고 바로 뒤에 추가하세요.rootwait

modules-load=dwc2,g_printer

config.txt 파일을 편집하고 파일의 마지막 줄 바로 뒤에 다음을 추가합니다.

dtoverlay=dwc2

GNU/Linux 시스템에 연결된 USB 케이블을 통해 Raspberry Pi가 부팅되면 시스템 메시지로 다음과 유사한 내용을 받게 됩니다.

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

테스트에 편리한 MacOSx 시스템은 없지만 Raspberry Pi는 프린터 장치로 간주되어야 합니다.

어떤 모듈이 로드되었는지 확인

modinfo실행 중인 모듈을 표시하지 않습니다. lsmod로드된 모든 모듈이 표시됩니다.

답변2

기본적으로 사용하려면 모듈 매개변수 , 를 g_printer사용해야 합니다 . 이는 자신의 프린터에서 가져오거나 찾을 수 있습니다.vendorIDproductIDiPNPstring여기. 그냥 추가하는 걸 추천드려요

dtoverlay=dwc2,dr_mode=peripheral

끝까지 config.txt. g_printer나중에 시작한 후 이 모듈을 로드 합니다 .

크레이그 W. 내들러(Craig W. Nadler) 게시됨좋은 샘플 코드설명자를 사용하는 방법에 대해 /dev/g_printer device.

나는저장소Raspberry Pi Zero를 프린터로 사용하는 방법에 대해 자세히 알아보려면 자세한 지침을 확인하세요.

관련 정보