Вопрос или проблема
всем.
Мне нужно добавить модули ядра для Nvidia, такие как
nvidia nvidia_modeset nvidia_uvm nvidia_drm
и затем заново сгенерировать initramfs. Я знаю, как это сделать с помощью mkinitcpio
, но не смог найти соответствующий метод в Ubuntu. Какой файл мне нужно отредактировать и как заново сгенерировать после?
Вы можете заново сгенерировать initramfs с помощью
sudo update-initramfs -u
Вы можете добавить модули в файл /etc/modules
.
Но похоже, что вы делаете что-то не так, так как это делается автоматически при установке драйверов.
Чтобы внести изменения в initramfs, вы можете:
- добавить модули в
/etc/initramfs-tools/modules
- добавить хуки в
/etc/initramfs-tools/hooks/_YOUR_HOOK_
(должен быть исполняемым) - добавить конф. изменения в
/etc/initramfs-tools/conf.d/_YOUR_CONFIG_
Затем вызовите update-initramfs -c
(для пересоздания). При желании вы можете использовать lsinitramfs
, чтобы проверить наличие необходимых бинарных файлов и модулей.
Примеры:
echo "overlay" >> /etc/initramfs-tools/modules
echo "MODULES=list" >> /etc/initramfs-tools/conf.d/myconf
cat /etc/initramfs-tools/hooks/myhook
#!/bin/sh
. /usr/share/initramfs-tools/hook-functions
copy_exec /bin/bash /bin/bash
Для получения дополнительной информации смотрите справку initramfs-tools.
Ответ или решение
Чтобы добавить модули ядра Nvidia в initramfs на Ubuntu и правильно его обновить, следуйте следующей инструкции. Данный процесс включает в себя редактирование нескольких конфигурационных файлов и выполнение команды обновления initramfs.
Шаги по добавлению модулей и обновлению initramfs
-
Редактирование файла модулей:
Откройте файл/etc/initramfs-tools/modules
с правами суперпользователя:sudo nano /etc/initramfs-tools/modules
В конце файла добавьте следующие строки, чтобы указать необходимые модули:
nvidia nvidia_modeset nvidia_uvm nvidia_drm
Сохраните изменения и закройте редактор (
Ctrl + X
, затемY
, затемEnter
). -
Создание конфигурации:
Чтобы модифицировать поведение initramfs, вы можете создать файл конфигурации в/etc/initramfs-tools/conf.d/
. Например, создадим файлmyconf
:sudo nano /etc/initramfs-tools/conf.d/myconf
Введите следующую конфигурацию, чтобы указать режим загрузки модулей. Например:
MODULES=list
Сохраните и закройте редактор.
-
Создание хуков (по желанию):
Если вам необходимо добавить дополнительные функции, вы можете создать кастомный хук. Например:sudo nano /etc/initramfs-tools/hooks/myhook
Добавьте следующий скрипт:
#!/bin/sh . /usr/share/initramfs-tools/hook-functions copy_exec /bin/bash /bin/bash
Не забудьте сделать этот скрипт исполняемым:
sudo chmod +x /etc/initramfs-tools/hooks/myhook
-
Обновление initramfs:
После внесения всех изменений, обновите initramfs с помощью следующей команды:sudo update-initramfs -u
Эта команда обновит текущий initramfs и подгрузит все указанные модули.
-
Проверка содержимого initramfs:
Для проверки успешной загрузки модулей, вы можете использовать командуlsinitramfs
. Это позволит вам просмотреть содержимое новый initramfs:lsinitramfs /boot/initrd.img-$(uname -r)
Убедитесь, что добавленные вами модули присутствуют в этом списке.
Заключение
Добавление пользовательских модулей в initramfs на Ubuntu — это простой, но важный процесс для корректной работы оборудования, такого как видеокарты Nvidia. Следуя этому руководству, вы сможете внести необходимые изменения, улучшив производительность и функциональность вашей системы. Если у вас возникли какие-либо проблемы, убедитесь, что драйверы Nvidia установлены корректно, и проверьте логи системы для поиска возможных ошибок.
При необходимости обратитесь к man-странице initramfs-tools для получения более детальной информации о параметрах и конфигурациях, доступных для вашей системы.