[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
[RFC PATCH] De-kudzuification of anaconda, stage 1
- From: Bill Nottingham <notting redhat com>
- To: anaconda-devel-list redhat com
- Subject: [RFC PATCH] De-kudzuification of anaconda, stage 1
- Date: Wed, 5 Dec 2007 18:22:51 -0500
This is the 50% solution for
http://fedoraproject.org/wiki/Anaconda/Features/NoMoreKudzu
These patches:
- replace the use of kudzu for probing in stage2 with HAL usage
This seems to me to be the obvious choice - it matches the rest
of the system, and allows anaconda to be used as a 'normal' app
better. Furthermore, going down this road allows us to fix various
warts (network devices, CD locking, etc.) in the live install case
better.
- start dbus, HAL in stage2 if needed
- switch to using udev to create device nodes (not load modules) in
stage1 and stage2
HAL uses udev for some device information, and getting anaconda out
of the business of creating device nodes seems to me to be an obvious
win.
- adjust various things as needed to deal with it
That leaves the question of what to replace kudzu with in stage1. That
is not solved in this patch. Frankly, I think that using udev + hal
makes the most sense from a standpoint of not having to duplicate and
maintain code in anaconda proper going forward. However, that entails
switching to a dynamic stage1 to accomplish that, and the surgery
required to upd-instroot and mk-imageds to accomplish that may kill the
patient. If we *do* do that, it's a good time to revisit the
stage1/stage2 split, especially if we're changing how we download
images. If we *don't* do HAL in stage1, then we just want a small shim
that pulls block/net devices out of sysfs, and switches the way we load
modules.
In any case, I figured I'd post this before tackling either of those
two options for stage1.
Tested in KVM, doing a CD install. There are almost certainly warts
remaining in driver disk/updates images.
For the curious, size differences (udev in stage1, hal/dbus in stage2):
before after
initrd 6.9M 7.2M
stage2 103M 104M
Full diffstat:
b/anaconda | 61 ++++++-
b/dmraid.py | 6
b/exception.py | 37 ++--
b/fsset.py | 32 ----
b/image.py | 2
b/installmethod.py | 2
b/isys/Makefile | 2
b/isys/dasd.c | 1
b/isys/eddsupport.c | 7
b/isys/isys.c | 19 --
b/isys/isys.h | 3
b/isys/isys.py | 192 ++++++++-----------------
b/iutil.py | 84 ----------
b/loader2/cdinstall.c | 52 ++----
b/loader2/driverdisk.c | 34 +---
b/loader2/hdinstall.c | 10 -
b/loader2/init.c | 5
b/loader2/loader.c | 28 +--
b/loader2/method.c | 69 +++------
b/loader2/nfsinstall.c | 4
b/loader2/urlinstall.c | 12 -
b/network.py | 69 ++-------
b/partedUtils.py | 33 +---
b/partitions.py | 7
b/raid.py | 3
b/scripts/mk-images | 9 +
b/scripts/upd-instroot | 40 ++++-
isys/devnodes.c | 375 -------------------------------------------------
28 files changed, 318 insertions(+), 880 deletions(-)
Bill
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]