Вы здесь

Вопрос по модулям

Гуру подскажите пожалуйста как собирать опции в ядре модулями ядра или внешними модулями? как посмотреть какие модули загружены в ядро монолитно? lsmod показывает только внешнии модули? Если я собираю внешний модуль я могу передавать ему параметры из тех которые перечислены в modinfo module а если модуль монолитно встроен в ядро то как быть? например модуль snd_hda_intel или iwl3945 можно встроить монолитно в ядро а можно внешним модулем собрать и управлять этими модулями, как ими управлять если они встроены в ядро монолитно(например громкостью звука)?

И еще вопрос собрав модуль чтобы им управлять нужен софт программа я правильно понимаю? как искать этот софт? например я пробоавл собрать модули как монолитно так и внешними модулями AC Adapter Battery Button Fan Processor когда собраны внешними модулями счетчик использования показывает 0 и не важно включен ноутбук к сети или отключен. также какой софт нужен для управления вентиляторами и напряжением процессора когда в ядре включены эти опции? или их смело можно отключать так как они у меня не работают?

В уже собранном ядре так: zcat /proc/config.gz | grep [МОДУЛЬ] - если будет =y, значит включено монолитно, если =m, значит включено подгружаемым модулем, если строка закомментирована - значит не включено. Аналогично можно видеть в menuconfig.
Передавать параметры монолитно вкомпиленному модулю можно при загрузке системы (прописывать в /etc/default/grub переменная GRUB_CMDLINE_LINUX), либо во время работы - путём echo [что-то] > /proc/sys/kernel/[куда-то там].

shaulyn написал:
Гуру подскажите пожалуйста как собирать опции в ядре модулями ядра или внешними модулями? как посмотреть какие модули загружены в ядро монолитно? lsmod показывает только внешнии модули? Если я собираю внешний модуль я могу передавать ему параметры из тех которые перечислены в modinfo module а если модуль монолитно встроен в ядро то как быть? например модуль snd_hda_intel или iwl3945 можно встроить монолитно в ядро а можно внешним модулем собрать и управлять этими модулями, как ими управлять если они встроены в ядро монолитно(например громкостью звука)?

И еще вопрос собрав модуль чтобы им управлять нужен софт программа я правильно понимаю? как искать этот софт? например я пробоавл собрать модули как монолитно так и внешними модулями AC Adapter Battery Button Fan Processor когда собраны внешними модулями счетчик использования показывает 0 и не важно включен ноутбук к сети или отключен. также какой софт нужен для управления вентиляторами и напряжением процессора когда в ядре включены эти опции? или их смело можно отключать так как они у меня не работают?

Собирать можно и так и эдак. Зависит от конкретных потребностей. Загружаемые модули удобны в тех случаях, когда не знаешь какой именно модуль нужен для твоего железа. К примеру для snd_hda_intel требуются дополнительные модули кодеков. Компилируя ядро для новой системы просто устанавливаешь все кодеки как загружаемые модули и ядро подгрузит тот, который нужен для твоей карточки.

Опять же, конфигурацию для загружаемых модулей можно прописывать в /etc/modprobe.d/ В случае встроенных модулей её придётся передавать через командную строку загрузки ядра.

Модуль всего лишь предоставляет доступ к устройству. Если этим доступом никто не пользуется, то значит модуль тоже не будет использоваться.

Настройка громкости это один из видов доступа к модулю. В простейшем случае эта настройка проводится программой alsamixer. Кроме того существует масса других программ умеющих настраивать громкость. И всем этим программам без разницы загружаемый это модуль, или же встроенный.

Чем больше юзерфрендли, тем сложнее юзать.

Еще преимуществом модульности является уменьшение оперативной памяти, занимаемой ядром (не очень актуально сейчас), а также возможность перегрузить/выгрузить модуль не перегружая всю систему в случае сбоя и/или изменения параметров или просто за ненадобностью и/или изменения функциональности.

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

Еще один плюс монолитности (в случае полного запрета загрузки модулей) - большая безопасность, т.к. никто не сможет ничего подгрузить (или выгрузить) в ядро! ;)

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)