1

カーネル構成に 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 PC に接続されている場合、デバイスは として定義されLocal Disk(E:)ます。

Local DiskUSB キーのように特定の名前で交換するにはどうすればよいSnPKeyですか?

編集1:

マスストレージガジェット

iProduct前のリンクで提供された情報によると、成功せずに USB 製品文字列を指定しようとしました。

4

1 に答える 1

1

解決策が見つかりました。

ボリューム ラベルは、セクタの作成中に定義する必要があります。

私の場合、0x4E,0x4F,0x20,0x4E,0x41,0x4D,0x45,0x20,0x20,0x20,0x20which is equals と書くことでプロセスを検証しましたNO NAME

于 2016-02-04T07:38:14.330 に答える