summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mdk-stage1/modules.c4
-rw-r--r--mdk-stage1/probing.c15
-rw-r--r--mdk-stage1/stdio-frontend.c2
3 files changed, 11 insertions, 10 deletions
diff --git a/mdk-stage1/modules.c b/mdk-stage1/modules.c
index 2788315f8..f3d43bd32 100644
--- a/mdk-stage1/modules.c
+++ b/mdk-stage1/modules.c
@@ -53,7 +53,7 @@ static int insmod_archived_file(const char * mod_name, char * options)
i = mar_extract_file(archive_name, module_name, "/tmp/");
if (i == 1) {
log_message("file-not-found-in-archive %s", module_name);
- return -1;
+ return -2;
}
if (i != 0)
return -1;
@@ -294,7 +294,7 @@ int my_insmod(const char * mod_name, enum driver_type type, char * options)
}
#endif
} else
- log_message("warning, insmod failed (%s %s)", mod_name, options);
+ log_message("warning, insmod failed (%s %s) (%d)", mod_name, options, i);
return i;
diff --git a/mdk-stage1/probing.c b/mdk-stage1/probing.c
index 93c1614ba..d0ea315a1 100644
--- a/mdk-stage1/probing.c
+++ b/mdk-stage1/probing.c
@@ -61,7 +61,7 @@ struct media_info {
static void warning_insmod_failed(void)
{
- error_message("Warning, installation of driver failed.");
+ error_message("Warning, installation of driver failed. (please include msg from <Alt-F3> for bugreports)");
}
#ifndef DISABLE_NETWORK
@@ -149,7 +149,7 @@ static void probe_that_type(enum driver_type type)
while (1) {
int i, garb, vendor, device;
-
+
if (!fgets(buf, sizeof(buf), f)) break;
sscanf(buf, "%x %x", &garb, &vendor);
@@ -158,15 +158,15 @@ static void probe_that_type(enum driver_type type)
for (i = 0; i < len; i++) {
if (pcidb[i].vendor == vendor && pcidb[i].device == device) {
- log_message("PCI: found suggestion for %s (%s)", pcidb[i].name, pcidb[i].module);
+ log_message("PCI: device %x %x is \"%s\" (%s)", vendor, device, pcidb[i].name, pcidb[i].module);
#ifndef DISABLE_MEDIAS
if (type == SCSI_ADAPTERS) {
/* insmod takes time, let's use the wait message */
wait_message("Installing %s", pcidb[i].name);
garb = my_insmod(pcidb[i].module, SCSI_ADAPTERS, NULL);
remove_wait_message();
- if (garb)
- warning_insmod_failed();
+ if (garb && !(IS_AUTOMATIC && garb == -2))
+ warning_insmod_failed();
}
#endif
#ifndef DISABLE_NETWORK
@@ -174,8 +174,9 @@ static void probe_that_type(enum driver_type type)
/* insmod is quick, let's use the info message */
info_message("Found %s", pcidb[i].name);
prepare_intf_descr(pcidb[i].name);
- if (my_insmod(pcidb[i].module, NETWORK_DEVICES, NULL))
- warning_insmod_failed();
+ garb = my_insmod(pcidb[i].module, NETWORK_DEVICES, NULL);
+ if (garb && !(IS_AUTOMATIC && garb == -2))
+ warning_insmod_failed();
if (intf_descr_for_discover) /* for modules providing more than one net intf */
net_discovered_interface(NULL);
}
diff --git a/mdk-stage1/stdio-frontend.c b/mdk-stage1/stdio-frontend.c
index 6d6794d06..a8622bf1c 100644
--- a/mdk-stage1/stdio-frontend.c
+++ b/mdk-stage1/stdio-frontend.c
@@ -46,7 +46,7 @@ void finish_frontend(void)
static void get_any_response(void)
{
unsigned char t;
- printf(" (press <enter> to proceed)");
+ printf("\n\t(press <enter> to proceed)");
fflush(stdout);
read(0, &t, 1);
fcntl(0, F_SETFL, O_NONBLOCK);