настройкам Nvidia (&prime-select) не удается переключить GPU после удаления GRUB

Недавно я произвел чистку личинки в своей Системе EFI (перед выяснением: Мне просто не нравится он). Теперь настройки Nvidia и главный выбор бросают ошибку, когда я пытаюсь изменить GPU (который перестал работать из-за этой 'глупой' ошибки):

Info: selecting the intel profile
Traceback (most recent call last):
  File "/usr/bin/prime-select", line 298, in <module>
    switcher.enable_profile(arg)
  File "/usr/bin/prime-select", line 120, in enable_profile
    self._disable_nvidia()
  File "/usr/bin/prime-select", line 138, in _disable_nvidia
    self._update_grub()
  File "/usr/bin/prime-select", line 264, in _update_grub
    subprocess.call(['update-grub'])
  File "/usr/lib/python3.6/subprocess.py", line 267, in call
    with Popen(*popenargs, **kwargs) as p:
  File "/usr/lib/python3.6/subprocess.py", line 709, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.6/subprocess.py", line 1344, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'update-grub': 'update-grub'

Действительно ли это верно они (Nvidia) hardcoded существование личинки в их сценарии? Строки 127-159 из/usr/bin/prime-select:

 def _disable_nvidia(self):
        boot_params = {}
        # Get the VGA connectors to disable on card1
        # in the form of boot parameters
        vga_params = self._get_boot_params_from_phantom_vga_connectors()
        for elem in vga_params:
            elems = elem.split('=')
            boot_params[elems[0]] = elems[1]
        boot_params['nouveau.runpm'] = '0'
        self._add_boot_params(self._grub_cmdline_start, self._grub_path, boot_params)

        self._update_grub()

        self._blacklist_nvidia()
        self._update_initramfs()

        self._enable_prime_service()

    def _enable_nvidia(self):
        self._remove_boot_params(self._grub_cmdline_start,
                                 self._grub_path, ['nouveau.runpm', 'video=VGA'])
        self._update_grub()

        try:
            os.unlink(self._blacklist_file)
        except:
            pass

        self._update_initramfs()

        self._disable_prime_service()

    def _blacklist_nvidia(self):
...

Я не понимаю точно, что сценарий делает подробно и хочет спросить, прежде чем я обвиню Nvidia непосредственно.

С другой стороны, я был бы благодарен, если кто-то мог бы сказать мой который строки прокомментировать (в/usr/bin/prime-select), чтобы просто пропустить материал личинки.Спасибо!

0
задан 5 October 2018 в 06:45

2 ответа

Ну, вы используете дистрибутив Linux, который по умолчанию использует grub, и многие сценарии предполагают, что инструменты grub доступны для внесения изменений, которые просты в использовании для обычных пользователей.

Теперь, если вы измените что-то вроде загрузчика, который является неотъемлемой частью дистрибутива, виноват только вы.

Простой способ решить вашу проблему - закомментировать subprocess.call(['update-grub']) и заменить его на pass, чтобы функция _update_grub ничего не делала.

def _update_grub(self):
    #subprocess.call(['update-grub'])
    pass

Но вы также можете обменяться этой функцией, чтобы обновить загрузчик, который вы используете, чтобы получить возможный вновь созданный начальный виртуальный диск.

0
ответ дан 27 October 2019 в 08:57

Решение состоит в том, чтобы просто добавить пустой файл:/etc/default/grub

Теперь это работает

0
ответ дан 27 October 2019 в 08:57

Другие вопросы по тегам:

Похожие вопросы: