En travaillant sur un système embarqué incluant le module g_mass_storage dans sa configuration du noyau, je voudrais définir le nom de l'équipement. Ce dernier sera utile pour identifier l'appareil lorsqu'il est branché à un hôte.Comment définir le nom de l'étiquette de l'appareil, module g_mass_storage
J'utilise la fonction suivante:
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;
}
Lorsque l'appareil est connecté à un PC sous Windows, l'appareil est défini comme Local Disk(E:)
. Comment échanger Local Disk
par un nom spécifique comme c'est fait pour ma clé USB ?
EDIT 1:
Selon les informations données dans le lien précédent, j'ai essayé de spécifier une chaîne de produit USB à travers iProduct
sans succès.
Après de nombreuses recherches, cette écriture semble être réalisée au cours de l'étape de partitionnement. Je vais bientôt réaliser un test sur la plateforme. – ogs