readded some commits that got removed

This commit is contained in:
advaithm 2021-04-22 17:00:51 +05:30
parent 15d56c2bc7
commit eb1ff72f5b
No known key found for this signature in database
GPG Key ID: E557E45E6DAFFC0C
3 changed files with 60 additions and 70 deletions

View File

@ -7,7 +7,11 @@ from .output import log, LOG_LEVELS
from .storage import storage from .storage import storage
from .networking import list_interfaces from .networking import list_interfaces
from .general import sys_command from .general import sys_command
<<<<<<< HEAD
from .hardware import AVAILABLE_GFX_DRIVERS, hasUEFI from .hardware import AVAILABLE_GFX_DRIVERS, hasUEFI
=======
from .hardware import AVAILABLE_GFX_DRIVERS
>>>>>>> 1292c07... Fixed PR #273. Moved the graphic drivers into hardware since they are hardware specific, in the long run maybe we move them into 'drivers' or something. And moved the user interaction from gfx_drivers into user_interactions. And removed the import from installer.py to __init__.py since we don't want to import 'global functions' in extension imports.
## TODO: Some inconsistencies between the selection processes. ## TODO: Some inconsistencies between the selection processes.
## Some return the keys from the options, some the values? ## Some return the keys from the options, some the values?
@ -465,7 +469,19 @@ def select_driver(options=AVAILABLE_GFX_DRIVERS):
(The template xorg is for beginner users, not advanced, and should (The template xorg is for beginner users, not advanced, and should
there for appeal to the general public first and edge cases later) there for appeal to the general public first and edge cases later)
""" """
<<<<<<< HEAD
if len(options) >= 1: if len(options) >= 1:
=======
drivers = sorted(list(options))
if len(drivers) >= 1:
for index, driver in enumerate(drivers):
print(f"{index}: {driver}")
print(' -- The above list are supported graphic card drivers. --')
print(' -- You need to select (and read about) which one you need. --')
>>>>>>> 1292c07... Fixed PR #273. Moved the graphic drivers into hardware since they are hardware specific, in the long run maybe we move them into 'drivers' or something. And moved the user interaction from gfx_drivers into user_interactions. And removed the import from installer.py to __init__.py since we don't want to import 'global functions' in extension imports.
lspci = sys_command(f'/usr/bin/lspci') lspci = sys_command(f'/usr/bin/lspci')
for line in lspci.trace_log.split(b'\r\n'): for line in lspci.trace_log.split(b'\r\n'):
if b' vga ' in line.lower(): if b' vga ' in line.lower():
@ -474,6 +490,7 @@ def select_driver(options=AVAILABLE_GFX_DRIVERS):
elif b'amd' in line.lower(): elif b'amd' in line.lower():
print(' ** AMD card detected, suggested driver: AMD / ATI **') print(' ** AMD card detected, suggested driver: AMD / ATI **')
<<<<<<< HEAD
selected_driver = generic_select(options, input_text="Select your graphics card driver: ", sort=True) selected_driver = generic_select(options, input_text="Select your graphics card driver: ", sort=True)
initial_option = selected_driver initial_option = selected_driver
@ -484,6 +501,39 @@ def select_driver(options=AVAILABLE_GFX_DRIVERS):
if selected_driver_package_group in options[initial_option].keys(): if selected_driver_package_group in options[initial_option].keys():
print(options[initial_option][selected_driver_package_group]) print(options[initial_option][selected_driver_package_group])
selected_driver = options[initial_option][selected_driver_package_group] selected_driver = options[initial_option][selected_driver_package_group]
=======
selected_driver = input('Select your graphics card driver: ')
initial_option = selected_driver
# Disabled search for now, only a few profiles exist anyway
#
#print(' -- You can enter ? or help to search for more drivers --')
#if selected_driver.lower() in ('?', 'help'):
# filter_string = input('Search for layout containing (example: "sv-"): ')
# new_options = search_keyboard_layout(filter_string)
# return select_language(new_options)
if selected_driver.isdigit() and (pos := int(selected_driver)) <= len(drivers)-1:
selected_driver = options[drivers[pos]]
elif selected_driver in options:
selected_driver = options[options.index(selected_driver)]
elif len(selected_driver) == 0:
raise RequirementError("At least one graphics driver is needed to support a graphical environment. Please restart the installer and try again.")
else:
raise RequirementError("Selected driver does not exist.")
if type(selected_driver) == dict:
driver_options = sorted(list(selected_driver))
for index, driver_package_group in enumerate(driver_options):
print(f"{index}: {driver_package_group}")
selected_driver_package_group = input(f'Which driver-type do you want for {initial_option}: ')
if selected_driver_package_group.isdigit() and (pos := int(selected_driver_package_group)) <= len(driver_options)-1:
selected_driver_package_group = selected_driver[driver_options[pos]]
elif selected_driver_package_group in selected_driver:
selected_driver_package_group = selected_driver[selected_driver.index(selected_driver_package_group)]
elif len(selected_driver_package_group) == 0:
raise RequirementError(f"At least one driver package is required for a graphical environment using {selected_driver}. Please restart the installer and try again.")
>>>>>>> 1292c07... Fixed PR #273. Moved the graphic drivers into hardware since they are hardware specific, in the long run maybe we move them into 'drivers' or something. And moved the user interaction from gfx_drivers into user_interactions. And removed the import from installer.py to __init__.py since we don't want to import 'global functions' in extension imports.
else: else:
raise RequirementError(f"Selected driver-type does not exist for {initial_option}.") raise RequirementError(f"Selected driver-type does not exist for {initial_option}.")
@ -491,4 +541,8 @@ def select_driver(options=AVAILABLE_GFX_DRIVERS):
return selected_driver return selected_driver
<<<<<<< HEAD
raise RequirementError("Selecting drivers require a least one profile to be given as an option.") raise RequirementError("Selecting drivers require a least one profile to be given as an option.")
=======
raise RequirementError("Selecting drivers require a least one profile to be given as an option.")
>>>>>>> 1292c07... Fixed PR #273. Moved the graphic drivers into hardware since they are hardware specific, in the long run maybe we move them into 'drivers' or something. And moved the user interaction from gfx_drivers into user_interactions. And removed the import from installer.py to __init__.py since we don't want to import 'global functions' in extension imports.

View File

@ -11,6 +11,12 @@ def _prep_function(*args, **kwargs):
other code in this stage. So it's a safe way to ask the user other code in this stage. So it's a safe way to ask the user
for more input before any other installer steps start. for more input before any other installer steps start.
""" """
<<<<<<< HEAD
=======
__builtins__['_gfx_driver_packages'] = archinstall.select_driver()
>>>>>>> 1292c07... Fixed PR #273. Moved the graphic drivers into hardware since they are hardware specific, in the long run maybe we move them into 'drivers' or something. And moved the user interaction from gfx_drivers into user_interactions. And removed the import from installer.py to __init__.py since we don't want to import 'global functions' in extension imports.
return True return True
# Ensures that this code only gets executed if executed # Ensures that this code only gets executed if executed

View File

@ -5,76 +5,6 @@ from archinstall import generic_select, sys_command, RequirementError
is_top_level_profile = True is_top_level_profile = True
AVAILABLE_DRIVERS = {
# Sub-dicts are layer-2 options to be selected
# and lists are a list of packages to be installed
'AMD / ATI' : {
'amd' : ['xf86-video-amdgpu'],
'ati' : ['xf86-video-ati']
},
'intel' : ['xf86-video-intel'],
'nvidia' : {
'open source' : ['xf86-video-nouveau'],
'proprietary' : ['nvidia']
},
'mesa' : ['mesa'],
'fbdev' : ['xf86-video-fbdev'],
'vesa' : ['xf86-video-vesa'],
'vmware' : ['xf86-video-vmware']
}
def select_driver(options):
"""
Some what convoluted function, which's job is simple.
Select a graphics driver from a pre-defined set of popular options.
(The template xorg is for beginner users, not advanced, and should
there for appeal to the general public first and edge cases later)
"""
drivers = sorted(list(options))
if len(drivers) >= 1:
for index, driver in enumerate(drivers):
print(f"{index}: {driver}")
print(' -- The above list are supported graphic card drivers. --')
print(' -- You need to select (and read about) which one you need. --')
lspci = sys_command(f'/usr/bin/lspci')
for line in lspci.trace_log.split(b'\r\n'):
if b' vga ' in line.lower():
if b'nvidia' in line.lower():
print(' ** nvidia card detected, suggested driver: nvidia **')
elif b'amd' in line.lower():
print(' ** AMD card detected, suggested driver: AMD / ATI **')
selected_driver = generic_select(drivers, 'Select your graphics card driver: ',
allow_empty_input=False, options_output=False)
initial_option = selected_driver
# Disabled search for now, only a few profiles exist anyway
#
#print(' -- You can enter ? or help to search for more drivers --')
#if selected_driver.lower() in ('?', 'help'):
# filter_string = input('Search for layout containing (example: "sv-"): ')
# new_options = search_keyboard_layout(filter_string)
# return select_language(new_options)
selected_driver = options[selected_driver]
if type(selected_driver) == dict:
driver_options = sorted(list(selected_driver))
driver_package_group = generic_select(driver_options, f'Which driver-type do you want for {initial_option}: ',
allow_empty_input=False)
driver_package_group = selected_driver[driver_package_group]
return driver_package_group
return selected_driver
raise RequirementError("Selecting drivers require a least one profile to be given as an option.")
def _prep_function(*args, **kwargs): def _prep_function(*args, **kwargs):
""" """
Magic function called by the importing installer Magic function called by the importing installer