From acf85f254acc9e72b32c04c53c4517a5dad07df9 Mon Sep 17 00:00:00 2001 From: Anton Hvornum Date: Fri, 30 Apr 2021 16:55:33 +0200 Subject: Moved mkinitcpio variables They now live as a installation-session variable. Not just minimal installation. --- archinstall/lib/installer.py | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) (limited to 'archinstall/lib') diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py index 61ac737c..3dfcd32b 100644 --- a/archinstall/lib/installer.py +++ b/archinstall/lib/installer.py @@ -57,6 +57,11 @@ class Installer(): storage['session'] = self self.partitions = get_partitions_in_use(self.target) + self.MODULES = [] + self.BINARIES = [] + self.FILES = [] + self.HOOKS = ["base", "udev", "autodetect", "keyboard", "keymap", "modconf", "block", "filesystems", "fsck"] + def log(self, *args, level=logging.DEBUG, **kwargs): """ installer.log() wraps output.log() mainly to set a default log-level for this install session. @@ -284,10 +289,7 @@ class Installer(): ## TODO: Perhaps this should be living in the function which dictates ## the partitioning. Leaving here for now. - MODULES = [] - BINARIES = [] - FILES = [] - HOOKS = ["base", "udev", "autodetect", "keyboard", "keymap", "modconf", "block", "filesystems", "fsck"] + for partition in self.partitions: if partition.filesystem == 'btrfs': @@ -300,14 +302,14 @@ class Installer(): # Configure mkinitcpio to handle some specific use cases. if partition.filesystem == 'btrfs': - if 'btrfs' not in MODULES: - MODULES.append('btrfs') - if '/usr/bin/btrfs-progs' not in BINARIES: - BINARIES.append('/usr/bin/btrfs') + if 'btrfs' not in self.MODULES: + self.MODULES.append('btrfs') + if '/usr/bin/btrfs-progs' not in self.BINARIES: + self.BINARIES.append('/usr/bin/btrfs') if self.detect_encryption(partition): - if 'encrypt' not in HOOKS: - HOOKS.insert(HOOKS.index('filesystems'), 'encrypt') + if 'encrypt' not in self.HOOKS: + self.HOOKS.insert(self.HOOKS.index('filesystems'), 'encrypt') if not(hasUEFI()): # TODO: Allow for grub even on EFI self.base_packages.append('grub') @@ -339,10 +341,10 @@ class Installer(): sys_command(f'/usr/bin/arch-chroot {self.target} chmod 700 /root') with open(f'{self.target}/etc/mkinitcpio.conf', 'w') as mkinit: - mkinit.write(f"MODULES=({' '.join(MODULES)})\n") - mkinit.write(f"BINARIES=({' '.join(BINARIES)})\n") - mkinit.write(f"FILES=({' '.join(FILES)})\n") - mkinit.write(f"HOOKS=({' '.join(HOOKS)})\n") + mkinit.write(f"MODULES=({' '.join(self.MODULES)})\n") + mkinit.write(f"BINARIES=({' '.join(self.BINARIES)})\n") + mkinit.write(f"FILES=({' '.join(self.FILES)})\n") + mkinit.write(f"HOOKS=({' '.join(self.HOOKS)})\n") sys_command(f'/usr/bin/arch-chroot {self.target} mkinitcpio -P') self.helper_flags['base'] = True -- cgit v1.2.3-70-g09d2 From cccb6bd5b31f32189bb13c81aa799b9ea7feff58 Mon Sep 17 00:00:00 2001 From: Anton Hvornum Date: Fri, 30 Apr 2021 17:04:55 +0200 Subject: Moved/Created mkinitcpio func --- archinstall/lib/installer.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'archinstall/lib') diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py index 3dfcd32b..9f04a6f6 100644 --- a/archinstall/lib/installer.py +++ b/archinstall/lib/installer.py @@ -283,6 +283,14 @@ class Installer(): return False + def mkinitcpio(self, *flags): + with open(f'{self.target}/etc/mkinitcpio.conf', 'w') as mkinit: + mkinit.write(f"MODULES=({' '.join(self.MODULES)})\n") + mkinit.write(f"BINARIES=({' '.join(self.BINARIES)})\n") + mkinit.write(f"FILES=({' '.join(self.FILES)})\n") + mkinit.write(f"HOOKS=({' '.join(self.HOOKS)})\n") + sys_command(f'/usr/bin/arch-chroot {self.target} mkinitcpio {" ".join(flags)}') + def minimal_installation(self): ## Add necessary packages if encrypting the drive ## (encrypted partitions default to btrfs for now, so we need btrfs-progs) @@ -340,12 +348,7 @@ class Installer(): # TODO: Use python functions for this sys_command(f'/usr/bin/arch-chroot {self.target} chmod 700 /root') - with open(f'{self.target}/etc/mkinitcpio.conf', 'w') as mkinit: - mkinit.write(f"MODULES=({' '.join(self.MODULES)})\n") - mkinit.write(f"BINARIES=({' '.join(self.BINARIES)})\n") - mkinit.write(f"FILES=({' '.join(self.FILES)})\n") - mkinit.write(f"HOOKS=({' '.join(self.HOOKS)})\n") - sys_command(f'/usr/bin/arch-chroot {self.target} mkinitcpio -P') + self.mkinitcpio('-P') self.helper_flags['base'] = True -- cgit v1.2.3-70-g09d2 From 33a3f803913eab8f503d6b131d7679fa663acbb2 Mon Sep 17 00:00:00 2001 From: Anton Hvornum Date: Fri, 30 Apr 2021 17:11:25 +0200 Subject: Adding support for kernel params --- archinstall/lib/installer.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'archinstall/lib') diff --git a/archinstall/lib/installer.py b/archinstall/lib/installer.py index 9f04a6f6..b9857ccd 100644 --- a/archinstall/lib/installer.py +++ b/archinstall/lib/installer.py @@ -61,6 +61,7 @@ class Installer(): self.BINARIES = [] self.FILES = [] self.HOOKS = ["base", "udev", "autodetect", "keyboard", "keymap", "modconf", "block", "filesystems", "fsck"] + self.KERNEL_PARAMS = [] def log(self, *args, level=logging.DEBUG, **kwargs): """ @@ -425,10 +426,10 @@ class Installer(): # TODO: We need to detect if the encrypted device is a whole disk encryption, # or simply a partition encryption. Right now we assume it's a partition (and we always have) log(f"Identifying root partition by PART-UUID on {real_device}: '{real_device.uuid}'.", level=logging.DEBUG) - entry.write(f'options cryptdevice=PARTUUID={real_device.uuid}:luksdev root=/dev/mapper/luksdev rw intel_pstate=no_hwp\n') + entry.write(f'options cryptdevice=PARTUUID={real_device.uuid}:luksdev root=/dev/mapper/luksdev rw intel_pstate=no_hwp {" ".join(self.KERNEL_PARAMS)}\n') else: log(f"Identifying root partition by PART-UUID on {root_partition}, looking for '{root_partition.uuid}'.", level=logging.DEBUG) - entry.write(f'options root=PARTUUID={root_partition.uuid} rw intel_pstate=no_hwp\n') + entry.write(f'options root=PARTUUID={root_partition.uuid} rw intel_pstate=no_hwp {" ".join(self.KERNEL_PARAMS)}\n') self.helper_flags['bootloader'] = bootloader return True -- cgit v1.2.3-70-g09d2