Файлы каталога /etc/modprobe.d/*#

modprobe.d - это каталог конфигурационных файлов для modprobe (утилита для добавления и удаления модулей из ядра системы.

modprobe может добавлять/удалять более одного модуля из-за наличия у них зависимостей, поэтому необходим способ определения того, какие параметры должны использоваться с этими модулями. Все файлы в директории /etc/modprobe.d, которые имеют расширение .conf, содержат соответствующие параметры. Они также могут использоваться для создания псевдонимов - альтернативных имен для модуля, или могут полностью переопределять обычное поведение modprobe в случае особых требований (например, при вставке более одного модуля).

Формат записей файлов в /etc/modprobe.d: одна команда на строку, при этом пустые строки и строки комментариев (начинающиеся с #) игнорируются. Символ \ в конце строки приводит к продолжению на следующей строке, что делает файл удобочитаемым.

Команды:

  • alias wildcard modulename - позволяет присваивать модулю альтернативные имена. Например, alias my-mod really_long_modulename означает, что можно использовать modprobe my-mod вместо modprobe really_long_modulename. Также можно применять подстановочные знаки в стиле оболочки.

  • blacklist modulename - модули могут содержать свои собственные псевдонимы; обычно это псевдонимы, описывающие поддерживаемые устройства, например, pci:123.... Они могут быть заменены обычными ключевыми словами «alias», однако бывают случаи, когда два или более модуля поддерживают одни и те же устройства, или один модуль ошибочно утверждает, что поддерживает устройство, которого на самом деле нет: ключевое слово blacklist указывает, что все внутренние псевдонимы данного модуля должны игнорироваться.

  • install modulename command... - указание modprobe выполнить заданную команду вместо того, чтобы вставлять модуль в ядро. Команда может быть любой командой оболочки. Если используется строка $CMDLINE_OPTS, она будет заменена любыми параметрами, указанными в командной строке modprobe.

  • options modulename option... - данная команда позволяет добавлять параметры к указанному модулю (который может быть псевдонимом) каждый раз, когда он вставляется в ядро: либо напрямую (используя modprobe modulename), либо потому, что вставляемый модуль зависит от этого модуля. Все параметры добавляются вместе - они могут быть получены из опции для самого модуля, для псевдонима и из командной строки.

  • remove modulename command... - аналог вышеприведенной install за исключением того, что вызывается при запуске modprobe -r.

  • softdep modulename pre: modules... post: modules... - позволяет указать программные зависимости, или, опционально, зависимости модулей. Указанные модули можно использовать без их установки, но с ограничением некоторых функций. Модули pre-deps и post-deps - это списки имен и/или псевдонимов других модулей, которые modprobe попытается установить/удалить в порядке до и после основного модуля, указанного в аргументе modulename. Если есть команды установки/удаления с одинаковым аргументом modulename, приоритет имеет softdep.

Примеры записей#

Примеры файлов, содержащихся в /etc/modprobe.d/* и записей в них:

  • atm-blacklist.conf - указанный модуль ядра может быть автоматически загружен пользователями без административных полномочий. Для повышения безопасности системы модуль по умолчанию занесен в черный список, чтобы системные администраторы могли использовать его по мере необходимости. Пример записи:

    blacklist atm
    
  • firewalld-sysctls.conf - конфигурация модуля ядра с настройками системы управления брандмауэром. Пример записи:

    install nf_conntrack /sbin/modprobe --ignore-install nf_conntrack $CMDLINE_OPTS && /sbin/sysctl --quiet --pattern 'net[.]netfilter[.]nf_conntrack.*' --system
    
  • kvm.conf - включение вложенной виртуализации. Пример записей для Intel и AMD соответственно:

    options kvm_intel nested=1
    
    options kvm_amd nested=1
    
  • l2tp_eth-blacklist.conf - аналогично atm-blacklist.conf. Пример записи:

    blacklist l2tp_eth
    
  • l2tp_ip-blacklist.conf - аналогично atm-blacklist.conf. Пример записи:

    blacklist l2tp_ip
    
  • l2tp_ip6-blacklist.conf - аналогично atm-blacklist.conf. Пример записи:

    blacklist l2tp_ip
    
  • l2tp_netlink-blacklist.conf - аналогично atm-blacklist.conf. Пример записи:

    blacklist l2tp_netlink
    
  • l2tp_ppp-blacklist.conf - аналогично atm-blacklist.conf. Пример записи:

    blacklist l2tp_ppp
    
  • lockd.conf - конфигурация демона сетевой блокировки. Примеры записей:

    • указание льготного периода для менеджера блокировок NFS в секундах:

      options lockd nlm_grace_period=90
      
    • указание TCP-порта, который должен использовать менеджер блокировок NFS; порт должен быть допустимым значением TCP-порта (1-65535):

      options lockd nlm_tcpport
      
    • указание UDP-порта, который должен использоваться менеджером блокировок NFS; порт должен быть допустимым значением UDP-порта (1-65535):

      options lockd nlm_udpport
      
    • указание максимального количества незавершенных подключений в параметрах lockd:

      options lockd nlm_max_connections=1024
      
    • указание значения времени по умолчанию для менеджера блокировок NFS в секундах; значение по умолчанию - 10 секунд (минимум 3, максимум 20):

      options lockd nlm_timeout=10
      
    • указание, следует ли записывать имя вызывающего абонента/IP-адрес узла в локальную базу данных rpc.statd:

      options lockd nsm_use_hostnames=0
      
  • mlx4.conf - предназначен для того, чтобы пользователи могли выбрать различные параметры модуля, необходимые для драйвера mlx4. При обновлении пакета rdma все изменения, внесенные в файл, сохраняются. Все изменения, внесенные в файл libmlx4.conf в данной директории, перезаписываются при обновлении пакета. Примеры опций:

    • включение отладочного вывода, контроля управляемых устройством потоками, и отключение SRIOV:

      options mlx4_core debug_level=1 log_num_mgm_entry_size=-1 probe_vf=0 num_vfs=0
      
    • включение отладочного вывода и создание устройства SRIOV, без подключения дочерних устройств к хосту, только родительское устройство:

      options mlx4_core debug_level=1 probe_vf=0 num_vfs=7
      
    • включение отладочного вывода, SRIOV, и подключение одного из дочерних устройств SRIOV в дополнение к родительскому устройству к хосту:

      options mlx4_core debug_level=1 probe_vf=1 num_vfs=7
      
    • включение управления потоками по приоритету для отправки и получения, с заданием приоритетов 1 и 2 в качестве приоритетов no drop:

      options mlx4_en pfctx=3 pfcrx=3
      
  • sctp_diag-blacklist.conf - аналогично atm-blacklist.conf. Пример записи:

    blacklist sctp_diag
    
  • sctp-blacklist.conf - аналогично atm-blacklist.conf. Пример записи:

    blacklist sctp
    
  • vhost.conf - увеличение лимита vhost memory map по умолчанию для соответствия лимиту слота памяти Kvm:

    options vhost max_mem_regions=509