X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=helper%2Finit.c;h=34a84507598e58ec303cf4316b69673dc07cc1df;hb=57b3004bde579b986523c43e3a0e6693fd49dd21;hp=0ca31354078087faecce7ac9beb883304430cb4b;hpb=84ce1bc019392270456ce34372579bc777d21666;p=febootstrap.git diff --git a/helper/init.c b/helper/init.c index 0ca3135..34a8450 100644 --- a/helper/init.c +++ b/helper/init.c @@ -40,6 +40,23 @@ extern long init_module (void *, unsigned long, const char *); +/* translation taken from module-init-tools/insmod.c */ +static const char *moderror(int err) +{ + switch (err) { + case ENOEXEC: + return "Invalid module format"; + case ENOENT: + return "Unknown symbol in module"; + case ESRCH: + return "Module has wrong symbol version"; + case EINVAL: + return "Invalid parameters"; + default: + return strerror(err); + } +} + /* Leave this enabled for now. When we get more confident in the boot * process we can turn this off or make it configurable. */ @@ -210,7 +227,7 @@ insmod (const char *filename) close (fd); if (init_module (buf, st.st_size, "") != 0) { - fprintf (stderr, "insmod: init_module: %s: %m\n", filename); + fprintf (stderr, "insmod: init_module: %s: %s\n", filename, moderror (errno)); /* However ignore the error because this can just happen because * of a missing device. */