Dkms install linux headers

«dkms: WARNING: Linux headers are missing» after doing kernel upgrade

Reading package lists. Done Building dependency tree Reading state information. Done The following packages will be REMOVED linux-headers-4.2.0-16 linux-headers-4.2.0-16-generic linux-image-4.2.0-16-generic linux-image-extra-4.2.0-16-generic 0 to upgrade, 0 to newly install, 4 to remove and 0 not to upgrade. After this operation, 287 MB disk space will be freed. Do you want to continue? [Y/n] y (Reading database . 266582 files and directories currently installed.) Removing linux-headers-4.2.0-16-generic (4.2.0-16.19) . Removing linux-headers-4.2.0-16 (4.2.0-16.19) . Removing linux-image-extra-4.2.0-16-generic (4.2.0-16.19) . run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.2.0-16-generic /boot/vmlinuz-4.2.0-16-generic run-parts: executing /etc/kernel/postinst.d/dkms 4.2.0-16-generic /boot/vmlinuz-4.2.0-16-generic dkms: WARNING: Linux headers are missing, which may explain the above failures. please install the linux-headers-4.2.0-16-generic package to fix this. run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.2.0-16-generic /boot/vmlinuz-4.2.0-16-generic update-initramfs: Generating /boot/initrd.img-4.2.0-16-generic run-parts: executing /etc/kernel/postinst.d/unattended-upgrades 4.2.0-16-generic /boot/vmlinuz-4.2.0-16-generic run-parts: executing /etc/kernel/postinst.d/update-notifier 4.2.0-16-generic /boot/vmlinuz-4.2.0-16-generic run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.2.0-16-generic /boot/vmlinuz-4.2.0-16-generic Generating grub configuration file . Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported. Found linux image: /boot/vmlinuz-4.2.0-17-generic Found initrd image: /boot/initrd.img-4.2.0-17-generic Found linux image: /boot/vmlinuz-4.2.0-16-generic Found initrd image: /boot/initrd.img-4.2.0-16-generic Found memtest86+ image: /memtest86+.elf Found memtest86+ image: /memtest86+.bin done Removing linux-image-4.2.0-16-generic (4.2.0-16.19) . Examining /etc/kernel/prerm.d. run-parts: executing /etc/kernel/prerm.d/dkms 4.2.0-16-generic /boot/vmlinuz-4.2.0-16-generic Examining /etc/kernel/postrm.d . run-parts: executing /etc/kernel/postrm.d/initramfs-tools 4.2.0-16-generic /boot/vmlinuz-4.2.0-16-generic update-initramfs: Deleting /boot/initrd.img-4.2.0-16-generic run-parts: executing /etc/kernel/postrm.d/zz-update-grub 4.2.0-16-generic /boot/vmlinuz-4.2.0-16-generic Generating grub configuration file . Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported. Found linux image: /boot/vmlinuz-4.2.0-17-generic Found initrd image: /boot/initrd.img-4.2.0-17-generic Found memtest86+ image: /memtest86+.elf Found memtest86+ image: /memtest86+.bin done The link /vmlinuz.old is a damaged link Removing symbolic link vmlinuz.old you may need to re-run your boot loader[grub] The link /initrd.img.old is a damaged link Removing symbolic link initrd.img.old you may need to re-run your boot loader[grub] 

In which this error stood out the most (I think I may have got the error during the installation as well but I can’t really remember):

dkms: WARNING: Linux headers are missing, which may explain the above failures. please install the linux-headers-4.2.0-16-generic package to fix this. 

I have had a look at this question already but it was of no help. So what exactly does this error mean and what should I do about it? OS Information:

LSB Version: core-2.0-amd64:core-2.0-noarch:core-3.0-amd64:core-3.0-noarch:core-3.1-amd64:core-3.1-noarch:core-3.2-amd64:core-3.2-noarch:core-4.0-amd64:core-4.0-noarch:core-4.1-amd64:core-4.1-noarch Distributor ID: Ubuntu Description: Ubuntu 15.10 Release: 15.10 Codename: wily Flavour: GNOME GNOME Version: 3.18 

Источник

Читайте также:  Отключить заставку linux mint

Dynamic Kernel Module Support (Русский)

Состояние перевода: На этой странице представлен перевод статьи Dynamic Kernel Module Support. Дата последней синхронизации: 2022-02-27. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Dynamic Kernel Module Support (DKMS) — это фреймворк, который используется для генерации тех модулей ядра Linux, которые в общем случае не включены в дерево исходного кода. DKMS позволяет драйверам устройств автоматически пересобираться, когда ядро уже установлено.

Это означает, что пользователь может не ждать, пока какая-то компания, проект или сопроводитель пакета выпустит новую версию модуля. После введения хуков pacman пересборка модулей осуществляется автоматически во время обновления ядра.

Установка

Установите пакет dkms и заголовочные файлы требуемого ядра/ядер. Например, для ядра по умолчанию linux соответствует linux-headers . Другие ядра имеют собственные пакеты с заголовочными файлами.

Значительное число модулей, не включенных в ядро, имеют DKMS вариант; некоторые из них размещаются в официальных репозиториях, но большинство из них можно найти только в AUR.

Обновления

Обычно пересборка модулей DKMS во время обновления ядра выполняется бесшовно, но что-то может пойти не так. Следует обратить особое внимание на вывод pacman! Это, в частности, относится к тем системам, которым требуется модуль DKMS для успешной загрузки и/или если вы используете DKMS с ядром не из официальных репозиториев.

Для того, чтобы следовать изменениям в ядре, исправить ошибки или добавить необходимый функционал, подумайте об обновлении соответствующего пакета DKMS перед перезагрузкой.

Использование

Использование DKMS вручную.

Автозавершение по Tab будет доступно после выполнения команды:

# source /usr/share/bash-completion/completions/dkms

Список модулей

Чтобы увидеть текущее состояние модулей, версий и ядер внутри дерева, выполните:

Пересборка модулей

Пересборка всех модулей для текущего ядра:

# dkms autoinstall -k 3.16.4-1-ARCH

Сборка конкретного модуля для текущего ядра:

# dkms install -m nvidia -v 334.21

Сборка модуля для всех ядер:

# dkms install nvidia/334.21 --all

Удаление модулей

Удаление модуля (старые автоматически не удаляются):

# dkms remove -m nvidia -v 331.49 --all
# dkms remove nvidia/331.49 --all

Если пакет dkms удален, то теряется информация о предыдущих файлах сборки модуля. В этом случае, перейдите в директорию /usr/lib/modules/kernel_release и /var/lib/dkms/package_name и удалите все файлы и каталоги, которые больше не используются.

Читайте также:  Node install path linux

Создание DKMS пакета

Initial ramdisk

В случаях для любых модулей, которые были установлены через DKMS и используются в Initrd, например zfs-dkms AUR , может быть полезно написать хук pacman для автоматической пересборки образа(ов) initramfs.

Например, когда используется linux и mkinitcpio, то для обновления модуля ZFS после каждого zfs-dkms AUR апгрейда,

/etc/pacman.d/hooks/90-mkinitcpio-dkms-linux.hook
[Trigger] Operation=Install Operation=Upgrade Operation=Remove Type=Package Target=zfs-dkms Target=linux [Action] Description=Update dkms modules in Linux initcpio Depends=mkinitcpio When=PostTransaction NeedsTargets Exec=/bin/sh -c 'while read -r trg; do case $trg in linux) exit 0; esac; done; /usr/bin/mkinitcpio -p linux'

Вы можете добавить больше таргетов в хук и сделать дополнительные копии хука, если в вашей система установлены другие ядра. Префикс 90- необходим для гарантированного запуска после хуков DPKMS.

Смотрите также

Источник

Dynamic Kernel Module Support

Dynamic Kernel Module Support (DKMS) is a program/framework that enables generating Linux kernel modules whose sources generally reside outside the kernel source tree. The concept is to have DKMS modules automatically rebuilt when a new kernel is installed.

This means that a user does not have to wait for a company, project, or package maintainer to release a new version of the module. Since the introduction of pacman hooks, the rebuild of the modules is handled automatically when a kernel is upgraded.

Installation

Install the dkms package and the headers for the target kernel/kernels. For example, for the default linux kernel this would be linux-headers . Other kernels have their own respective headers packages.

A good number of modules that lie outside the kernel source tree have a DKMS variant; a few are hosted in the official repositories, most are found in the AUR.

Upgrades

Though the rebuild of the DKMS modules is usually seamless during a kernel upgrade, it may still happen that the rebuild fails. You should pay extra attention to the pacman output. This applies in particular if the system relies on the DKMS module to boot successfully and/or if you use DKMS with a custom kernel not in the official repositories.

Читайте также:  Просмотр ip камеры linux

To deal with changes in the kernel, fix bugs, or add necessary features consider upgrading the DKMS package before rebooting.

Usage

Usage for invoking DKMS manually.

Tab-completion is available by doing:

# source /usr/share/bash-completion/completions/dkms

List modules

To list the current status of modules, versions and kernels within the tree:

Rebuild modules

Rebuild all modules for the currently running kernel:

# dkms autoinstall -k 3.16.4-1-ARCH

To build a specific module for the currently running kernel:

# dkms install -m nvidia -v 334.21

To build a module for all kernels:

# dkms install nvidia/334.21 --all

Remove modules

To remove a module (old ones are not automatically removed):

# dkms remove -m nvidia -v 331.49 --all
# dkms remove nvidia/331.49 --all

If the package dkms is removed the information regarding previous module build files is lost. If this is the case, go through /usr/lib/modules/kernel_release and /var/lib/dkms/package_name and delete all files and directories no longer in use.

DKMS package creation

Initial ramdisk

In case you have got any kernel modules installed via DKMS that are used in initial ramdisk, e.g. zfs-dkms AUR , you may want to write a pacman hook to automate the process of regenerating initramfs image(s).

For example, when using linux and mkinitcpio, to update ZFS module after each zfs-dkms AUR upgrade,

/etc/pacman.d/hooks/90-mkinitcpio-dkms-linux.hook
[Trigger] Operation=Install Operation=Upgrade Operation=Remove Type=Package Target=zfs-dkms Target=linux [Action] Description=Update dkms modules in Linux initcpio Depends=mkinitcpio When=PostTransaction NeedsTargets Exec=/bin/sh -c 'while read -r trg; do case $trg in linux) exit 0; esac; done; /usr/bin/mkinitcpio -p linux'

You may add more targets to the hook and make additional copies of the hook if you have installed other kernels. Note the 90- prefix is necessary to make sure it runs after the DKMS hooks.

See also

Источник

Оцените статью
Adblock
detector