USB Printer Class 디스크립터 확인 부탁드립니다.

woojinauto의 이미지

안녕하세요. 리눅스에서 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 의 디바이스 드라이버는 계속 사용하던 것이라서 큰 문제는 없으리라 생각은 됩니다.
만약 범용적으로 테스트 할 수 있는 디바이스 드라이버가 있을까요 ?

도움 부탁드립니다.

shint의 이미지


이런 내용이 있네요.

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

thinxs의 이미지

UNIX 파일 디스크립터는 USB에서 사용하는 그것과는 하등의 관계가 없습니다.

윈도우 쪽 이벤트 로그에서 혹시 오류 메시지를 찾아 보셨나요?

shint의 이미지

- 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

goforit의 이미지

USB Device Control 설정 문제를 제외하기 위해서 g_ether.ko 올려 확인해 보는 것은 어떨까요?
아무래도 g_ether.ko가 프린터 보다 쉽게 인식되어야 할 것 같습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.