printf("%s\t", file->ucode_version);
if (strlen(file->ucode_version) < 8) printf("\t");
+ printf("%s\t", file->id);
+
printf("%s\n", file->md5);
}
print_banner();
printf("\nExtracting firmware is possible "
- "from these binary driver files:\n\n");
+ "from these binary driver files.\n"
+ "The <ID> column shows the unique identifier string "
+ "for your firmware.\nYou must select the firmware with the "
+ "same ID as printed by the kernel driver on modprobe.\n"
+ "Note that only recent drivers print such a message on modprobe.\n"
+ "Please read http://linuxwireless.org/en/users/Drivers/b43#devicefirmware\n\n");
printf("<driver>\t"
"<filename>\t\t"
"<microcode>\t"
+ "<ID>\t"
"<MD5 checksum>\n\n");
/* print for legacy driver first */
for (i = 0; i < FILES; i++)
if (file_ok(&files[i]) &&
strcasecmp(md5sig, files[i].md5) == 0) {
printf("This file is recognised as:\n");
+ printf(" ID : %s\n", files[i].id);
printf(" filename : %s\n", files[i].name);
printf(" version : %s\n", files[i].ucode_version);
printf(" MD5 : %s\n", files[i].md5);
static void print_usage(int argc, char *argv[])
{
print_banner();
- printf("\nUsage: %s [OPTION] [driver.sys]\n", argv[0]);
+ printf("\nA tool to extract firmware for a Broadcom 43xx device\n");
+ printf("from a proprietary Broadcom 43xx device driver file.\n");
+ printf("\nUsage: %s [OPTION] [proprietary-driver-file]\n", argv[0]);
printf(" --unsupported "
"Allow working on extractable but unsupported drivers\n");
printf(" -l|--list "
"Print b43-fwcutter version\n");
printf(" -h|--help "
"Print this help\n");
- printf("\nExample: %s bcmwl5.sys\n"
- " to extract the firmware blobs from bcmwl5.sys\n",
+ printf("\nExample: %s -w /lib/firmware wl_apsta.o\n"
+ " to extract the firmware blobs from wl_apsta.o and store\n"
+ " the resulting firmware in /lib/firmware\n",
argv[0]);
}