Raspberry Pi Zero W에서 가젯 모드를 사용하려고 하는데 장치가 g_printer
프린터를 에뮬레이션하여 데이터를 캡처하고 처리한 다음 Wi-Fi를 통해 일부 API로 보낼 수 있습니다. 아래 지침에 따라 보드를 설정했습니다.https://gist.github.com/gbaman/50b6cca61dd1c3f88f41. 이 g_ether
장치를 사용하면 보드가 내 Macbook에 네트워크 장치로 나타납니다. 그러나 대신 /etc/modules
포함하도록 편집하면 (한 개만 포함시킨 후 재부팅) 보드가 Macbook에 사용 가능한 프린터로 표시되지 않습니다.g_printer
g_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.txt
g_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
사용해야 합니다 . 이는 자신의 프린터에서 가져오거나 찾을 수 있습니다.vendorID
productID
iPNPstring
여기. 그냥 추가하는 걸 추천드려요
dtoverlay=dwc2,dr_mode=peripheral
끝까지 config.txt
. g_printer
나중에 시작한 후 이 모듈을 로드 합니다 .
크레이그 W. 내들러(Craig W. Nadler) 게시됨좋은 샘플 코드설명자를 사용하는 방법에 대해 /dev/g_printer device
.
나는저장소Raspberry Pi Zero를 프린터로 사용하는 방법에 대해 자세히 알아보려면 자세한 지침을 확인하세요.