having ability to use multiple kernels

This commit is contained in:
Aggam Rahamim 2021-04-25 14:55:39 +03:00
parent 8b9f16a028
commit 5c9859d316
3 changed files with 16 additions and 11 deletions

View File

@ -34,8 +34,8 @@ class Installer():
:type hostname: str, optional
"""
def __init__(self, target, *, base_packages=' base base-devel linux-firmware efibootmgr', kernel='linux'):
base_packages = kernel + base_packages
def __init__(self, target, *, base_packages='base base-devel linux-firmware efibootmgr ', kernels='linux'):
base_packages = base_packages + kernels.replace(',', ' ')
self.target = target
self.init_time = time.strftime('%Y-%m-%d_%H-%M-%S')
self.milliseconds = int(str(time.time()).split('.')[1])

View File

@ -218,6 +218,8 @@ def generic_select(options, input_text="Select one of the above by index or abso
1: first
2: second
3: third option
it will return the selected text.
"""
if type(options) == dict: options = list(options)
@ -263,7 +265,7 @@ def select_disk(dict_o_disks):
elif drive.isdigit():
drive = int(drive)
if drive >= len(drives):
raise DiskError(f'Selected option "{drive}" is out of range')
raise Dis1ror(f'Selected option "{drive}" is out of range')
drive = dict_o_disks[drives[drive]]
elif drive in dict_o_disks:
drive = dict_o_disks[drive]

View File

@ -2,6 +2,7 @@ import getpass, time, json, os
import archinstall
from archinstall.lib.hardware import hasUEFI
from archinstall.lib.profiles import Profile
from archinstall.lib.user_interaction import generic_select
if hasUEFI() is False:
log("ArchInstall currently only supports machines booted with UEFI. MBR & GRUB support is coming in version 2.2.0!", fg="red", level=archinstall.LOG_LEVELS.Error)
@ -168,7 +169,6 @@ def ask_user_questions():
# Ask about audio server selection if one is not already set
if not archinstall.arguments.get('audio', None):
# only ask for audio server selection on a desktop profile
if str(archinstall.arguments['profile']) == 'Profile(desktop)':
archinstall.arguments['audio'] = archinstall.ask_for_audio_selection()
@ -178,12 +178,15 @@ def ask_user_questions():
archinstall.arguments['audio'] = None
# Ask what kernel user wants:
kernel = input("1. linux\n2. linux-lts\n3. linux-zen\nchoose a kernel of the following: ")
try:
archinstall.arguments['kernel'] = ['linux', 'linux-lts', 'linux-zen'][int(kernel) - 1]
except:
archinstall.log('invalid kernel selected. defaulting to \'linux\'.')
archinstall.arguments['kernel'] = 'linux'
while True:
kernel = generic_select(["linux", "linux-lts", "linux-zen", "continue"], "choose a kernel:")
if (archinstall.arguments['kernels'] == None or archinstall.arguments['kernels'] == ""):
archinstall.arguments['kernels'] = kernel
else:
if (kernel == "continue"):
break
archinstall.arguments['kernels'] += "," + kernel
# Additional packages (with some light weight error handling for invalid package names)
@ -281,7 +284,7 @@ def perform_installation(mountpoint):
Only requirement is that the block devices are
formatted and setup prior to entering this function.
"""
with archinstall.Installer(mountpoint, kernel=archinstall.arguments['kernel']) as installation:
with archinstall.Installer(mountpoint, kernels=archinstall.arguments['kernels']) as installation:
## if len(mirrors):
# Certain services might be running that affects the system during installation.
# Currently, only one such service is "reflector.service" which updates /etc/pacman.d/mirrorlist