Как определить имя метки устройства, модуль 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?

РЕДАКТИРОВАТЬ 1:

Гаджет Mass Storage

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

1 ответ

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

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

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

Другие вопросы по тегам