Как передать модули ядра в initramfs

Вопрос или проблема

всем.

Мне нужно добавить модули ядра для 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

  1. Редактирование файла модулей:
    Откройте файл /etc/initramfs-tools/modules с правами суперпользователя:

    sudo nano /etc/initramfs-tools/modules

    В конце файла добавьте следующие строки, чтобы указать необходимые модули:

    nvidia
    nvidia_modeset
    nvidia_uvm
    nvidia_drm

    Сохраните изменения и закройте редактор (Ctrl + X, затем Y, затем Enter).

  2. Создание конфигурации:
    Чтобы модифицировать поведение initramfs, вы можете создать файл конфигурации в /etc/initramfs-tools/conf.d/. Например, создадим файл myconf:

    sudo nano /etc/initramfs-tools/conf.d/myconf

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

    MODULES=list

    Сохраните и закройте редактор.

  3. Создание хуков (по желанию):
    Если вам необходимо добавить дополнительные функции, вы можете создать кастомный хук. Например:

    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
  4. Обновление initramfs:
    После внесения всех изменений, обновите initramfs с помощью следующей команды:

    sudo update-initramfs -u

    Эта команда обновит текущий initramfs и подгрузит все указанные модули.

  5. Проверка содержимого initramfs:
    Для проверки успешной загрузки модулей, вы можете использовать команду lsinitramfs. Это позволит вам просмотреть содержимое новый initramfs:

    lsinitramfs /boot/initrd.img-$(uname -r)

    Убедитесь, что добавленные вами модули присутствуют в этом списке.

Заключение

Добавление пользовательских модулей в initramfs на Ubuntu — это простой, но важный процесс для корректной работы оборудования, такого как видеокарты Nvidia. Следуя этому руководству, вы сможете внести необходимые изменения, улучшив производительность и функциональность вашей системы. Если у вас возникли какие-либо проблемы, убедитесь, что драйверы Nvidia установлены корректно, и проверьте логи системы для поиска возможных ошибок.

При необходимости обратитесь к man-странице initramfs-tools для получения более детальной информации о параметрах и конфигурациях, доступных для вашей системы.

Оцените материал
Добавить комментарий

Капча загружается...