2017-11-04 1 views
-1

linux usb HID 가제트 "g_hid"모듈을 테스트하고 싶습니다. 그러나 삽입하는 동안 "no such device"와 같은 오류가 나타납니다. 리눅스 문서 http://elixir.free-electrons.com/linux/v4.13.11/source/Documentation/usb/gadget_hid.txt를 참조 후, 나는 우리가 내가 리눅스 소스 코드에서 위의 코드를 추가해야 어디 플랫폼 코드TIAM57xx의 Linux에서 USB HID 가제트 "g_hid"

#include <linux/platform_device.h> 
#include <linux/usb/g_hid.h> 

/* hid descriptor for a keyboard */ 
static struct hidg_func_descriptor my_hid_data = { 
    .subclass  = 0, /* No subclass */ 
    .protocol  = 1, /* Keyboard */ 
    .report_length  = 8, 
    .report_desc_length = 63, 
    .report_desc  = { 
     0x05, 0x01, /* USAGE_PAGE (Generic Desktop)   */ 
     0x09, 0x06, /* USAGE (Keyboard)      */ 
     0xa1, 0x01, /* COLLECTION (Application)    */ 
     0x05, 0x07, /* USAGE_PAGE (Keyboard)    */ 
     0x19, 0xe0, /* USAGE_MINIMUM (Keyboard LeftControl) */ 
     0x29, 0xe7, /* USAGE_MAXIMUM (Keyboard Right GUI) */ 
     0x15, 0x00, /* LOGICAL_MINIMUM (0)     */ 
     0x25, 0x01, /* LOGICAL_MAXIMUM (1)     */ 
     0x75, 0x01, /* REPORT_SIZE (1)      */ 
     0x95, 0x08, /* REPORT_COUNT (8)      */ 
     0x81, 0x02, /* INPUT (Data,Var,Abs)     */ 
     0x95, 0x01, /* REPORT_COUNT (1)      */ 
     0x75, 0x08, /* REPORT_SIZE (8)      */ 
     0x81, 0x03, /* INPUT (Cnst,Var,Abs)     */ 
     0x95, 0x05, /* REPORT_COUNT (5)      */ 
     0x75, 0x01, /* REPORT_SIZE (1)      */ 
     0x05, 0x08, /* USAGE_PAGE (LEDs)     */ 
     0x19, 0x01, /* USAGE_MINIMUM (Num Lock)    */ 
     0x29, 0x05, /* USAGE_MAXIMUM (Kana)     */ 
     0x91, 0x02, /* OUTPUT (Data,Var,Abs)    */ 
     0x95, 0x01, /* REPORT_COUNT (1)      */ 
     0x75, 0x03, /* REPORT_SIZE (3)      */ 
     0x91, 0x03, /* OUTPUT (Cnst,Var,Abs)    */ 
     0x95, 0x06, /* REPORT_COUNT (6)      */ 
     0x75, 0x08, /* REPORT_SIZE (8)      */ 
     0x15, 0x00, /* LOGICAL_MINIMUM (0)     */ 
     0x25, 0x65, /* LOGICAL_MAXIMUM (101)    */ 
     0x05, 0x07, /* USAGE_PAGE (Keyboard)    */ 
     0x19, 0x00, /* USAGE_MINIMUM (Reserved)    */ 
     0x29, 0x65, /* USAGE_MAXIMUM (Keyboard Application) */ 
     0x81, 0x00, /* INPUT (Data,Ary,Abs)     */ 
     0xc0  /* END_COLLECTION       */ 
    } 
}; 

static struct platform_device my_hid = { 
    .name   = "hidg", 
    .id   = 0, 
    .num_resources  = 0, 
    .resource  = 0, 
    .dev.platform_data = &my_hid_data, 
}; 

에 추가해야 다음 코드를 알고있어? TI-AM57xx 보드를 사용하고 있습니다.

+0

더 노력하십시오. 프로그래밍은 Ctrl-C → Ctrl-V만큼 간단하지 않습니다. – ulidtko

답변

0

은 커널 소스을 수정하지 않아도됩니다!

HID descriptorsUSB 장치 펌웨어에 들어가는 내용입니다.