Сайт | Скачать | Видео | Wiki

Автор Тема: [закрыто]Не работает blacklist для модулей  (Прочитано 33690 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн jel

  • Постоялец
  • ***
  • Сообщений: 137
  • Репутация: +11/-0
  • Автор темы
Не работает blacklist для модулей. Это затрудняет использование ndiswrapper-а и может привести к проблемам с определением железа.

Нежелательный модуль вносится в строку SKIPLIST в файле /etc/rc.d/MODULESCONFIG. На основе этой строки при загрузке генерируется список blacklist-ов в файле /tmp/pup_event_modprobe.conf

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

Подскажите, где копать, чтобы заставить этот список работать?

Upd: Похоже что виновник торжества modprobe. Сгенерированный список в скриптах передается ему в качестве конфига и похоже им благополучно игнорируется.

Он ведь тоже из обновленного busybox? О проблемах с утилитой du я уже писал на redmine. Теперь modprobe. И кто знает, что еще там поломали и где оно вылезет. Может есть смысл откатиться на старый busybox?
« Последнее редактирование: 12 Март 2011, 14:23:20 от Pro »

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: Не работает blacklist для модулей
« Ответ #1 : 20 Ноябрь 2010, 11:33:48 »
О проблемах с утилитой du я уже писал на redmine.
что то не заметил......


Upd: Похоже что виновник торжества modprobe. Сгенерированный список в скриптах передается ему в качестве конфига и похоже им благополучно игнорируется.
на чем базируется эта информация?
« Последнее редактирование: 20 Ноябрь 2010, 11:37:51 от Pro »
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн jel

  • Постоялец
  • ***
  • Сообщений: 137
  • Репутация: +11/-0
  • Автор темы
Re: Не работает blacklist для модулей
« Ответ #2 : 20 Ноябрь 2010, 15:38:14 »
По busybox-у подробно описал на redmine. Надо ставить coreutils.

По modprobe - udev использует /sbin/pup_event_backend_d и /sbin/pup_event_backend_modprobe при создании устройств.

Из /sbin/pup_event_backend_d например modprobe вызывается так:

Код
MODULE="`modprobe.bin --config /tmp/pup_event_modprobe.conf --show-depends $MODALIAS 2>/dev/null | tail -n 1 | rev | cut -f 1 -d '/' | rev | cut -f 1 -d '.' | tr '\-' '_'`"

Поскольку .conf для него сгенерирован и ненужные модули там перечислены логично предположить, что они не должны загружаться. А раз они загружаются и конфиг в порядке - похоже проблема в modprobe. Либо, как вариант - конфиг генерируется слишком поздно. То есть сначала udev создает устройства вызывая modprobe с пустым конфигом, а уже потом генерируется конфиг.

Еще есть интересные строки в /tmp/bootsysinit.log (выделено жирным)

Цитата
VERSION UPDATE
mv: can't rename '/etc/modules/firmware.dep': No such file or directory
LOAD KERNEL MODULES
FATAL: Module fbcon not found.
ЗАГРУЗКА SWAP
УСТАНОВКА MISC. SYSTEM
WAIT MODULES LOADED
USER SELECTED MODULES
SETUP SERVICES
RECOGNISE MEDIA DEVICES
Loading extra ethernet driver modules...
loading ndiswrapper module
Loading "ru" keyboard map... Loading /usr/share/keymaps/i386/qwerty/ru.map.gz
MISC. DESKTOP STUFF
PERSONAL BOOT SCRIPT
Loading /usr/share/keymaps/i386/qwerty/ru-utf.map.gz
/etc/rc.d/rc.local: line 6: /etc/rc.d/SFSMODULE: Success
loading  module
Usage: modprobe [-v] [-V] [-C config-file] [-n] [-i] [-q] [-b] [-o <modname>] [ --dump-modversions ] <modname> [parameters...]
modprobe -r [-n] [-i] [-v] <modulename> ...
modprobe -l -t <dirname> [ -a <modulename> ...]

Waiting for interfaces to initialize...Power Button module already loaded.
acpi daemon started.
Starting PCMCIA services:

Либо где-то в скриптах инициалазации допущена ошибка, либо modprobe теперь не понимает каких-то параметров, которые раньше понимал.
« Последнее редактирование: 20 Ноябрь 2010, 16:54:03 от jel »

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: Не работает blacklist для модулей
« Ответ #3 : 22 Ноябрь 2010, 02:40:19 »
modprobe не обновлялся т.к. новые версии не поддерживали работу с модулями ядра сжатыми gz

ошибка скорее всего результат обновления скрипта rc.sysinit пакетом для поддержки модемов.
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн jel

  • Постоялец
  • ***
  • Сообщений: 137
  • Репутация: +11/-0
  • Автор темы
Re: Не работает blacklist для модулей
« Ответ #4 : 22 Ноябрь 2010, 09:55:43 »
Судя по логу rc.sysinit к моменту возникновения ошибки уже отработал. Ошибка возникает уже после выполнения rc.local. Надо смотреть что там дальше выполняется.

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: Не работает blacklist для модулей
« Ответ #5 : 30 Ноябрь 2010, 04:13:17 »
желающие заняться данной задачей есть?
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн nik

  • Ветеран
  • *****
  • Сообщений: 752
  • Репутация: +80/-0
Re: Не работает blacklist для модулей
« Ответ #6 : 30 Ноябрь 2010, 06:23:23 »
новые module-init-tools используют /etc/modprobe.d/*.conf скорей всего проблема в этом.
intel Core i3 8100 / nVidia-GTХ750-2048Mb / SSD-128mb/HDD-500Gb / RAM-DDRIV 8Gb / ,PuppyRus SnowDog, PuppyRus Richy, Windows 10.

Оффлайн jel

  • Постоялец
  • ***
  • Сообщений: 137
  • Репутация: +11/-0
  • Автор темы
Re: Не работает blacklist для модулей
« Ответ #7 : 30 Ноябрь 2010, 09:01:49 »
Я пробовал писать blacklist в /etc/modprobe.d/ - все равно не работает.

В /tmp/pup_event_modprobe.conf эти модули попадают в любом случае. А вот почему этот список игнорируется - так и не разобрался.

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: Не работает blacklist для модулей
« Ответ #8 : 30 Ноябрь 2010, 15:39:46 »
Просмотрел файлы все  pup_events_ даже сравнил со старыми версиями - ничего криминального нету :(
изменения конечно есть и  много но не особо криминальные......
вобщем нету ясности для чего нужен /tmp/pup_event_modprobe.conf по идее основным задающим файлом является
/etc/rc.d/MODULESCONFIG думаю надо глянуть теперь скрипты загрузки в /etc/rc.d (не успел еще :( )
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: Не работает blacklist для модулей
« Ответ #9 : 02 Декабрь 2010, 02:54:45 »
В файле pup_event_backend_modprobe единственный обработчик pup_event_modprobe.conf найден тут:
Код
#find a matching module... (/etc/pup_event_modprobe.conf created in rc.sysinit)
MODULE="`/sbin/modprobe --config /tmp/pup_event_modprobe.conf --show-depends $MODALIAS 2>/dev/null | tail -n 1 | rev | cut -f 1 -d '/' | rev | cut -f 1 -d '.' | tr '\-' '_'`"
[ "$RULEMODULE" != "" ] && [ "$MODULE" = "" -o "$MODULE" = "usb_storage" -o "$MODULE" = "snd_hda_intel" ] && MODULE="$RULEMODULE" #w463 Use module from argument #101018
[ "$MODULE" = "" ] && exit 1

меня смущает что в коментариях пишут /etc/pup_event_modprobe.conf а  реально файл смотрят в /tmp/pup_event_modprobe.conf опечатка?
думаю что-то поломалось в строке MODULE....
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн jel

  • Постоялец
  • ***
  • Сообщений: 137
  • Репутация: +11/-0
  • Автор темы
Re: Не работает blacklist для модулей
« Ответ #10 : 02 Декабрь 2010, 09:58:15 »
Я пробовал запускать modprobe строкой из этого файла (с конфигом и прочими параметрами). Невзирая на наличие модуля в блэклисте modprobe все равно бодро его предлагает.

Код
# echo "blacklist ath9k" >> /tmp/pup_event_modprobe.conf 
# /sbin/modprobe --config /tmp/pup_event_modprobe.conf --show-depends ath9k
insmod /lib/modules/2.6.35.8/kernel/net/wireless/cfg80211.ko.gz
insmod /lib/modules/2.6.35.8/kernel/net/mac80211/mac80211.ko.gz
insmod /lib/modules/2.6.35.8/kernel/drivers/net/wireless/ath/ath.ko.gz
insmod /lib/modules/2.6.35.8/kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko.gz
insmod /lib/modules/2.6.35.8/kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko.gz
insmod /lib/modules/2.6.35.8/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko.gz
#

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: Не работает blacklist для модулей
« Ответ #11 : 02 Декабрь 2010, 10:12:09 »
опция --use-blacklist нам может чем нить помоч?

возможно надо попробовать поместить этот файлик в /etc/modprobe.d переименовав в blaсklist (без .conf т.к. версия modprobe у нас старая)
« Последнее редактирование: 02 Декабрь 2010, 10:19:33 от Pro »
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн jel

  • Постоялец
  • ***
  • Сообщений: 137
  • Репутация: +11/-0
  • Автор темы
Re: Не работает blacklist для модулей
« Ответ #12 : 02 Декабрь 2010, 10:47:48 »
c --use-blacklist или с -b вроде заработало как положено.

/etc/modprobe.d трогать не надо. Тут несколько другой механизм используется и он не зависит от версии modprobe.

Попробую теперь подкорректировать pup_event_backend_modprobe и посмотрю что получится.


Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: Не работает blacklist для модулей
« Ответ #13 : 02 Декабрь 2010, 10:50:32 »
хоть бы заработало, а то мне еще с мышами разбираться надо........
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн jel

  • Постоялец
  • ***
  • Сообщений: 137
  • Репутация: +11/-0
  • Автор темы
Re: Не работает blacklist для модулей
« Ответ #14 : 02 Декабрь 2010, 11:11:03 »
Увы :(

Все равно грузятся. Видимо не из этого скрипта. Надо дальше разбираться.