USB Printer Class 디스크립터 확인 부탁드립니다.
안녕하세요. 리눅스에서 USB Printer Class 를 사용하고 있습니다.
디바이스 드라이버 소스는 g_printer 와 관련된 printer.c 입니다.
아래와 같이 디바이스 스크립트를 Host Window PC 로 전달되는데...
Window 에서 드라이버와 연결이 않되고 기타장치로만 인식하네요.
어느 부분이 잘못되었는지 감이 안오네요.
검토 부탁드립니다.
Device Information
ConnectionIndex 3
CurrentConfigurationValue 1
Speed High Speed (up to 480 Mbps)
DeviceIsHub 0
DeviceAddress 10
NumberOfOpenPipes 2
ConnectionStatus DeviceConnected
Device Descriptor
bLength 18
bDescriptorType 0x1 (DEVICE_DESCRIPTOR)
bcdUSB 0x0200 (USB 2.0)
bDeviceClass 0x7
bDeviceSubClass 0x1
bDeviceProtocol 0x2
bMaxPacketSize0 64
idVendor 0x6141 ()
idProduct 0x451
bcdDevice 0x11
iManufacturer 0x1
iProduct 0x2
iSerialNumber 0x3
bNumConfigurations 1
Configurations
Configuration Descriptor 0
bLength 9
bDescriptorType 0x2 (CONFIGURATION_DESCRIPTOR)
wTotalLength 35
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0 (BUS_POWERED | SELF_POWERED)
MaxPower 0xd (26 mA)
Interface Descriptor 0
bLength 9
bDescriptorType 0x4 (INTERFACE_DESCRIPTOR)
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 0x7 (PRINTER)
bInterfaceSubClass 0x1
bInterfaceProtocol 0x2
iInterface 0
Endpoint Descriptor 0
bLength 7
bDescriptorType 0x5 (ENDPOINT_DESCRIPTOR)
bEndpointAddress 0x81 (IN)
bmAttributes 0x2 (BULK)
wMaxPacketSize 512
bInterval 0
Endpoint Descriptor 1
bLength 7
bDescriptorType 0x5 (ENDPOINT_DESCRIPTOR)
bEndpointAddress 0x1 (OUT)
bmAttributes 0x2 (BULK)
wMaxPacketSize 512
bInterval 0
Common Descriptor 0 ----------> Common 디스크립트의 존재는 어떤 역할을 하는지 궁금하네요.
bLength 3
bDescriptorType 0x9 ()
Strings
iManufacturer JYTech
iProduct C-Project Card Printer
iSerialNumber 1234
다른 프린터의 디스크립터와 비교해도 차이는 없는것 같은데요.
g_printer 를 구동시키는 스크립트는 아래와 같습니다.
부족한 부분이 있다면 조언 부탁드립니다.
modprobe g_printer idVendor=0x6141 idProduct=0x0451 bcdDevice=0x11 iSerialNumber="1.0" iManufacturer="JYTech" iProduct="C-Project Card Printer" iSerialNum="1234" iPNPstring="MFG:JYTech;CMD:1284.4;MDL: Su-Card-Printer;CLS:PRINTER;DES:Card Printer series;"
Window Host PC 의 디바이스 드라이버는 계속 사용하던 것이라서 큰 문제는 없으리라 생각은 됩니다.
만약 범용적으로 테스트 할 수 있는 디바이스 드라이버가 있을까요 ?
도움 부탁드립니다.
Common Descriptor 0로 구글에서 찾아보면요.
이런 내용이 있네요.
USB Descriptors
http://www.beyondlogic.org/usbnutshell/usb5.shtml
Steve Friedl's Unixwiz.net Tech Tips
Mapping UNIX pipe descriptors to stdin and stdout in C
http://unixwiz.net/techtips/remap-pipe-fds.html
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
UNIX 파일 디스크립터는 USB에서 사용하는
UNIX 파일 디스크립터는 USB에서 사용하는 그것과는 하등의 관계가 없습니다.
윈도우 쪽 이벤트 로그에서 혹시 오류 메시지를 찾아 보셨나요?
상관없을 수 도 있지만. 찾아봤습니다.
- USB 유틸리티
- DevCon.exe 로 장치관리자를 관리할 수 있다고 하네요.
------------
USB 유틸리티
------------
USBDeview v2.52 - View all installed/connected USB devices on your system
Copyright (c) 2006 - 2016 Nir Sofer
http://www.nirsoft.net/utils/usb_devices_view.html
Microsoft USB Flash Drive Manager (Standard)
https://www.microsoft.com/en-us/download/details.aspx?id=20034
--------------------------------------
Windows SDK ( 아마. DDK에 있을겁니다.)
--------------------------------------
C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\netds\upnp
C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\winui\printer
C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\xps
--------------------------------------
개발 문서
--------------------------------------
Microsoft USB Printer Driver (Usbprint.sys)
https://msdn.microsoft.com/en-us/library/windows/hardware/ff563608(v=vs.85).aspx
Printer Connected to a USB Port
https://msdn.microsoft.com/en-us/library/windows/hardware/ff560809(v=vs.85).aspx
Installing a Custom Plug and Play Printer Driver
https://msdn.microsoft.com/en-us/library/windows/hardware/ff551651(v=vs.85).aspx
Device Tree
https://msdn.microsoft.com/en-us/library/windows/hardware/ff543194(v=vs.85).aspx
Programming Considerations for USBPRINT
https://msdn.microsoft.com/en-us/library/windows/hardware/ff561757(v=vs.85).aspx
GetPrinterDataFromPort function pointer
https://msdn.microsoft.com/en-us/library/windows/hardware/ff550506(v=vs.85).aspx
Language and Port Monitor Interaction
https://msdn.microsoft.com/en-us/library/windows/hardware/ff556447(v=vs.85).aspx
Printer Installation and the Plug and Play Manager
https://msdn.microsoft.com/en-us/library/windows/hardware/ff560928(v=vs.85).aspx
Device Installation Components
https://msdn.microsoft.com/en-us/library/windows/hardware/ff541277(v=vs.85).aspx
System-Provided Device Installation Components
https://msdn.microsoft.com/en-us/library/windows/hardware/ff728855(v=vs.85).aspx
Plug and Play Manager
https://msdn.microsoft.com/en-us/library/windows/hardware/ff728837(v=vs.85).aspx
DriverEntry routine
https://msdn.microsoft.com/en-us/library/windows/hardware/ff544113(v=vs.85).aspx
AddDevice routine
https://msdn.microsoft.com/en-us/library/windows/hardware/ff540521(v=vs.85).aspx
IRP_MN_START_DEVICE
https://msdn.microsoft.com/en-us/library/windows/hardware/ff551749(v=vs.85).aspx
SetupAPI
https://msdn.microsoft.com/en-us/library/windows/hardware/ff550855(v=vs.85).aspx
Driver Store
https://msdn.microsoft.com/en-us/library/windows/hardware/ff544868(v=vs.85).aspx
Driver Signing
https://msdn.microsoft.com/en-us/library/windows/hardware/ff544865(v=vs.85).aspx
Using Device Manager
https://msdn.microsoft.com/en-us/library/windows/hardware/ff553570(v=vs.85).aspx
Using the DevCon Tool to Install a Driver Package
https://msdn.microsoft.com/en-us/library/windows/hardware/ff553642(v=vs.85).aspx
devcon.exe install c:\toaster\toastpkg.inf {b85b7c50-6a01-11d2-b841-00c04fad5171}\mstoaster
Installing a Test-Signed Catalog File for a Non-PnP Driver
https://msdn.microsoft.com/en-us/library/windows/hardware/ff547620(v=vs.85).aspx
Vendor-Provided Device Installation Components
https://msdn.microsoft.com/en-us/library/windows/hardware/ff728856(v=vs.85).aspx
--------------------------------------
HID
--------------------------------------
Introduction to HID Concepts
https://msdn.microsoft.com/en-us/library/windows/hardware/jj126202(v=vs.85).aspx
HidP_GetButtonCaps routine
https://msdn.microsoft.com/en-us/library/windows/hardware/ff539707(v=vs.85).aspx
HidP_GetUsages routine
https://msdn.microsoft.com/en-us/library/windows/hardware/ff539742(v=vs.85).aspx
http://www.usbmadesimple.co.uk/ums_5.htm
Troubleshooting common errors
https://msdn.microsoft.com/en-us/library/windows/hardware/jj131717(v=vs.85).aspx
Common issues in USB 3.0 devices
http://blogs.msdn.com/b/usbcoreblog/archive/2012/07/13/common-issues-in-usb-3-0-devices.aspx
--------------------------------------
DevCon.exe
--------------------------------------
장치 콘솔(DevCon.exe) 예제
https://msdn.microsoft.com/ko-kr/library/windows/hardware/ff544746
Windows 장치 콘솔(Devcon.exe)
https://msdn.microsoft.com/ko-kr/library/windows/hardware/ff544707
Devcon 명령으로 장치(Device) 관리하기..기타조회 17411 추천 0
http://www.diskool.com/1225283
[309] devcon.exe를 편리하게 사용하기.(Delphi, Lazarus)
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=del_res&no=309
인스웨이브, 개발자 컨퍼런스서 '웹스퀘어5' 활용 방안 제시
http://www.edaily.co.kr/news/NewsRead.edy?SCD=JE41&newsid=02499366609569328&DCD=A00504&OutLnkChk=Y
devcon을 사용하여 disk를 disable 시키기
http://rudalson.tistory.com/57
Devcon 명령으로 장치(Device) 관리하기
http://blog.naver.com/yesing1/70164703481
DevCon 커멘드 라인 유틸리티
http://blog.naver.com/dbwls0105/30037061170
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
의견
USB Device Control 설정 문제를 제외하기 위해서 g_ether.ko 올려 확인해 보는 것은 어떨까요?
아무래도 g_ether.ko가 프린터 보다 쉽게 인식되어야 할 것 같습니다.
댓글 달기