Вопрос или проблема
Я пытаюсь установить некоторые параметры модуля ядра для модуля ядра nvidia (в частности, NVreg_RegisterForACPIEvents=1
и NVreg_EnableMSI=1
), но независимо от того, какой метод я использую для их установки, они не отображаются как установленные с командой # systool -vm nvidia
. Я пробовал добавлять конфигурационные файлы как в /etc/modprobe.d
, так и в /etc/modules-load.d
, а также добавлял их в командную строку ядра в конфигурации grub, но ни один из этих методов, похоже, не работает. Все эти методы основаны на моем опыте с Arch, поэтому мне было интересно, существует ли какой-то особый способ настройки параметров модуля ядра в Ubuntu? Был бы признателен за любую информацию по этому поводу.
Я столкнулся с той же проблемой, пытаясь изменить параметр NVreg_RestrictProfilingToAdminUsers.
Вышеприведённая ссылка может быть полезной. Чтобы временно изменить параметр, выполните указания в ссылке. Если вы попробуете выгрузить модуль nvidia, вы можете столкнуться со следующей ошибкой.
modprobe: FATAL: Module nvidia is in use
Тогда вам следует отключить службу nvidia-persistenced.service.
systemctl stop nvidia-persistenced.service
После этого вы можете продолжить
modprobe -r nvidia_modest nvidia
Затем вы можете перезагрузить модуль nvidia с параметром
modprobe nvidia [parameter_name]=[value]
Я не знаю, почему параметры не отображаются в systool -vm
, но изменённый параметр вступает в силу.
В противном случае, если вы хотите добавить конфигурацию в /etc/modprobe.d/
, вам следует пересобрать initrd с помощью update-initramfs -u
.
Ответ или решение
Настройка параметров модуля ядра Nvidia в Ubuntu может вызвать некоторые трудности, особенно если вы привыкли работать с Arch Linux, где процесс может немного отличаться. В вашем случае параметр NVreg_RegisterForACPIEvents=1
и NVreg_EnableMSI=1
не удается успешно задать стандартными методами, и они не отображаются с помощью команды systool -vm nvidia
.
Вот подробное руководство по настройке данных параметров в Ubuntu:
-
Добавление конфигурации в /etc/modprobe.d/:
Создайте или отредактируйте файл настроек, например,/etc/modprobe.d/nvidia.conf
и добавьте следующие строки:options nvidia NVreg_RegisterForACPIEvents=1 options nvidia NVreg_EnableMSI=1
После этого необходимо обновить initramfs, чтобы изменения вступили в силу:
sudo update-initramfs -u
-
Работа с ядром и GRUB:
Если вы добавляете параметры непосредственно в строку загрузки ядра, вам необходимо отредактировать/etc/default/grub
и добавить параметры вGRUB_CMDLINE_LINUX_DEFAULT
. После редактирования обновите конфигурацию GRUB:sudo update-grub
-
Перезагрузка и проверка:
Перезагрузите систему для применения изменений. Командаsystool -vm nvidia
может не отображать параметры, тем не менее, это не обязательно означает, что они не применены. Фактическое влияние параметров можно определить по соответствию поведения системы. -
Временные изменения через модуль управления и диагностика:
Чтобы временно отключить модуль и перезагрузить его, вам необходимо остановить сервисnvidia-persistenced
:systemctl stop nvidia-persistenced.service
Затем удалите модуль:
sudo modprobe -r nvidia_drm nvidia_modeset nvidia
И снова загрузите модуль с параметрами:
sudo modprobe nvidia NVreg_RegisterForACPIEvents=1 NVreg_EnableMSI=1
Если вы получаете сообщение об ошибке, что модуль используется, убедитесь, что у вас нет активных процессов, использующих видеокарту, или попробуйте загрузиться в однопользовательский режим для выполнения этой команды.
Эти шаги должны помочь настроить параметры ядра Nvidia под Ubuntu. Продолжайте анализировать воздействие каждого способа и корректируйте конфигурацию в зависимости от результата, достигаемого каждым из методов.