2016-02-03 16 views
1

Работа над встроенной системой, которая включает модуль g_mass_storage в его конфигурации ядра, я бы хотел определить имя устройства. Последнее будет полезно для идентификации устройства при подключении к хосту.Как определить имя метки устройства, модуль g_mass_storage

Я использую следующую функцию:

int usb_gadget(void) 
{ 
    char cmd[512]; 
    int fd = -1; 
    int len = -1; 

    memset((void *)cmd, 0x00, sizeof(cmd)); 

    fd = open("proc/modules", O_RDONLY); 
    if (fd > 0) 
    { 
     len = read(fd, cmd, sizeof(cmd)); 
     if (len > 0) 
     { 
      if (strstr(cmd, "g_mass_storage") > 0) 
      { 
       fprintf(stderr, "Missing module \n"); 
      } 
      else 
      { 
       strcpy(cmd, "modprobe "); 
       strcat(cmd, "g_mass_storage"); 
       strcat(cmd, " file="); 
       strcat(cmd, "tmp/testfile"); 
       strcat(cmd," idVendor=2000 "); 
       strcat(cmd," idProduct=2000 "); 
       strcat(cmd," bcdDevice=2000 "); 
       strcat(cmd," iManufacturer=TEST "); 
       strcat(cmd," iProduct=BOARD1 "); 
       strcat(cmd," iSerialNumber=1 ");      
       system(cmd); 
      } 
      close(fd); 
     } 
    } 
    return 0; 
} 

Когда устройство подключено к ПК с Windows, устройство определяется как Local Disk(E:).

Как обмениваться Local Disk по определенному имени, так как это делается для моего USB-ключа SnPKey?

EDIT 1:

Mass Storage Gadget

Согласно информации, приведенной в предыдущей ссылке, я попытался указать USB строку продукта через iProduct без успеха.

+0

После многих исследований эта запись, по-видимому, реализуется во время этапа разбиения. В скором времени я приступлю к тестированию. – ogs

ответ

1

Решение найдено.

Метка тома должна определяться при создании секторов.

В моем случае, я проверил процесс, набрав 0x4E,0x4F,0x20,0x4E,0x41,0x4D,0x45,0x20,0x20,0x20,0x20, который равен NO NAME.

 Смежные вопросы

  • Нет связанных вопросов^_^