Takeharu Kato said:

I found that lsmod in busybox does not support linux-2.6.
I fix this issue(it is caused by changes of /proc/modules format).
If you use lsmod in busybox with kernel-2.6, please use this patch.
This commit is contained in:
Rob Landley 2005-05-03 22:34:03 +00:00
parent 0d38301d85
commit 627814bdc3

View File

@ -164,10 +164,51 @@ extern int lsmod_main(int argc, char **argv)
{ {
printf("Module Size Used by"); printf("Module Size Used by");
check_tainted(); check_tainted();
#if defined(CONFIG_FEATURE_2_6_MODULES)
{
FILE *file;
char line[4096];
file = fopen("/proc/modules", "r");
if (!file)
bb_error_msg_and_die("Opening /proc/modules");
while (fgets(line, sizeof(line), file)) {
char *tok;
tok = strtok(line, " \t");
printf("%-19s", tok);
tok = strtok(NULL, " \t\n");
printf(" %8s", tok);
tok = strtok(NULL, " \t\n");
/* Null if no module unloading support. */
if (tok) {
printf(" %s", tok);
tok = strtok(NULL, "\n");
if (!tok)
tok = "";
/* New-style has commas, or -. If so,
truncate (other fields might follow). */
else if (strchr(tok, ',')) {
tok = strtok(tok, "\t ");
/* Strip trailing comma. */
if (tok[strlen(tok)-1] == ',')
tok[strlen(tok)-1] = '\0';
} else if (tok[0] == '-'
&& (tok[1] == '\0' || isspace(tok[1])))
tok = "";
printf(" %s", tok);
}
printf("\n");
}
fclose(file);
}
#else
if (bb_xprint_file_by_name("/proc/modules") < 0) { if (bb_xprint_file_by_name("/proc/modules") < 0) {
return 0; return 0;
} }
#endif /* CONFIG_FEATURE_2_6_MODULES */
return 1; return 1;
} }