From 5fca8d27d84b63d159cbf8685147e89e5db7fcfd Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sun, 27 Jul 2014 16:42:56 +0200 Subject: [PATCH] installer: Create dracut module There is now a new installer module for dracut which will take the installer and put it into the ramdisk. --- config/install/fstab | 5 - config/install/group | 4 - config/install/halt | 16 --- config/install/hosts | 1 - config/install/nsswitch.conf | 15 --- config/install/passwd | 1 - config/install/profile | 7 - config/install/shells | 1 - config/rootfiles/installer/coreutils | 1 - config/rootfiles/installer/dhcpcd | 1 - config/rootfiles/installer/e2fsprogs | 1 - config/rootfiles/installer/files | 4 - config/rootfiles/installer/findutils | 1 - config/rootfiles/installer/gawk | 1 - config/rootfiles/installer/glibc | 1 - config/rootfiles/installer/grep | 1 - config/rootfiles/installer/gzip | 1 - config/rootfiles/installer/hwdata | 1 - config/rootfiles/installer/iproute2 | 1 - config/rootfiles/installer/kbd | 1 - config/rootfiles/installer/libidn | 1 - config/rootfiles/installer/libusb | 1 - config/rootfiles/installer/misc-progs | 2 - config/rootfiles/installer/ncurses | 1 - config/rootfiles/installer/newt | 1 - config/rootfiles/installer/openssl | 1 - config/rootfiles/installer/parted | 1 - config/rootfiles/installer/pciutils | 1 - config/rootfiles/installer/pcmciautils | 1 - config/rootfiles/installer/pcre | 1 - config/rootfiles/installer/popt | 1 - config/rootfiles/installer/reboot | 2 - config/rootfiles/installer/reiserfsprogs | 1 - config/rootfiles/installer/sed | 1 - config/rootfiles/installer/slang | 1 - config/rootfiles/installer/sysfsutils | 1 - config/rootfiles/installer/tar | 1 - config/rootfiles/installer/udev | 1 - config/rootfiles/installer/usbutils | 1 - config/rootfiles/installer/util-linux | 1 - config/rootfiles/installer/vim | 1 - config/rootfiles/installer/wget | 1 - config/rootfiles/installer/xz | 1 - config/rootfiles/installer/zlib | 1 - lfs/cdrom | 2 +- lfs/initrd | 121 ------------------ lfs/installer | 9 +- make.sh | 1 - src/install+setup/install/Makefile | 4 +- .../install/dracut-module/70-dhcpcd.exe | 32 +++++ .../install/dracut-module/fake-root.sh | 5 + .../install/dracut-module/module-setup.sh | 63 +++++++++ .../install/dracut-module/run-installer.sh | 15 +-- 53 files changed, 116 insertions(+), 227 deletions(-) delete mode 100644 config/install/fstab delete mode 100644 config/install/group delete mode 100644 config/install/halt delete mode 100644 config/install/hosts delete mode 100644 config/install/nsswitch.conf delete mode 100644 config/install/passwd delete mode 100644 config/install/profile delete mode 100644 config/install/shells delete mode 120000 config/rootfiles/installer/coreutils delete mode 120000 config/rootfiles/installer/dhcpcd delete mode 120000 config/rootfiles/installer/e2fsprogs delete mode 100644 config/rootfiles/installer/files delete mode 120000 config/rootfiles/installer/findutils delete mode 120000 config/rootfiles/installer/gawk delete mode 120000 config/rootfiles/installer/glibc delete mode 120000 config/rootfiles/installer/grep delete mode 120000 config/rootfiles/installer/gzip delete mode 120000 config/rootfiles/installer/hwdata delete mode 120000 config/rootfiles/installer/iproute2 delete mode 120000 config/rootfiles/installer/kbd delete mode 120000 config/rootfiles/installer/libidn delete mode 120000 config/rootfiles/installer/libusb delete mode 100644 config/rootfiles/installer/misc-progs delete mode 120000 config/rootfiles/installer/ncurses delete mode 120000 config/rootfiles/installer/newt delete mode 120000 config/rootfiles/installer/openssl delete mode 120000 config/rootfiles/installer/parted delete mode 120000 config/rootfiles/installer/pciutils delete mode 120000 config/rootfiles/installer/pcmciautils delete mode 120000 config/rootfiles/installer/pcre delete mode 120000 config/rootfiles/installer/popt delete mode 100644 config/rootfiles/installer/reboot delete mode 120000 config/rootfiles/installer/reiserfsprogs delete mode 120000 config/rootfiles/installer/sed delete mode 120000 config/rootfiles/installer/slang delete mode 120000 config/rootfiles/installer/sysfsutils delete mode 120000 config/rootfiles/installer/tar delete mode 120000 config/rootfiles/installer/udev delete mode 120000 config/rootfiles/installer/usbutils delete mode 120000 config/rootfiles/installer/util-linux delete mode 120000 config/rootfiles/installer/vim delete mode 120000 config/rootfiles/installer/wget delete mode 120000 config/rootfiles/installer/xz delete mode 120000 config/rootfiles/installer/zlib delete mode 100644 lfs/initrd create mode 100755 src/install+setup/install/dracut-module/70-dhcpcd.exe create mode 100644 src/install+setup/install/dracut-module/fake-root.sh create mode 100755 src/install+setup/install/dracut-module/module-setup.sh rename config/install/rc_installer => src/install+setup/install/dracut-module/run-installer.sh (53%) diff --git a/config/install/fstab b/config/install/fstab deleted file mode 100644 index 58297c2b1..000000000 --- a/config/install/fstab +++ /dev/null @@ -1,5 +0,0 @@ -/dev/ram0 / squashfs -/proc /proc proc -none /sys sysfs -none /tmp tmpfs -none /dev tmpfs diff --git a/config/install/group b/config/install/group deleted file mode 100644 index 465a9cf41..000000000 --- a/config/install/group +++ /dev/null @@ -1,4 +0,0 @@ -root:x:0:root -tty:x:5: -disk:x:6: -uucp:x:14: diff --git a/config/install/halt b/config/install/halt deleted file mode 100644 index 90a0c80fe..000000000 --- a/config/install/halt +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -# Clear screen -/usr/bin/clear -echo "Shutting down..." -echo "Sending all processes the TERM signal..." -/sbin/killall5 -15 -sleep 3 -echo "Sending all processes the KILL signal..." -/sbin/killall5 -9 -sleep 3 -echo "Unmounting filesystems..." -/bin/umount -a > /dev/null 2>&1 -echo "Unmounting root..." -/bin/mount -n -o remount,ro / -echo "Rebooting..." -/sbin/reboot -f diff --git a/config/install/hosts b/config/install/hosts deleted file mode 100644 index f4fb350dd..000000000 --- a/config/install/hosts +++ /dev/null @@ -1 +0,0 @@ -localhost 127.0.0.1 diff --git a/config/install/nsswitch.conf b/config/install/nsswitch.conf deleted file mode 100644 index da516c6ca..000000000 --- a/config/install/nsswitch.conf +++ /dev/null @@ -1,15 +0,0 @@ -passwd: files -shadow: files -group: files -hosts: files -services: files -networks: files -protocols: files -rpc: files -ethers: files -netmasks: files -bootparams: files -automount: files -aliases: files -netgroup: files -publickey: files diff --git a/config/install/passwd b/config/install/passwd deleted file mode 100644 index 365a8d7f7..000000000 --- a/config/install/passwd +++ /dev/null @@ -1 +0,0 @@ -root::0:0:root:/:/bin/ash diff --git a/config/install/profile b/config/install/profile deleted file mode 100644 index 02c63b9b7..000000000 --- a/config/install/profile +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/ash - -TERM=linux -LANG=en_US.UTF-8 -export TERM LANG - -/usr/bin/unicode_start diff --git a/config/install/shells b/config/install/shells deleted file mode 100644 index 006aa38ce..000000000 --- a/config/install/shells +++ /dev/null @@ -1 +0,0 @@ -/bin/ash diff --git a/config/rootfiles/installer/coreutils b/config/rootfiles/installer/coreutils deleted file mode 120000 index b41d95ad5..000000000 --- a/config/rootfiles/installer/coreutils +++ /dev/null @@ -1 +0,0 @@ -../common/coreutils \ No newline at end of file diff --git a/config/rootfiles/installer/dhcpcd b/config/rootfiles/installer/dhcpcd deleted file mode 120000 index ea5996c83..000000000 --- a/config/rootfiles/installer/dhcpcd +++ /dev/null @@ -1 +0,0 @@ -../common/dhcpcd \ No newline at end of file diff --git a/config/rootfiles/installer/e2fsprogs b/config/rootfiles/installer/e2fsprogs deleted file mode 120000 index 2a6ee42cc..000000000 --- a/config/rootfiles/installer/e2fsprogs +++ /dev/null @@ -1 +0,0 @@ -../common/e2fsprogs \ No newline at end of file diff --git a/config/rootfiles/installer/files b/config/rootfiles/installer/files deleted file mode 100644 index aba14d80e..000000000 --- a/config/rootfiles/installer/files +++ /dev/null @@ -1,4 +0,0 @@ -etc/host.conf -etc/hosts -etc/protocols - diff --git a/config/rootfiles/installer/findutils b/config/rootfiles/installer/findutils deleted file mode 120000 index 1114c4c47..000000000 --- a/config/rootfiles/installer/findutils +++ /dev/null @@ -1 +0,0 @@ -../common/findutils \ No newline at end of file diff --git a/config/rootfiles/installer/gawk b/config/rootfiles/installer/gawk deleted file mode 120000 index a7660cfcb..000000000 --- a/config/rootfiles/installer/gawk +++ /dev/null @@ -1 +0,0 @@ -../common/gawk \ No newline at end of file diff --git a/config/rootfiles/installer/glibc b/config/rootfiles/installer/glibc deleted file mode 120000 index 4a4672680..000000000 --- a/config/rootfiles/installer/glibc +++ /dev/null @@ -1 +0,0 @@ -../common/i586/glibc \ No newline at end of file diff --git a/config/rootfiles/installer/grep b/config/rootfiles/installer/grep deleted file mode 120000 index f7bf2d96a..000000000 --- a/config/rootfiles/installer/grep +++ /dev/null @@ -1 +0,0 @@ -../common/grep \ No newline at end of file diff --git a/config/rootfiles/installer/gzip b/config/rootfiles/installer/gzip deleted file mode 120000 index 1cbc376de..000000000 --- a/config/rootfiles/installer/gzip +++ /dev/null @@ -1 +0,0 @@ -../common/gzip \ No newline at end of file diff --git a/config/rootfiles/installer/hwdata b/config/rootfiles/installer/hwdata deleted file mode 120000 index 7ed7e21d6..000000000 --- a/config/rootfiles/installer/hwdata +++ /dev/null @@ -1 +0,0 @@ -../common/hwdata \ No newline at end of file diff --git a/config/rootfiles/installer/iproute2 b/config/rootfiles/installer/iproute2 deleted file mode 120000 index efe83c546..000000000 --- a/config/rootfiles/installer/iproute2 +++ /dev/null @@ -1 +0,0 @@ -../common/iproute2 \ No newline at end of file diff --git a/config/rootfiles/installer/kbd b/config/rootfiles/installer/kbd deleted file mode 120000 index 3efe86af2..000000000 --- a/config/rootfiles/installer/kbd +++ /dev/null @@ -1 +0,0 @@ -../common/kbd \ No newline at end of file diff --git a/config/rootfiles/installer/libidn b/config/rootfiles/installer/libidn deleted file mode 120000 index 9750546c4..000000000 --- a/config/rootfiles/installer/libidn +++ /dev/null @@ -1 +0,0 @@ -../common/libidn \ No newline at end of file diff --git a/config/rootfiles/installer/libusb b/config/rootfiles/installer/libusb deleted file mode 120000 index efe4a2801..000000000 --- a/config/rootfiles/installer/libusb +++ /dev/null @@ -1 +0,0 @@ -../common/libusb \ No newline at end of file diff --git a/config/rootfiles/installer/misc-progs b/config/rootfiles/installer/misc-progs deleted file mode 100644 index 1e4226bd9..000000000 --- a/config/rootfiles/installer/misc-progs +++ /dev/null @@ -1,2 +0,0 @@ -bin/ping -usr/local/bin/iowrap diff --git a/config/rootfiles/installer/ncurses b/config/rootfiles/installer/ncurses deleted file mode 120000 index 7aac8a22b..000000000 --- a/config/rootfiles/installer/ncurses +++ /dev/null @@ -1 +0,0 @@ -../common/ncurses \ No newline at end of file diff --git a/config/rootfiles/installer/newt b/config/rootfiles/installer/newt deleted file mode 120000 index b63c4809e..000000000 --- a/config/rootfiles/installer/newt +++ /dev/null @@ -1 +0,0 @@ -../common/newt \ No newline at end of file diff --git a/config/rootfiles/installer/openssl b/config/rootfiles/installer/openssl deleted file mode 120000 index 8317ffd07..000000000 --- a/config/rootfiles/installer/openssl +++ /dev/null @@ -1 +0,0 @@ -../common/openssl \ No newline at end of file diff --git a/config/rootfiles/installer/parted b/config/rootfiles/installer/parted deleted file mode 120000 index 5c544a401..000000000 --- a/config/rootfiles/installer/parted +++ /dev/null @@ -1 +0,0 @@ -../common/parted \ No newline at end of file diff --git a/config/rootfiles/installer/pciutils b/config/rootfiles/installer/pciutils deleted file mode 120000 index 903f12430..000000000 --- a/config/rootfiles/installer/pciutils +++ /dev/null @@ -1 +0,0 @@ -../common/pciutils \ No newline at end of file diff --git a/config/rootfiles/installer/pcmciautils b/config/rootfiles/installer/pcmciautils deleted file mode 120000 index 47b2fe8f4..000000000 --- a/config/rootfiles/installer/pcmciautils +++ /dev/null @@ -1 +0,0 @@ -../common/pcmciautils \ No newline at end of file diff --git a/config/rootfiles/installer/pcre b/config/rootfiles/installer/pcre deleted file mode 120000 index ffd861616..000000000 --- a/config/rootfiles/installer/pcre +++ /dev/null @@ -1 +0,0 @@ -../common/pcre \ No newline at end of file diff --git a/config/rootfiles/installer/popt b/config/rootfiles/installer/popt deleted file mode 120000 index d15b2c614..000000000 --- a/config/rootfiles/installer/popt +++ /dev/null @@ -1 +0,0 @@ -../common/popt \ No newline at end of file diff --git a/config/rootfiles/installer/reboot b/config/rootfiles/installer/reboot deleted file mode 100644 index f1f6d6498..000000000 --- a/config/rootfiles/installer/reboot +++ /dev/null @@ -1,2 +0,0 @@ -sbin/reboot -sbin/halt diff --git a/config/rootfiles/installer/reiserfsprogs b/config/rootfiles/installer/reiserfsprogs deleted file mode 120000 index f596f68ac..000000000 --- a/config/rootfiles/installer/reiserfsprogs +++ /dev/null @@ -1 +0,0 @@ -../common/reiserfsprogs \ No newline at end of file diff --git a/config/rootfiles/installer/sed b/config/rootfiles/installer/sed deleted file mode 120000 index 4b0d3a3cd..000000000 --- a/config/rootfiles/installer/sed +++ /dev/null @@ -1 +0,0 @@ -../common/sed \ No newline at end of file diff --git a/config/rootfiles/installer/slang b/config/rootfiles/installer/slang deleted file mode 120000 index 405fd4072..000000000 --- a/config/rootfiles/installer/slang +++ /dev/null @@ -1 +0,0 @@ -../common/slang \ No newline at end of file diff --git a/config/rootfiles/installer/sysfsutils b/config/rootfiles/installer/sysfsutils deleted file mode 120000 index 9c56a9af9..000000000 --- a/config/rootfiles/installer/sysfsutils +++ /dev/null @@ -1 +0,0 @@ -../common/sysfsutils \ No newline at end of file diff --git a/config/rootfiles/installer/tar b/config/rootfiles/installer/tar deleted file mode 120000 index f994ef659..000000000 --- a/config/rootfiles/installer/tar +++ /dev/null @@ -1 +0,0 @@ -../common/tar \ No newline at end of file diff --git a/config/rootfiles/installer/udev b/config/rootfiles/installer/udev deleted file mode 120000 index d96e0b708..000000000 --- a/config/rootfiles/installer/udev +++ /dev/null @@ -1 +0,0 @@ -../common/udev \ No newline at end of file diff --git a/config/rootfiles/installer/usbutils b/config/rootfiles/installer/usbutils deleted file mode 120000 index dcc136f99..000000000 --- a/config/rootfiles/installer/usbutils +++ /dev/null @@ -1 +0,0 @@ -../common/usbutils \ No newline at end of file diff --git a/config/rootfiles/installer/util-linux b/config/rootfiles/installer/util-linux deleted file mode 120000 index f672071b7..000000000 --- a/config/rootfiles/installer/util-linux +++ /dev/null @@ -1 +0,0 @@ -../common/i586/util-linux \ No newline at end of file diff --git a/config/rootfiles/installer/vim b/config/rootfiles/installer/vim deleted file mode 120000 index 3ae92f3f0..000000000 --- a/config/rootfiles/installer/vim +++ /dev/null @@ -1 +0,0 @@ -../common/vim \ No newline at end of file diff --git a/config/rootfiles/installer/wget b/config/rootfiles/installer/wget deleted file mode 120000 index b75cdbce7..000000000 --- a/config/rootfiles/installer/wget +++ /dev/null @@ -1 +0,0 @@ -../common/wget \ No newline at end of file diff --git a/config/rootfiles/installer/xz b/config/rootfiles/installer/xz deleted file mode 120000 index 61772c7a2..000000000 --- a/config/rootfiles/installer/xz +++ /dev/null @@ -1 +0,0 @@ -../common/xz \ No newline at end of file diff --git a/config/rootfiles/installer/zlib b/config/rootfiles/installer/zlib deleted file mode 120000 index fcdedec9b..000000000 --- a/config/rootfiles/installer/zlib +++ /dev/null @@ -1 +0,0 @@ -../common/zlib \ No newline at end of file diff --git a/lfs/cdrom b/lfs/cdrom index 5a85002ba..39b485cb9 100644 --- a/lfs/cdrom +++ b/lfs/cdrom @@ -95,7 +95,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) dd if=/dev/zero bs=1k count=2 > /install/cdrom/boot/isolinux/boot.catalog ifneq "$(MACHINE_TYPE)" "arm" cp /boot/vmlinuz-$(KVER)-ipfire /install/cdrom/boot/isolinux/vmlinuz - cp /install/images/initrd /install/cdrom/boot/isolinux/instroot + dracut --force -a "installer" --xz /install/cdrom/boot/isolinux/instroot $(KVER)-ipfire cp $(DIR_SRC)/config/syslinux/boot.png /install/cdrom/boot/isolinux/boot.png cp /usr/lib/memtest86+/memtest.bin /install/cdrom/boot/isolinux/memtest cp /usr/share/ipfire-netboot/ipxe.lkrn /install/cdrom/boot/isolinux/netboot diff --git a/lfs/initrd b/lfs/initrd deleted file mode 100644 index ce7f7943a..000000000 --- a/lfs/initrd +++ /dev/null @@ -1,121 +0,0 @@ -############################################################################### -# # -# IPFire.org - A linux based firewall # -# Copyright (C) 2007-2014 IPFire Team # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see . # -# # -############################################################################### - -############################################################################### -# Definitions -############################################################################### - -include Config - -VER = ipfire - -THISAPP = initrd -DIR_APP = $(DIR_SRC)/$(THISAPP) -TARGET = $(DIR_INFO)/$(THISAPP) - -SUP_ARCH = i586 - -############################################################################### -# Top-level Rules -############################################################################### - -install : $(TARGET) - -check : - -download : - -md5 : - -############################################################################### -# Installation Details -############################################################################### - -$(TARGET) : - @$(PREBUILD) - rm -f /install/images/initrd - - # Finish up initrd directory - -mkdir -p /install/initrd/{dev,etc,mnt,root,lib/modules/$(KVER)-ipfire/kernel/drivers,cdrom,dev,harddisk,proc,tmp,usr/share/terminfo/l,var/run,sys} - cd /install/initrd && lzma -d -c /boot/initramfs-$(KVER)-ipfire.img | cpio -i - - # Copy Files packages for installer - find $(DIR_SRC)/config/rootfiles/installer/* -maxdepth 1 | xargs cat | grep -v "^#" > /tmp/ROOTFILES - - # Patch Kernel Version to rootfiles - sed -e "s/KVER/$(KVER)/g" -i /tmp/ROOTFILES - - -cd / && cpio -d -p /install/initrd < /tmp/ROOTFILES - - # Copy hid and network modules (and deps) - cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/hid \ - /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/ - cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/net \ - /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/ - cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/pcmcia \ - /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/ - cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/ssb \ - /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/ - cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/uio \ - /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/ - cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/ptp \ - /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/ - cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/dca \ - /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/ - cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/pps \ - /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/ - # Remove wireless modules - rm -rf /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/net/wireless - - cd /install/initrd/etc && rm -f fstab - cp -aRf $(DIR_SRC)/config/install/* /install/initrd/etc/ - rm -rf /install/initrd/usr/share/man - chmod 755 /install/initrd/etc/halt /install/initrd/etc/rc_installer - - cd /install/initrd/ && patch -Np0 < $(DIR_SRC)/src/patches/dracut-init_start_ipfireinstaller.patch - - # Hide udev messages - sed -i -e "s|err|none|g" /install/initrd/etc/udev/udev.conf - - # make new dependencies - depmod -a -F /boot/System.map-$(KVER)-ipfire $(KVER)-ipfire - - -mkdir -p /install/{images,mnt} - rm -rf /install/mnt/* - - #Build Module deps for installer. - depmod -a -b /install/initrd/ -F /boot/System.map-$(KVER)-ipfire $(KVER)-ipfire - - #Name service from dhcpcd - cp -f /etc/nsswitch.conf /install/initrd/etc/ - cp -f $(DIR_SRC)/config/initrd/dhcpc/* /install/initrd/var/ipfire/dhcpc/dhcpcd-hooks/ - - # Install needed locales. - -mkdir -pv /install/initrd/usr/lib/locale - for lang in $(DIR_SRC)/langs/*; do \ - for path in /usr/lib/locale/$${lang##*/}*; do \ - [ -d "$${path}" ] && cp -lrvf "$${path}" /install/initrd/usr/lib/locale/; \ - done; \ - done - - cd /install/initrd && find . | cpio -o -H newc | lzma > /install/images/initrd - cd /install/initrd && find ./ -ls > $(DIR_INFO)/_build.initrd.log - - @$(POSTBUILD) diff --git a/lfs/installer b/lfs/installer index 1fc205885..f25268bfd 100644 --- a/lfs/installer +++ b/lfs/installer @@ -60,11 +60,14 @@ $(TARGET) : cd $(DIR_APP)/install && make CFLAGS="-Os -std=gnu99 -fomit-frame-pointer -Wall \ -DNAME='\"$(NAME)\"' -DSNAME='\"$(SNAME)\"' -DVERSION='\"$(VERSION)\"' \ -DSLOGAN='\"$(SLOGAN)\"' -DCONFIG_ROOT='\"$(CONFIG_ROOT)\"' -DKERNEL_VERSION='\"$(KVER)\"'" - cd $(DIR_APP)/install && install -v -m 0755 install probenic.sh \ - downloadsource.sh mountdest.sh /install/initrd/bin + cd $(DIR_APP)/install && install -v -m 0755 installer probenic.sh \ + downloadsource.sh mountdest.sh /usr/bin + rm -rvf /usr/lib/dracut/modules.d/99installer + cd $(DIR_APP)/install && cp -rvf dracut-module /usr/lib/dracut/modules.d/99installer + #Patch ISO Name for download ... sed -i -e "s|ipfire.iso|download.ipfire.org/releases/ipfire-2.x/$(VERSION)-core$(CORE)/$(SNAME)-$(VERSION).$(MACHINE)-full-core$(CORE).iso|g" \ - /install/initrd/bin/downloadsource.sh + /usr/bin/downloadsource.sh #Patch version for mediacheck ... @rm -rf $(DIR_APP) @$(POSTBUILD) diff --git a/make.sh b/make.sh index e6a96fd51..beafd3342 100755 --- a/make.sh +++ b/make.sh @@ -811,7 +811,6 @@ buildinstaller() { ipfiremake memtest ipfiremake installer installmake strip - ipfiremake initrd } buildpackages() { diff --git a/src/install+setup/install/Makefile b/src/install+setup/install/Makefile index 3feb63542..a78611718 100644 --- a/src/install+setup/install/Makefile +++ b/src/install+setup/install/Makefile @@ -33,7 +33,7 @@ LINK = $(LD) $(LDFLAGS) all : programs -programs : install +programs : installer clean : -rm -f *.o install core @@ -42,7 +42,7 @@ clean : OBJS=main.o config.o ../libsmooth/libsmooth.o unattended.o hw.o -install: $(OBJS) +installer: $(OBJS) $(LINK) $(OBJS) -o $@ $(LIBS) %.o : %.c diff --git a/src/install+setup/install/dracut-module/70-dhcpcd.exe b/src/install+setup/install/dracut-module/70-dhcpcd.exe new file mode 100755 index 000000000..4100fc957 --- /dev/null +++ b/src/install+setup/install/dracut-module/70-dhcpcd.exe @@ -0,0 +1,32 @@ +#/bin/bash +######################################################################## +# Begin +# +# Description : DHCP Client Script (initrd version) +# +# Authors : Arne Fitzenreiter - arne_f@ipfire.org +# +# Version : 02.00 +# +# Notes : +# +######################################################################## + +dhcpcd_up() +{ + set | grep "^new_" | sed "s|^new_||g" | \ + sed "s|'||g" | \ + sort > /var/ipfire/dhcpc/dhcpcd-$interface.info + + DNS=`grep "domain_name_servers" /var/ipfire/dhcpc/dhcpcd-$interface.info | cut -d"=" -f2` + DNS1=`echo $DNS | cut -d" " -f1` + DNS2=`echo $DNS | cut -d" " -f2` + + echo "nameserver $DNS1" > /etc/resolv.conf + echo "nameserver $DNS2" >> /etc/resolv.conf + +} + +case "$reason" in +BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT|STATIC) dhcpcd_up;; +esac diff --git a/src/install+setup/install/dracut-module/fake-root.sh b/src/install+setup/install/dracut-module/fake-root.sh new file mode 100644 index 000000000..7c41f3542 --- /dev/null +++ b/src/install+setup/install/dracut-module/fake-root.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +# Fake root so dracut will start our installer +root="installer" +rootok=1 diff --git a/src/install+setup/install/dracut-module/module-setup.sh b/src/install+setup/install/dracut-module/module-setup.sh new file mode 100755 index 000000000..53ea93bca --- /dev/null +++ b/src/install+setup/install/dracut-module/module-setup.sh @@ -0,0 +1,63 @@ +#!/bin/bash +# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- +# ex: ts=8 sw=4 sts=4 et filetype=sh + +# called by dracut +check() { + return 255 +} + +# called by dracut +depends() { + echo base bash mdraid shutdown + return 0 +} + +# called by dracut +install() { + inst /usr/bin/installer + inst /usr/bin/downloadsource.sh + inst /usr/local/bin/iowrap + + # Kernel drivers + instmods =drivers/hid + + # Network drivers + instmods =drivers/net/ethernet =drivers/net/usb + instmods virtio_net hv_netvsc vmxnet3 + + # Filesystem support + inst_multiple parted mkswap mke2fs mkreiserfs + instmods ext4 iso9660 reiserfs vfat + + # Extraction + inst_multiple tar gzip lzma xz + + # DHCP Client + inst dhcpcd + inst /var/ipfire/dhcpc/dhcpcd-run-hooks + inst /var/ipfire/dhcpc/dhcpcd.conf + for file in /var/ipfire/dhcpc/dhcpcd-hooks/*; do + inst "${file}" + done + inst "$moddir/70-dhcpcd.exe" "/var/ipfire/dhcpc/dhcpcd-hooks/70-dhcpcd.exe" + + # Misc. tools + inst_multiple eject ping wget + inst_multiple -o fdisk cfdisk + + # Hardware IDs + inst /usr/share/hwdata/pci.ids /usr/share/hwdata/usb.ids + + # Locales + for locale in de en es fr nl pl ru tr; do + for file in $(find /usr/lib/locale/${locale}*); do + inst "${file}" + done + done + + inst_hook cmdline 99 "$moddir/fake-root.sh" + inst_hook pre-mount 99 "$moddir/run-installer.sh" + + return 0 +} diff --git a/config/install/rc_installer b/src/install+setup/install/dracut-module/run-installer.sh similarity index 53% rename from config/install/rc_installer rename to src/install+setup/install/dracut-module/run-installer.sh index c1dd5b6e5..53f7cd331 100644 --- a/config/install/rc_installer +++ b/src/install+setup/install/dracut-module/run-installer.sh @@ -1,21 +1,20 @@ +#!/bin/sh # # IPFire Installer RC # +# Silence the kernel echo >/proc/sys/kernel/printk "1 4 1 7" echo -n -e "\033[9;0]" -ln -snf /proc/self/fd/0 /dev/stdin -ln -snf /proc/self/fd/1 /dev/stdout -ln -snf /proc/self/fd/2 /dev/stderr -ln -s /proc/kcore /dev/core -mount tmpfs -t tmpfs /tmp - echo "Starting shells on tty2 and tty3 ..." /usr/local/bin/iowrap /dev/tty2 /bin/bash & /usr/local/bin/iowrap /dev/tty3 /bin/bash & echo "Loading Installer..." -/bin/bash --login -c "/bin/install /dev/tty2" +/bin/bash --login -c "/usr/bin/installer /dev/tty2" -/etc/halt +sleep 60 + +# Reboot the system +/shutdown reboot