Поиск по сайту:
Лучше верное и некрасивое, чем красивое, но неверное (Д. Мирандола).

Команда Modprobe в Linux

16.06.2020
Команда Modprobe в Linux

Ядро Linux является основным компонентом операционной системы Linux. Он управляет ресурсами системы и является мостом между аппаратным и программным обеспечением вашего компьютера.

Ядро Linux имеет модульную конструкцию. Модуль ядра, или его часто называют драйвером, – это фрагмент кода, расширяющий функциональные возможности ядра. Модули либо скомпилированы как загружаемые модули, либо встроены в ядро. Загружаемые модули могут быть загружены и выгружены в работающем ядре по запросу, без необходимости перезагрузки системы.

Обычно модули загружаются по требованию udev (диспетчер устройств). Тем не менее, иногда вам может понадобиться точно настроить загрузку модулей. Например, вам может потребоваться загрузить модуль с дополнительными параметрами или предотвратить автоматическую загрузку модуля.

Вы можете вручную загрузить модуль в ядро, используя команду modprobe, или автоматически во время загрузки, используя файлы /etc/modules или /etc/modules-load.d/*.conf.

В этой статье мы объясним, как использовать modprobe для добавления и удаления модулей из ядра Linux. modprobe является частью двоичного файла kmod, который реализует несколько программ, используемых для управления модулями ядра Linux.

 

Добавление модулей ядра

Модули ядра хранятся в каталоге /lib/modules/<kernel_version>. Вы найдете версию работающего ядра, используйте команду uname -r.

Только пользователи с правами администратора могут управлять модулями ядра.

Чтобы загрузить модуль, вызовите команду modprobe, сопровождаемую именем модуля:

modprobe module_name

 

Команда modprobe загрузит данный модуль и любые дополнительные зависимости модуля. В командной строке можно указать только один модуль.

Читать  7 Забавных команд в Linux

Используйте команду lsmod, чтобы подтвердить, что модуль загружен:

lsmod | grep module_name

 

Чтобы загрузить модуль с дополнительными параметрами, используйте синтаксис parameter=value:

modprobe module_name parameter=value

 

Команда принимает несколько параметров parameter=value, разделенных пробелом.

Как правило, вам нужно будет загрузить модуль во время загрузки системы. Вы можете сделать это, указав модуль и его параметры в файле внутри каталога /etc/modules-load.d. Файлы должны заканчиваться .conf и могут иметь любое имя:

/etc/modules-load.d/module_name.conf
option module_name parameter=value

 

Параметры, указанные в этих файлах, читаются пользователем udev, который загружает модули при запуске системы, используя modprobe.

 

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

Чтобы удалить модуль, вызовите команду modprobe с параметром -r, за которым следует имя модуля:

modprobe -r module_name

 

modprobe также удалит неиспользуемые зависимости модуля.

При вызове команда -r принимает несколько модулей в качестве аргументов:

modprobe -r module_name1 module_name2

 

Если вы хотите запретить загрузку модуля ядра во время загрузки, создайте файл .conf с любым именем внутри /etc/modprobe.d. Синтаксис:

/etc/modprobe.d/blacklist.conf
blacklist module_name

Если вы хотите добавить в черный список дополнительные модули, укажите модули в новой строке или создайте новый файл .conf.

 

Вывод

Команда modprobe позволяет добавлять и удалять модули ядра Linux.

Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

2 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Denis

А в какое место можно положить скрипт? Задумка такая, имеется флешка с линуксом универсальная так сказать, вот хотелось бы скриптик, чтоб в зависимости от карты грузил нужный драйвер. Типа если AMD, то amdgpu, если Nvidia, то проприетарный от нвидии, nouveau вообще через одно место работает….

Николай

попробовал добавить модуль nvidia

# cat /etc/modprobe.d/nvidia.conf
#!/bin/bash
options nvidia \
        NVreg_DeviceFileGID=1226 \
        NVreg_DeviceFileMode=0660 \
        NVreg_DeviceFileUID=0 \
        NVreg_ModifyDeviceFiles=1

рассчитывал что изменится хотя бы chmod для /dev/nvidia*
но он как тыл 666 так и остался.

проверял

modprobe -c | grep nvidia
blacklist nvidiafb
options nvidia         NVreg_DeviceFileGID=1226         NVreg_DeviceFileMode=0660         NVreg_DeviceFileUID=0         NVreg_ModifyDeviceFiles=1
softdep nvidia post: nvidia-uvm
alias char_major_195_* nvidia
alias mbp_nvidia_bl apple_bl
alias pci:v000010DEd*sv*sd*bc03sc*i* nvidiafb
alias pci:v000010DEd*sv*sd*bc03sc00i00* nvidia_drm
alias pci:v000010DEd*sv*sd*bc03sc00i00* nvidia
alias pci:v000010DEd*sv*sd*bc03sc02i00* nvidia_drm
alias pci:v000010DEd*sv*sd*bc03sc02i00* nvidia
alias symbol:nvKmsKapiGetFunctionsTable nvidia_modeset

смотрел в /vat/log/message

Dec 05 15:23:46 myhost kernel: nvidia: loading out-of-tree module taints kernel.
Dec 05 15:23:46 myhost kernel: nvidia: module license 'NVIDIA' taints kernel.
Dec 05 15:23:46 myhost kernel: nvidia: module license 'NVIDIA' taints kernel.
Dec 05 15:23:46 myhost kernel: nvidia: module verification failed: signature and/or required key missing - tainting kernel
Dec 05 15:23:46 myhost kernel: nvidia-nvlink: Nvlink Core is being initialized, major device number 238
Dec 05 15:23:47 myhost kernel: nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms  460.27.04  Fri Dec 11 23:24:19 UTC 2020
Dec 05 15:23:47 myhost kernel: [drm] [nvidia-drm] [GPU ID 0x00003300] Loading driver
Dec 05 15:23:47 myhost kernel: [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:33:00.0 on minor 0
Dec 05 15:23:47 myhost kernel: [drm] [nvidia-drm] [GPU ID 0x0000b200] Loading driver
Dec 05 15:23:47 myhost kernel: [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:b2:00.0 on minor 1

Это может быть вам интересно


Рекомендуемое
Есть много блогов и видео на SEO. Но если вы сделаете…

Спасибо!

Теперь редакторы в курсе.