2017-11-04 20 views
-1

LinuxのUSB HIDガジェット「g_hid」モジュールをテストしたいと思います。しかし、それを挿入している間は「そのようなデバイスはありません」というエラーが表示されます。 Linuxドキュメント http://elixir.free-electrons.com/linux/v4.13.11/source/Documentation/usb/gadget_hid.txtを参照した後、私たちは、プラットフォームのコードで、私は、Linuxのソースコードに上記のコードを追加しなければならLinuxのTIAM57xxの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 descriptorsは、USBデバイスファームウェアに入るものです。

関連する問題