При этом текущий модуль не будет разрешен, пока не будет разрешен модуль, соответствующий конфигурационному параметру CONFIG_FISH_TANK
Директива select
depends
, за исключением того, что она принудительно включает указанный конфигурационный параметр, если включается текущая конфигурационная опция. Ее не нужно использовать так же часто, как директиву depends
, потому что она включает другие конфигурационные опции. Использовать ее так же просто.select BAIT
В этом случае конфигурационный параметр CONFIG_BAIT
CONFIG_FISHING_POLE
.Как для директивы select
depends
можно указывать несколько параметров с помощью оператора &&
. В директиве depends
с помощью восклицательного знака перед параметром можно указать требование, что некоторый конфигурационный параметр CONFIG_DUMB_DRIVERS
и не был установлен параметр CONFIG_NO_FISHING_ALLOWED
.depends on DUMB_DRIVERS && !NO_FISHING_ALLOWED
После директив tristate
bool
можно указать директиву if
, что позволяет сделать соответствующий параметр зависимым от другого конфигурационного параметра. Если условие не выполняется, то конфигурационный параметр не только запрещается, но и не будет отображаться утилитами конфигурации. Например, следующая строка указывает, что функция "Deep Sea Mode
" будет доступна, только если разрешен конфигурационный параметр CONFIG_OCEAN
.bool "Deep Sea Mode" if OCEAN
Директива if
default
, что означает, что значение по умолчанию будет установлено, только если выполняется условие, указанное в директиве if
.Система конфигурации экспортирует несколько метапараметров, чтобы упростить процесс конфигурации. Параметр CONFIG_EMBEDDED
CONFIG_BROKEN_ON_SMP
используется, чтобы указать, что драйвер не рассчитан на системы с симметричной многопроцессорностью. Обычно этот параметр не устанавливается, при этом от пользователя требуется, чтобы он сам убедился в возможности компиляции драйвера для SMP. Новые драйверы этот флаг использовать не должны.Параметр CONFIG_EXPERIMENTAL
Параметры модулей
Ядро Linux предоставляет возможность драйверам определять параметры, которые пользователь будет указывать при загрузке ядра или модуля. Эти параметры будут доступны коду модуля в качестве глобальных переменных. Указанные параметры модулей также будут отображаться в файловой системе sysfs (см. главу 17, "Объекты kobject и файловая система sysfs"). Определять параметры модуля и управлять ими просто.
Параметр модуля определяется с помощью макроса module_param()
module_param(name, type, perm);