Почему в ядре присутствует модуль хотя его быть не должно?

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Аватара пользователя
жучара
Сообщения: 657
ОС: астралинукс

Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение жучара »

Друзья!

Shell

user@astra:~$ cat /etc/modprobe.d/blacklist.conf | tail -n 1
blacklist floppy
user@astra:~$
user@astra:~$ lsmod | grep floppy
floppy 77824 0
user@astra:~$
Астралинукс, Орёл 2.12.29. Спасибо, кто откликнется.
Я просто читаю маны.
Спасибо сказали:

Аватара пользователя
Aliech
Сообщения: 494
ОС: Gentoo arm64 musl hardened

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение Aliech »

жучара, вы не понимаете, что модуль мог быть загружен ДО того момента, как стал доступен файл blacklist.conf? А я прямо таки вижу, что после добавления оной записи в данный файл, не были обновлены initrd для установленных ядер.
С уважением, Zerg
Спасибо сказали:

Аватара пользователя
RusWolf
Сообщения: 415
ОС: ArchLinux 86x64

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение RusWolf »

жучара писал(а):
27.05.2020 23:37
Друзья!

Shell

user@astra:~$ cat /etc/modprobe.d/blacklist.conf | tail -n 1
blacklist floppy
user@astra:~$
user@astra:~$ lsmod | grep floppy
floppy 77824 0
user@astra:~$
Астралинукс, Орёл 2.12.29. Спасибо, кто откликнется.
Задам вопрос с другой стороны.
Почему Вы решили, что добавив модуль ядра в blacklist, он не должен присутстовать ?!?
Всем давно известно, если ядру нужен модуль, он его всё равно запустит, даже если он в blacklist.
А вот если бы Вы, собрали ядро без поддержки флопиков и исключили сборку этого модуля, тогда были бы понятны Ваши удивления.
Спасибо сказали:

Аватара пользователя
жучара
Сообщения: 657
ОС: астралинукс

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение жучара »

RusWolf писал:
28.05.2020 07:42
Всем давно известно
Гм. Подумал- может, я разделом ошибся? Глянул- да нет вроде, вопрос новичка...
blacklist.conf бесполезен?
Я просто читаю маны.
Спасибо сказали:

Аватара пользователя
RusWolf
Сообщения: 415
ОС: ArchLinux 86x64

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение RusWolf »

жучара писал(а):
28.05.2020 08:34
blacklist.conf бесполезен?
Смотря в каком случаи.
Если в blacklist модуль, который в единственном экземпляре и очень нужен ядру для какого нибудь устройства, он его всё равно загрузит.
Если к примеру для карт nvidia в системе несколько модулей, nvidia.ko и nouveau.ko, то blacklist поможет, при добавление одного из модулей в чёрный список.
Спасибо сказали:

Аватара пользователя
жучара
Сообщения: 657
ОС: астралинукс

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение жучара »

RusWolf писал:
28.05.2020 08:55
жучара писал(а):
28.05.2020 08:34
blacklist.conf бесполезен?
Смотря в каком случаи.
Если в blacklist модуль, который в единственном экземпляре и очень нужен ядру для какого нибудь устройства, он его всё равно загрузит.
разве в моём случае модуль floppy очень нужен ядру?
От него ничего не зависит. Один на льдине.

Shell

user@astra:~$ cat /lib/modules/4.15.3-2-generic/modules.dep | grep floppy
kernel/drivers/block/floppy.ko:
user@astra:~$
Занесён в чёрный список. Что ещё нужно?

Shell

user@astra:~$ cat /etc/modprobe.d/blacklist.conf | tail -n 1
blacklist floppy
user@astra:~$
user@astra:~$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-4.15.3-2-hardened
user@astra:~$
Опять же rmmod floppy срабатывает эффективно и безболезненно. Но при загрузке floppy обязательно загружается. Не понимаю.
Я просто читаю маны.
Спасибо сказали:

Аватара пользователя
жучара
Сообщения: 657
ОС: астралинукс

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение жучара »

То есть как ВООБЩЕ cделать так, чтобы модуль ядра не загружался, я знаю. Способ так себе, но всё же.

1) Для этого я пересобираю /boot/initrd.img-4.15.3-2-generic БЕЗ floppy. Хрен знает, что это такое, но при загрузке не маячит больше
print_req_error: I/O error, dev fd0, sector 0

2) добавляем blacklist floppy в /etc/modprobe.d/blacklist.conf

Теперь floppy отсутствует /boot/initrd.img-4.15.3-2-generic (побочный, но необходимый эффект) и не загружается при загрузке ядра

+++++++++++++++++++++++++++++++++++++++++++++++++++++

То есть чтобы модуль не загружался при загрузке ядра, мало добавить blacklist floppy в /etc/modprobe.d/blacklist.conf, надо ещё убрать модуль из /boot/initrd.img-4.15.3-2-generic. Гениально.

+++++++++++++++++++++++++++++++++++++++++++++++++++++

Осталось только решить, как сделать так. чтобы модуль не загружался при загрузке ядра НЕ ТРОГАЯ /boot/initrd.img-4.15.3-2-generic (я где-то читал, что там загружается ВСЁ, если не пересобрать, как я). И, по-моему правка /etc/modprobe.d/blacklist.conf тут как мёртвому припарка. Добавлять в автозагрузку rmmod floppy? Несерьёзно.
Я просто читаю маны.
Спасибо сказали:

Аватара пользователя
Aliech
Сообщения: 494
ОС: Gentoo arm64 musl hardened

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение Aliech »

жучара писал(а):
28.05.2020 11:45
То есть чтобы модуль не загружался при загрузке ядра, мало добавить blacklist floppy в /etc/modprobe.d/blacklist.conf, надо ещё убрать модуль из /boot/initrd.img-4.15.3-2-generic. Гениально.
Не, нормально. Для людей с логикой понятно, что initrd собирается в соотвестствии с теми конфигами (и вберёт в себя конфиги), которые ЕСТЬ в системе. Так blacklist будет скопирован при пересборке initrd штатным образом, то есть вызовом update-intiramfs с соответствующими ключами. Уповать на божью волю духа машины, чтобы он вместо вас синхронизировал везде конфиги и набор модулей - глупость неописуемая.
RusWolf писал:
28.05.2020 08:55
Если в blacklist модуль, который в единственном экземпляре и очень нужен ядру для какого нибудь устройства, он его всё равно загрузит.
Бред. Ничего ядро никуда само не загрузит. Грузит udev, ну или скрипты initrd/initd, если указан список модулей, обязательных к загрузке. Нет модуля в initrd? Не загрузит его из initrd никто. Прописан в blacklist? Не загрузит его udev. Если сам его прописал в /etc/modules - то ССЗБ.

Всё просто. Не надо мистику разводить.

PS. Долго думал, чего drBatty токсичный такой был. Но после "ядро само загрузит" появляется мысль, что только так и надо.
С уважением, Zerg
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3648
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение Hephaestus »

жучара писал(а):
28.05.2020 11:45
Осталось только решить, как сделать так. чтобы модуль не загружался при загрузке ядра НЕ ТРОГАЯ /boot/initrd.img-4.15.3-2-generic
Вполне вероятно, что никак. Посмотрите, к примеру, на Slackware.
Там ванильное ядро, если не ошибаюсь.
И по умолчанию ставится вариант ядра huge, когда часть модулей встроена в ядро (Built-in).
Эти модули нельзя ни выгрузить, ни увидеть в выводе lsmod. При этом другие модули в ядро не встроены (LKM).

Вариант generic (который у Вас), в отличие от huge, позволяет сделать модули загружаемыми, что уменьшает размер ядра, позволяет более гибко что-то настраивать и т.д.

Так вот, модуль floppy как раз из списка тех, которые Built-in.
А он ведь мог таким и не быть, поскольку даже в варианте huge не все модули встроенные.
Но он таки встроенный.
Как следствие, меня, например, не сильно удивляет, что в и варианте generic этот модуль подтягивается при загрузке. Ну не зря же его включали в список Built-in. Зачем-то он там нужен.
На самом деле floppy - это один из стандартных модулей, так же как ata, cdrom или какой-нибудь cpufrec.
Поэтому в ответ на Ваш вопрос можно сказать только одно: пересобирать ядро. То есть собрать его так, чтобы оно не дергало floppy в варианте generic. Кстати, не исключено, что сборщики Вашего дистра просто упустили этот момент, собирая generic.

А теперь вопрос к Вам:
Чем Вам этот модуль-то помешал?
Ну, подумаешь, загрузился. Стандартное устройство.
Выгружать его ещё. Более интересных задач нету что ли?
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
жучара
Сообщения: 657
ОС: астралинукс

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение жучара »

Aliech писал:
28.05.2020 12:40
жучара писал(а):
28.05.2020 11:45
То есть чтобы модуль не загружался при загрузке ядра, мало добавить blacklist floppy в /etc/modprobe.d/blacklist.conf, надо ещё убрать модуль из /boot/initrd.img-4.15.3-2-generic. Гениально.
Не, нормально. Для людей с логикой понятно, что initrd собирается в соотвестствии с теми конфигами (и вберёт в себя конфиги), которые ЕСТЬ в системе. Так blacklist будет скопирован при пересборке initrd штатным образом, то есть вызовом update-intiramfs с соответствующими ключами. Уповать на божью волю духа машины, чтобы он вместо вас синхронизировал везде конфиги и набор модулей - глупость неописуемая.
вводя новые термины и не объясняя их, вы только запутываете меня. Тут есть кадры понаплетут кружев специально, ничё не объясняя, вы не из них, надеюсь... initrd это что и он тут зачем?
Я просто читаю маны.
Спасибо сказали:

Аватара пользователя
жучара
Сообщения: 657
ОС: астралинукс

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение жучара »

Hephaestus писал:
28.05.2020 13:14
А теперь вопрос к Вам:
Чем Вам этот модуль-то помешал?
Ну, подумаешь, загрузился. Стандартное устройство.
Выгружать его ещё. Более интересных задач нету что ли?
у меня отсоединён дискетоввод, соответственно долго загружается ось, пиша:
print_req_error: I/O error, dev fd0, sector 0
print_req_error: I/O error, dev fd0, sector 0
print_req_error: I/O error, dev fd0, sector 0
print_req_error: I/O error, dev fd0, sector 0
print_req_error: I/O error, dev fd0, sector 0
print_req_error: I/O error, dev fd0, sector 0
print_req_error: I/O error, dev fd0, sector 0
То есть модуль floppy нужно убирать /boot/initrd.img-4.15.3-2-generic

При работе долго работает fdisk -l, то есть теперь нужно убирать его, чтобы он не загружался при загрузке ядра работы.
Hephaestus писал:
28.05.2020 13:14
жучара писал(а):
28.05.2020 11:45
Осталось только решить, как сделать так. чтобы модуль не загружался при загрузке ядра НЕ ТРОГАЯ /boot/initrd.img-4.15.3-2-generic
Вполне вероятно, что никак.
Решается вообще на раз. Удаляется файл /lib/modules/4.15.3-1-generic/kernel/drivers/block/floppy.ko и всё. Но хотелось бы поизящней, например правя файл конфигурации, а фиг там.
Я просто читаю маны.
Спасибо сказали:

Аватара пользователя
Aliech
Сообщения: 494
ОС: Gentoo arm64 musl hardened

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение Aliech »

жучара, что, простите? Я термины ввожу?
жучара писал(а):
28.05.2020 14:42
initrd это что
жучара писал(а):
28.05.2020 11:45
/boot/initrd.img-4.15.3-2-generic
Поделитесь секретом, как посмотрев на файл с именем *initd* в своей системе, потом спрашивать, о том, какой же файл я подразумеваю под initrd?

Или вы имели ввиду, что не понимаете, зачем он системе? Ну так вас на wikipedia забанили?
Добавлено (15:55):
жучара писал(а):
28.05.2020 14:50
Но хотелось бы поизящней, например правя файл конфигурации, а фиг там.
У всех получается через файл конфигурации, а у вас нет. Может у вас проблемы?
С уважением, Zerg
Спасибо сказали:

Аватара пользователя
жучара
Сообщения: 657
ОС: астралинукс

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение жучара »

Aliech писал:
28.05.2020 15:55
жучара, что, простите? Я термины ввожу?
жучара писал(а):
28.05.2020 14:42
initrd это что
жучара писал(а):
28.05.2020 11:45
/boot/initrd.img-4.15.3-2-generic
Поделитесь секретом, как посмотрев на файл с именем *initd* в своей системе, потом спрашивать, о том, какой же файл я подразумеваю под initrd?
initrd ЭТО НЕ /boot/initrd.img-4.15.3-2-generic. Я понимаю, вам западло полностью писать, положение не позволяет. Но будь по-вашему.

+++++++++++++++++++++++++++++++++++++++++++++++++
Aliech писал:
28.05.2020 12:40
жучара писал(а):
28.05.2020 11:45
То есть чтобы модуль не загружался при загрузке ядра, мало добавить blacklist floppy в /etc/modprobe.d/blacklist.conf, надо ещё убрать модуль из /boot/initrd.img-4.15.3-2-generic. Гениально.
Не, нормально. Для людей с логикой понятно, что initrd собирается в соотвестствии с теми конфигами (и вберёт в себя конфиги), которые ЕСТЬ в системе. Так blacklist будет скопирован при пересборке initrd штатным образом, то есть вызовом update-intiramfs с соответствующими ключами. Уповать на божью волю духа машины, чтобы он вместо вас синхронизировал везде конфиги и набор модулей - глупость неописуемая.
Я где-то сетовал, удивлялся тому, что /boot/initrd.img-4.15.3-2-generic собирается согласно конфигурационным файлам? Нигде и ни разу. Я могу в принципе, повторить свою мысль, но других слов у меня всё равно нет, кроме тех, что я использовал. В опровержение чего и ли в подтверждение чего вы это написали- ... Ну логика, чё.
Я просто читаю маны.
Спасибо сказали:

Аватара пользователя
жучара
Сообщения: 657
ОС: астралинукс

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение жучара »

Aliech писал:
28.05.2020 15:55
У всех получается через файл конфигурации, а у вас нет. Может у вас проблемы?
может, и у меня. Если бы у меня не было проблем, я бы и не писал сюда ничё. Вопрос открыт.
Я просто читаю маны.
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3648
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение Hephaestus »

жучара писал(а):
28.05.2020 14:50
Решается вообще на раз. Удаляется файл /lib/modules/4.15.3-1-generic/kernel/drivers/block/floppy.ko и всё.
Не, я понимаю, что патч Бармина в конечном итоге решает вообще все проблемы.
Но всё же это не наш метод.
Вы-то, наверняка, интересовались штатным способом, а не таким топорным.

А штатных решений всего два:
1. Пересобрать ядро, выкинув ненужный модуль к чертям.
2. Выяснить, почему оно всё-таки подгружается, несмотря на все блеклисты.
Не исключено, что blacklist отрабатывает, как положено,
но потом, позже, какой-нибудь скрипт или udev подгружает этот модуль.
Можно интересу ради прошерстить скрипты и правила udev на предмет modprobe и floppy,
глядишь, что-нибудь интересное и найдется.
жучара писал(а):
28.05.2020 14:50
у меня отсоединён дискетоввод, соответственно долго загружается ось
жучара писал(а):
28.05.2020 14:50
При работе долго работает fdisk -l
Так с этого надо было начинать.
Всё-таки обращение к отсутствующему устройству и неверно работающий blacklist - это сильно разные вещи.

В Вашем случае, это проблемы настроек загрузки, обрубать в этой ситуации модуль ядра,
а тем более таким способом (удалением файла)
- это не что иное, как гильотина от головной боли.
Модуль ядра тут совершенно ни при чём.

У меня этот модуль вообще встроен в ядро,
выгрузить я его могу только вместе с ядром, если что.
И при этом ни одной из описанных Вами проблем не возникает.

[режим Нострадамуса]
Если, как Вы сказали, у Вас отсоединен дисковод,
рискну предположить, что отсоединили его уже после установки системы.
Если так, то в системе наверняка остались ссылки, остались правила udev, создающие устройство fd0,
возможно, остались невыставленными должным образом настройки в BIOS.

Начните с этих моментов.
1. Посмотрите, присутствует ли устройство /dev/fd0 (возможно, есть дохлый симлинк).
Если у fdisk возникают затыки, значит, какое-то устройство он пытается обработать.
Загляните в /etc/fstab, нет ли там упоминания fd0.
2. Посмотрите, пытается ли udev создавать fd0 при загрузке. Закомментируйте правило.
3. Отключите контроллер floppy в BIOS.
[/режим Нострадамуса]
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
жучара
Сообщения: 657
ОС: астралинукс

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение жучара »

Hephaestus писал:
28.05.2020 17:30
2. Выяснить, почему оно всё-таки подгружается, несмотря на все блеклисты.
Не исключено, что blacklist отрабатывает, как положено,
но потом, позже, какой-нибудь скрипт или udev подгружает этот модуль.
Можно интересу ради прошерстить скрипты и правила udev на предмет modprobe и floppy,
глядишь, что-нибудь интересное и найдется.
ясно. В общем, нужно в этом направлении. Может, кто что скажет.
Hephaestus писал:
28.05.2020 17:30
Если, как Вы сказали, у Вас отсоединен дисковод,
рискну предположить, что отсоединили его уже после установки системы.
если бы он у меня был отсоединён после установки системы, я бы сказал-
я установил систему, отсоединил дискетоввод, а теперь как последний лох удивляюсь, почему fdisk -l так долго его ищет.
Но я не могу позволить моим врагам так надо мной угорать, это вы должны понимать. Дискетоввод был удалён миллиард лет назад и после него устанавливалось триллион систем сто сикссилиардов раз. Я всякий раз решал этот вопрос связкой:

1) пересобирал /boot/initrd.img-4.15.3-2-generic
2) правил /etc/modprobe.d/blacklist.conf

А теперь вот задумался, почему одно без другого работать не может? Второе без первого, если быть точным.
Я просто читаю маны.
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3648
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение Hephaestus »

жучара писал(а):
28.05.2020 17:48
Дискетоввод был удалён миллиард лет назад и после него устанавливалось триллион систем сто сикссилиардов раз.
Понятно. В таком случае тем более смотрим в BIOS, потом udev, потом /etc/fstab.
Не будет система искать и дергать устройство, которого никогда не было.
Раз дергает, значит, где-то что-то есть.

Если учесть, что системы на этой машине были всякие разные, скорее всего,
то отключения контроллера в BIOS может оказаться достаточно. Хотя остальное проверить тоже не помешает.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
RusWolf
Сообщения: 415
ОС: ArchLinux 86x64

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение RusWolf »

жучара писал(а):
28.05.2020 14:50
Решается вообще на раз. Удаляется файл /lib/modules/4.15.3-1-generic/kernel/drivers/block/floppy.ko и всё
Зачем удалять когда можно просто переименовать в floppy.ko.old к примеру.
Добавлено (19:46):
Aliech писал:
28.05.2020 12:40
Бред. Ничего ядро никуда само не загрузит.
Бред - это когда в палате с температурой.
Может где-то выразился не правильно, своими словами, но:
Наконец, функция автозагрузки ядра (которая автоматически загружает модуль из ядра при необходимости) находится в файле ./linux/kernel/kmod.c. Эта функция включается при помощи параметра настройки CONFIG_KMOD.
Правда и статья старенькая, может сейчас всё и не так.
Спасибо сказали:

Аватара пользователя
Aliech
Сообщения: 494
ОС: Gentoo arm64 musl hardened

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение Aliech »

RusWolf писал:
28.05.2020 19:29
Правда и статья старенькая, может сейчас всё и не так.
Вскройте initrd, посмотрите скрипты и наличие там бинарника udev'а.
С уважением, Zerg
Спасибо сказали:

Аватара пользователя
жучара
Сообщения: 657
ОС: астралинукс

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение жучара »

Hephaestus писал:
28.05.2020 18:10
Понятно. В таком случае тем более смотрим в BIOS.
Я отключил в BIOS флоппи и всё. Теперь загрузка не тормозит, fdisk -l тоже не тормозит, /dev/fd0 отсутствует.

Shell

user@astra:~$ lsmod | grep floppy
user@astra:~$
А на файл /etc/modprobe.d/blacklist.conf вообще по фигу, есть там blacklist floppy или нет.

+++++++++++++++++++++++++++++++++++++++++++++++

Ну так это же мы не разобрались. Всё ж таки хотелось бы чтобы /etc/modprobe.d/blacklist.conf влиял на загрузку. Может, пример с модулем floppy был неудачен, ну так с чем столкнулся, про то и спросил. Если уж на то пошло у меня в ядре сейчас 53 модуля.

Shell

user@astra:~$ lsmod | wc -l
53
user@astra:~$
и каждый там не просто так, а по какой-то причине. И если их нельзя отключить /etc/modprobe.d/blacklist.conf, на фиг этот файл вообще нужен?
Я просто читаю маны.
Спасибо сказали:

Аватара пользователя
Aliech
Сообщения: 494
ОС: Gentoo arm64 musl hardened

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение Aliech »

жучара, после добавления в blacklist выполняли update-initramfs?
С уважением, Zerg
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3648
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение Hephaestus »

жучара писал(а):
28.05.2020 23:26
Ну так это же мы не разобрались.
Так разбирайтесь. Кто запрещает?
Примерные направления поиска Вам известны.
А точные ответы если кто и знает, так это дистростроители Астры.
Может, они вообще blacklist отключили.
жучара писал(а):
28.05.2020 23:26
Всё ж таки хотелось бы чтобы /etc/modprobe.d/blacklist.conf влиял на загрузку.
Да кто сказал, что не влияет?
Я ж Вам говорил, что blacklist может отрабатывать, как положено, а модуль подгружается уже потом.
Но вряд ли это касается всех модулей сразу. И в любом случае, это надо проверять.
Вы проверяли? Добавили несколько модулей в blacklist и со всеми одна и та же ситуация?
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
жучара
Сообщения: 657
ОС: астралинукс

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение жучара »

Hephaestus писал:
29.05.2020 07:05
Вы проверяли? Добавили несколько модулей в blacklist и со всеми одна и та же ситуация?
нет, я не знаю, какие модули добавлять (исключать из загрузки). Щас чё-нибудь не то добавлю и останусь без оси.

Shell

user@astra:~$ lsmod
Module Size Used by
pci_stub 16384 1
vboxpci 24576 0
vboxnetadp 28672 0
vboxnetflt 28672 0
vboxdrv 471040 3 vboxpci,vboxnetadp,vboxnetflt
edac_mce_amd 28672 0
kvm_amd 86016 0
kvm 610304 1 kvm_amd
irqbypass 16384 1 kvm
snd_hda_codec_realtek 106496 1
input_leds 16384 0
snd_hda_codec_hdmi 49152 1
snd_hda_codec_generic 73728 1 snd_hda_codec_realtek
serio_raw 16384 0
wmi_bmof 16384 0
k8temp 16384 0
snd_hda_intel 45056 4
snd_hda_codec 126976 4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
snd_hda_core 81920 5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
snd_hwdep 20480 1 snd_hda_codec
snd_pcm 98304 4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
snd_timer 32768 1 snd_pcm
snd 81920 16 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm
soundcore 16384 1 snd
shpchp 36864 0
mac_hid 16384 0
parport_pc 32768 0
ppdev 20480 0
lp 20480 0
parport 49152 3 parport_pc,lp,ppdev
ip_tables 28672 0
x_tables 40960 1 ip_tables
autofs4 40960 2
hid_generic 16384 0
usbhid 49152 0
hid 118784 2 usbhid,hid_generic
radeon 1466368 4
pata_acpi 16384 0
i2c_algo_bit 16384 1 radeon
wmi 24576 1 wmi_bmof
ttm 106496 1 radeon
i2c_piix4 24576 0
pata_atiixp 16384 0
drm_kms_helper 172032 1 radeon
syscopyarea 16384 1 drm_kms_helper
sysfillrect 16384 1 drm_kms_helper
sysimgblt 16384 1 drm_kms_helper
fb_sys_fops 16384 1 drm_kms_helper
drm 401408 6 drm_kms_helper,radeon,ttm
r8169 86016 0
mii 16384 1 r8169
nochmodx 20480 0
user@astra:~$
Я просто читаю маны.
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3648
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение Hephaestus »

жучара писал(а):
29.05.2020 09:11
нет, я не знаю, какие модули добавлять
Исключение из загрузки разных модулей не проверяли.
Возможность загрузки floppy уже после обработки blacklist не проверяли.
Отличия Астры от Debian в части загрузки модулей, наверняка, тоже не проверяли.

А на основании чего тогда Вы уверены, что blacklist не работает?
Один-единственный модуль - это вообще не показатель. Тем более, стандартное устройство.
жучара писал(а):
29.05.2020 09:11
Щас чё-нибудь не то добавлю и останусь без оси.
Правильно. Поэтому можно попробовать исключить то, что для системы некритично, например, звук.
Или модуль, отвечающий за сенсоры.
Вот, кстати, этот модуль, скорее всего, автоматически не грузится, наоборот, его надо добавлять в загрузку.
Это косвенно свидетельствует о том, что не грузится по умолчанию всё подряд, а грузятся только самые важные модули. Модуль floppy в этом смысле загружается потому, что дисковод является одним из возможных устройств начальной загрузки.

Если хотите, можете провести эксперимент.
Запустить sensors-detect и посмотреть, какой там модуль нужен.
Проверить, загружается он автоматом или нет.
Можно даже загнать его в /boot/initrd.img-4.15.3-2-generic.
А потом добавить в blacklist и посмотреть, как оно себя поведет.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
жучара
Сообщения: 657
ОС: астралинукс

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение жучара »

Hephaestus писал:
29.05.2020 10:20
Исключение из загрузки разных модулей не проверяли.
поверял. Вот этот модуль vboxnetadp. И да, я использовал update-initramfs -u. В результате, во-первых, он снова оказался включенным, а во вторых, всё похерилось к чертям собачьим, все пользовательские настройки. Не помогла даже переустановка оси.
Но мы по-прежнему будем стоять на том, что /etc/modprobe.d/blacklist.conf влияет на загрузку модулей.
Hephaestus писал:
29.05.2020 10:20
Возможность загрузки floppy уже после обработки blacklist не проверяли.
в самом первом сообщении написал, что сперва поправил /etc/modprobe.d/blacklist.conf, а потом перезагружался... хз как ещё надо.
Hephaestus писал:
29.05.2020 10:20
Отличия Астры от Debian в части загрузки модулей, наверняка, тоже не проверяли.
нет.
Hephaestus писал:
29.05.2020 10:20
Если хотите, можете провести эксперимент.
Запустить sensors-detect и посмотреть, какой там модуль нужен.
Проверить, загружается он автоматом или нет.
Можно даже загнать его в /boot/initrd.img-4.15.3-2-generic.
А потом добавить в blacklist и посмотреть, как оно себя поведет.
у меня не запускается sensors-detect.
Все подгружаемые модули подгружаются зачем-то, не просто так. Вот один убрал- система поломалась. А как в таком случае (когда изменения в /etc/modprobe.d/blacklist.conf что мёртвому припарка) убедиться /etc/modprobe.d/blacklist.conf работоспособен (или в обратном)? Вопрос открыт.
Я просто читаю маны.
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3648
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение Hephaestus »

жучара писал(а):
29.05.2020 16:12
Но мы по-прежнему будем стоять на том, что /etc/modprobe.d/blacklist.conf влияет на загрузку модулей.
Нет. Мы будем стоять на том, что без проверки утверждать о неработоспособности нельзя.
Но после проверки - это уже другой разговор.
Я на своей системе проверил с модулем звука. Сработало. И это, в общем, ожидаемое поведение.
Получается, что в Вашей системе есть уже два модуля, которые загружены, несмотря на blacklist.
Не исключено, что в Вашем дистре изменено штатное поведение blacklist.
Если стоит задача выяснить, почему так, я бы в такой ситуации начал копать в эту сторону.
Впрочем, не исключено также, что это баг.

Или загрузкой модулей рулит какой-нибудь systemd. Я вот не знаю, есть в Астре этот зверь или нет.
В этом случае нужно смотреть, что именно там перестроили.
жучара писал(а):
29.05.2020 16:12
в самом первом сообщении написал, что сперва поправил /etc/modprobe.d/blacklist.conf, а потом перезагружался... хз как ещё надо.
Я имел в виду другое: ядро загрузилось, blacklist отработал, а потом какой-нибудь скрипт или демон,
вызвал загрузку модуля. Вот это нужно проверять. Нет ли чего в скриптах/правилах. Но если в системе присутствует systemd, это может быть и не актуально.
жучара писал(а):
29.05.2020 16:12
А как в таком случае (когда изменения в /etc/modprobe.d/blacklist.conf что мёртвому припарка) убедиться /etc/modprobe.d/blacklist.conf работоспособен (или в обратном)?
В таких условиях убедиться действительно сложно.
Но если такое поведение blacklist - это не бага, то оно должно быть где-то описано.
В документации, в ChangeLog, в wiki дистра и т.д.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
жучара
Сообщения: 657
ОС: астралинукс

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение жучара »

Я уж ещё такую вот инструкцию нашёл и следую ей:
https://hackware.ru/?p=12514#5

Нет, всё равно загружается.

Shell

user@astra:~$ lsmod | grep floppy
floppy 77824 0
user@astra:~$
user@astra:~$
user@astra:~$ cat /etc/modprobe.d/blacklist.conf | tail -n 2
blacklist floppy
install floppy /bin/true
user@astra:~$
Я просто читаю маны.
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3648
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение Hephaestus »

жучара писал(а):
31.05.2020 00:01
Я уж ещё такую вот инструкцию нашёл и следую ей:
Зря. Это всё поиски вслепую, наугад. Методом тыка, можно сказать.
У Вас специфичный дистр и "чужие" инструкции работать совершенно не обязаны.

С другой стороны, на сайте Астры есть бюллетени по безопасности для редакции Смоленск и там blacklist использовался вовсю.
То есть, по крайней мере, в Смоленск это работало.

Ещё о возможных причинах неработоспособности blacklist у Вас.
Что я заметил: там в инструкции по блокировке модулей, имя исключаемого модуля указывается вместе с расширением: blacklist floppy.ko.
Вы указываете без расширения. По идее, это влиять не должно, но... всё может быть.
Другой момент: имя самого файла со списком блокировки.
Там приводится два имени файла и список блокировки предписывается вносить именно в них.
Опять-таки, имя файла ни на что влиять не не должно, но...
Третья возможная причина: что-то поломали при переходе между редакциями Смоленск и Орел.
В этом случае, есть смысл обратиться в тех. поддержку. Дескать, вот блокируем, а оно никак не блокируется.

Да, кстати. Это ведь не первый бюллетень по безопасности.
И наверняка в Вашей системе уже есть другие блэклисты. Они-то как себя ведут?
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
жучара
Сообщения: 657
ОС: астралинукс

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение жучара »

Решило:

Shell

user@astra:~$ echo "blacklist floppy" | sudo tee -a /etc/modprobe.d/blacklist.conf
user@astra:~$ sudo update-initramfs -u -k 4.15.3-2-generic
update-initramfs: Generating /boot/initrd.img-4.15.3-2-generic
user@astra:~$
Так я и раньше всё это делал КРОМЕ -k 4.15.3-2-generic. Что это за опция?
man update-initramfs
...
OPTIONS
-k version
Set the specific kernel version for whom the initramfs will be generated. For example the output of uname -r for your currently running kernel. This argument is optional for update. The default is the latest kernel version.

The use of "all" for the version string specifies update-initramfs to execute the chosen action for all kernel versions, that are already known to update-initramfs.
...
Ну то есть видно, что если её не включать, она всё равно сработает и по умолчанию обновит самую последнюю версию ядра. Попробуем:

Shell

user@astra:~$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-4.15.3-2-hardened
user@astra:~$
Опа. То есть вместо того, чтобы обновлять initrd.img-4.15.3-2-generic, она обновляет initrd.img-4.15.3-2-hardened. С какого перепугу она её считает последней? Версия initrd.img-4.15.3-2-hardened придумана, чтобы всех запутать, не более того. Ну у них это получилось. update-initramfs -u считает её почему-то последней (почему?) и её обновляет, не трогая initrd.img-4.15.3-2-generic, которая и является у меня основной. Вот обе эти версии:

Shell

user@astra:~$ ls /boot/initrd.img-4.15.3-2-*
/boot/initrd.img-4.15.3-2-generic /boot/initrd.img-4.15.3-2-hardened
user@astra:~$
Я просто читаю маны.
Спасибо сказали:

Аватара пользователя
Aliech
Сообщения: 494
ОС: Gentoo arm64 musl hardened

Re: Почему в ядре присутствует модуль хотя его быть не должно?

Сообщение Aliech »

жучара, а я вам писал, что update-initramfs - есть единственно верный и кошерный путь.
жучара писал(а):
31.05.2020 17:39
Опа. То есть вместо того, чтобы обновлять initrd.img-4.15.3-2-generic, она обновляет initrd.img-4.15.3-2-hardened. С какого перепугу она её считает последней? Версия initrd.img-4.15.3-2-hardened придумана, чтобы всех запутать, не более того. Ну у них это получилось.
При сортировке h > g, а значит hardened - крайняя. Привет ребятам из Русбитеха.
Добавлено (18:17):
жучара писал(а):
31.05.2020 00:01
Я уж ещё такую вот инструкцию нашёл и следую ей:
https://hackware.ru/?p=12514#5
Так, кстати, делать не надо. Уже лет пятнадцать как.
С уважением, Zerg
Спасибо сказали: