From 61c4b7926bef9d3198e89dbd07cc4b5dbb7ef263 Mon Sep 17 00:00:00 2001 From: Colin Guthrie Date: Mon, 19 Dec 2011 22:47:15 +0000 Subject: Port stage2 to use udev. In order to run dracut in the installer, it is necessary to have a working udev setup (specifically /dev/block/* nodes, but there may be other requirements). As dracut is needed by systemd when /usr is on a separate partition, we need udev in the installer in order to support systemd generally. --- perl-install/install/Makefile | 1 + perl-install/install/install2.pm | 18 ++++++++++++++++++ perl-install/install/share/list.xml | 5 ++--- 3 files changed, 21 insertions(+), 3 deletions(-) (limited to 'perl-install/install') diff --git a/perl-install/install/Makefile b/perl-install/install/Makefile index 1cbdee2fe..c57505d1a 100644 --- a/perl-install/install/Makefile +++ b/perl-install/install/Makefile @@ -47,6 +47,7 @@ install_pms: get_needed_files: xs REP4PMS=$(REP4PMS) ../../tools/install-xml-file-list share/list.xml $(DEST) + mkdir -p $(DEST)/run chmod u-s -R $(DEST) # for mount/umount share/generate-xlocales $(DEST) diff --git a/perl-install/install/install2.pm b/perl-install/install/install2.pm index 9b600a482..32a60279e 100644 --- a/perl-install/install/install2.pm +++ b/perl-install/install/install2.pm @@ -395,6 +395,24 @@ sub main { eval { fs::mount::mount('none', '/sys', 'sysfs', 1) }; eval { touch('/root/non-chrooted-marker.DrakX') }; #- helps distinguishing /root and /mnt/root when we don't know if we are chrooted + # Ensure /run is mounted + mkdir "/run", 0755; + run_program::run("mount -t tmpfs -o mode=0755,nosuid,nodev tmpfs /run"); + mkdir "/run/udev", 0755; + mkdir "/run/udev/rules.d", 0755; + $ENV{UDEVRULESD} = "/run/udev/rules.d"; + + # Start up udev and trigger cold plugs + run_program::run("mount", "-t", "devtmpfs", "-o", "mode=0755,nosuid", "devtmpfs", "/dev"); + mkdir "/dev/pts", 0755; + run_program::run("mount", "-t", "devpts", "-o", "gid=5,mode=620,noexec,nosuid", "devpts", "/dev/pts"); + mkdir "/dev/shm", 0755; + run_program::run("mount", "-t", "tmpfs", "-o", "mode=1777,nosuid,nodev", "tmpfs", "/dev/shm"); + + run_program::run("/lib/udev/udevd", "--daemon", "--resolve-names=never"); + run_program::run("udevadm", "trigger", "--type=subsystems", "--action=add"); + run_program::run("udevadm", "trigger", "--type=devices", "--action=add"); + if ($::local_install) { push @::auto_steps, # 'selectLanguage', 'selectKeyboard', 'miscellaneous', 'selectInstallClass', diff --git a/perl-install/install/share/list.xml b/perl-install/install/share/list.xml index dffdae857..3fa6e32a0 100644 --- a/perl-install/install/share/list.xml +++ b/perl-install/install/share/list.xml @@ -15,9 +15,7 @@ lvm2 mdadm mount mount.nfs umount - - usb_id - + udevadm badblocks mkswap @@ -191,6 +189,7 @@ /etc/pki/tls/certs/ca-bundle.crt + /lib/udev/udevd /lib/udev/pcmcia-socket-startup /etc/pcmcia/config.opts -- cgit v1.2.1