summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Katz <katzj@redhat.com>2004-12-14 19:17:36 +0000
committerJeremy Katz <katzj@redhat.com>2004-12-14 19:17:36 +0000
commitf47b6e4e6fc9a5b80732b3761c8a97b0ffba7f45 (patch)
tree10d7de8380b08e74db1adfdc4774a39839b407df
parent2e800f9ff654c242fc23b8b66eca8d2296629ff5 (diff)
downloadanaconda-f47b6e4e6fc9a5b80732b3761c8a97b0ffba7f45.tar.gz
anaconda-f47b6e4e6fc9a5b80732b3761c8a97b0ffba7f45.tar.xz
anaconda-f47b6e4e6fc9a5b80732b3761c8a97b0ffba7f45.zip
2004-12-14 Jeremy Katz <katzj@redhat.com>
* loader2/driverdisk.c (useKickstartDD): Add support for biosdev in driverdisk directive. Patch basically from Rez Kabir AT dell (#142738)
-rw-r--r--ChangeLog6
-rw-r--r--loader2/driverdisk.c23
2 files changed, 29 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index c0c66bfad..adbc8aeb1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2004-12-14 Jeremy Katz <katzj@redhat.com>
+
+ * loader2/driverdisk.c (useKickstartDD): Add support for
+ biosdev in driverdisk directive. Patch basically from Rez Kabir
+ AT dell (#142738)
+
2004-12-14 Paul Nasrat <pnasrat@redhat.com>
* lvm.py: LVM on RAID - (#141781)
diff --git a/loader2/driverdisk.c b/loader2/driverdisk.c
index 996121368..6b1928d54 100644
--- a/loader2/driverdisk.c
+++ b/loader2/driverdisk.c
@@ -43,6 +43,7 @@
#include "../isys/isys.h"
#include "../isys/imount.h"
+#include "../isys/eddsupport.h"
static char * driverDiskFiles[] = { "modinfo", "modules.dep", "pcitable",
"modules.cgz", NULL };
@@ -596,12 +597,17 @@ void useKickstartDD(struct loaderData_s * loaderData,
char * fstype = NULL;
char * dev = NULL;
char * src = NULL;
+
+ char * biospart = NULL, * p = NULL;
+ int usebiosdev = 0;
+
poptContext optCon;
int rc;
int flags = *flagsPtr;
struct poptOption ksDDOptions[] = {
{ "type", '\0', POPT_ARG_STRING, &fstype, 0 },
{ "source", '\0', POPT_ARG_STRING, &src, 0 },
+ { "biospart", '\0', POPT_ARG_NONE, &usebiosdev, 0 },
{ 0, 0, 0, 0, 0 }
};
@@ -622,6 +628,23 @@ void useKickstartDD(struct loaderData_s * loaderData,
return;
}
+ if (usebiosdev != 0) {
+ p = strchr(dev,'p');
+ if (!p){
+ logMessage("Bad argument for biospart");
+ return;
+ }
+ *p = '\0';
+
+ biospart = getBiosDisk(dev);
+ if (biospart == NULL) {
+ logMessage("Unable to locate BIOS dev %s",dev);
+ return;
+ }
+ dev = malloc(strlen(biospart) + strlen(p + 1) + 2);
+ sprintf(dev, "%s%s", biospart, p + 1);
+ }
+
if (dev) {
return getDDFromDev(loaderData, dev, fstype, flags);
} else {