diff options
author | Jeremy Katz <katzj@redhat.com> | 2003-09-20 03:31:26 +0000 |
---|---|---|
committer | Jeremy Katz <katzj@redhat.com> | 2003-09-20 03:31:26 +0000 |
commit | 31f1add4879da48efb7af21fc5c575692cc3709d (patch) | |
tree | 7a541b8f54f91ed8309da17752e205b40db2cf30 /loader2/driverdisk.c | |
parent | 8307d33391423f13c1deed409b80d8e381582a93 (diff) | |
download | anaconda-31f1add4879da48efb7af21fc5c575692cc3709d.tar.gz anaconda-31f1add4879da48efb7af21fc5c575692cc3709d.tar.xz anaconda-31f1add4879da48efb7af21fc5c575692cc3709d.zip |
merge from taroon
fairly large merge, but all fairly obvious stuff. will test in a tree tomorrow
Diffstat (limited to 'loader2/driverdisk.c')
-rw-r--r-- | loader2/driverdisk.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/loader2/driverdisk.c b/loader2/driverdisk.c index aa98653dd..da4f29003 100644 --- a/loader2/driverdisk.c +++ b/loader2/driverdisk.c @@ -157,9 +157,8 @@ int getRemovableDevices(char *** devNames) { int numDevices = 0; int i = 0, j = 0; - floppies = probeDevices(CLASS_FLOPPY, - BUS_IDE | BUS_SCSI | BUS_MISC, PROBE_ALL); - cdroms = probeDevices(CLASS_CDROM, BUS_IDE | BUS_SCSI, PROBE_ALL); + floppies = probeDevices(CLASS_FLOPPY, BUS_UNSPEC, PROBE_ALL); + cdroms = probeDevices(CLASS_CDROM, BUS_UNSPEC, PROBE_ALL); /* we should probably take detached into account here, but it just * means we use a little bit more memory than we really need to */ @@ -195,6 +194,7 @@ int getRemovableDevices(char *** devNames) { for (i = 0; devices[i] && (i < numDevices); i++) (*devNames)[i] = strdup(devices[i]->device); free(devices); + (*devNames)[i] = NULL; if (i != numDevices) logMessage("somehow numDevices != len(devices)"); @@ -441,11 +441,19 @@ void getDDFromSource(struct knownDevices * kd, logMessage("unable to retrieve driver disk: %s", src); return; } + /* FIXME: this is a hack so that you can load a driver disk from, eg, + * scsi cdrom drives */ + } else if (!strncmp(src, "cdrom", 5)) { + loadDriverDisks(CLASS_UNSPEC, loaderData->modLoaded, + loaderData->modDepsPtr, loaderData->modInfo, + kd, flags); + return; } else { newtWinMessage(_("Kickstart Error"), _("OK"), _("Unknown driver disk kickstart source: %s"), src); return; } + if (!mountLoopback("/tmp/dd.img", "/tmp/drivers", "loop6")) { loadFromLocation(kd, loaderData, "/tmp/drivers", flags); umountLoopback("/tmp/drivers", "loop6"); |