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

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

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

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: Не работает blacklist для модулей
« Ответ #15 : 02 Декабрь 2010, 14:43:33 »
/etc/modprobe.d трогать не надо. Тут несколько другой механизм используется и он не зависит от версии modprobe.
конечно трогать ненадо, просто в новом modprobe к файлам в этой папке добавляется .conf для старой версии modprobe добавлять это расширение не нужно, по крайней мере везде пишут в инете про то как добавлять модули в blacklist (я гуглил например на установку проприетарных драверов на видеокарты)
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн jel

  • Постоялец
  • ***
  • Сообщений: 137
  • Репутация: +11/-0
  • Автор темы
Re: Не работает blacklist для модулей
« Ответ #16 : 02 Декабрь 2010, 16:26:18 »
В puppy это сделано немного иначе. Из rc.sysinit на основе строки SKIPLIST из файла MODULESCONFIG и на основе всех файлов из /etc/modprobe.d/ создается /tmp/pup_event_modprobe.conf При этом без разницы как называются файлы. А вот дальше - проблема. Из командной строки (при проверке команды скрипта) блеклист работает, а из скрипта - нет. Выходит где-то мимо этого скрипта модули грузятся.

Оффлайн Pro

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

Оффлайн jel

  • Постоялец
  • ***
  • Сообщений: 137
  • Репутация: +11/-0
  • Автор темы
Re: Не работает blacklist для модулей
« Ответ #18 : 03 Декабрь 2010, 21:22:41 »
Еще раз с лупой поковырял rc.sysinit - ничего криминального не нашел. Возможно скажу глупость, но не могут ли лишние модули грузиться прямо из initrd? Там ведь blacklist-а еще нет и никто не помешает грузить все, что душе угодно.

Конкретно - бодаюсь с ath9k, который на моем железе работает криво. Однако избавиться от его загрузки удалось только тупо удалив его и сделав depmod -a.

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: Не работает blacklist для модулей
« Ответ #19 : 04 Декабрь 2010, 05:52:25 »
но не могут ли лишние модули грузиться прямо из initrd? Там ведь blacklist-а еще нет и никто не помешает грузить все, что душе угодно.
в init минимум модулей необходимых для загрузки, можете загрузиться с параметром pfix=rdsh и сделать lsmod - будет видно какие модули загружены для вашей системы. Если есть ath9k значит надо думать....
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн jel

  • Постоялец
  • ***
  • Сообщений: 137
  • Репутация: +11/-0
  • Автор темы
Re: Не работает blacklist для модулей
« Ответ #20 : 04 Декабрь 2010, 14:03:37 »
Проверил - в initrd его нет. Значит грузится позже.

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: Не работает blacklist для модулей
« Ответ #21 : 08 Декабрь 2010, 09:31:39 »
c --use-blacklist или с -b вроде заработало как положено.
в rc.sysinit если подставить эту опцию?
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн jel

  • Постоялец
  • ***
  • Сообщений: 137
  • Репутация: +11/-0
  • Автор темы
Re: Не работает blacklist для модулей
« Ответ #22 : 08 Декабрь 2010, 13:52:42 »
Некуда там подставлять.
Из rc.sysinit modprobe в явном виде вызывается только для apm и fbcon. Все остальные модули грузит udev.

Оффлайн Pro

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

Оффлайн jel

  • Постоялец
  • ***
  • Сообщений: 137
  • Репутация: +11/-0
  • Автор темы
Re: Не работает blacklist для модулей
« Ответ #24 : 08 Декабрь 2010, 19:20:40 »
Это ADDLIST из /etc/rc.d/MODULESCONFIG обрабатывается. У меня он пустой.

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: Не работает blacklist для модулей
« Ответ #25 : 16 Декабрь 2010, 15:58:42 »
я не забыл про баг, пока мыслей нету

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

Оффлайн jel

  • Постоялец
  • ***
  • Сообщений: 137
  • Репутация: +11/-0
  • Автор темы
Re: Не работает blacklist для модулей
« Ответ #26 : 17 Декабрь 2010, 14:16:59 »
Занести модуль в blacklist можно несколькими способами. Проще всего добавить его в строку SKIPLIST файла /etc/rc.d/MODULESCONFIG По задумке автора системы указанные там модули не рассматриваются udev-ом в качестве приемлемых вариантов. На практике - еще как рассматриваются.

Убедиться что blacklist работает можно по отсутствию указанного там модуля в выводе lsmod. В моем случае одно и то же железо могут обслуживать и ath9k и ndiswrapper с установленными виндовыми драйверами. Хочу использовать ndiswrapper, но udev упорно грузит ath9k и объяснить ему, что мне нужен другой драйвер не удается. Учитывая, что SKIPLIST довольно длинный, и это явно неспроста - хотелось бы наладить как-то его работу во избежание.

А вот как заставить его работать - ума не приложу. При моделировании ситуации в консоли - modprobe, вызываемый с нужными параметрами ведет себя корректно. Из скрипта, вызываемого udev-ом - работает криво, хотя разницы в параметрах нет. Возможно modprobe вызывается еще где-то, но где именно - не нашел.

Оффлайн Pro

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

Оффлайн jel

  • Постоялец
  • ***
  • Сообщений: 137
  • Репутация: +11/-0
  • Автор темы
Re: Не работает blacklist для модулей
« Ответ #28 : 18 Декабрь 2010, 10:36:46 »
В /etc/udev/rules.d/50-udev-puppy-basic.rules значится:

Код
ACTION=="add", SUBSYSTEM=="?*", ENV{MODALIAS}=="?*", RUN+="/sbin/pup_event_backend_modprobe"

В /sbin/pup_event_backend_modprobe наблюдаем:

Код
#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 '\-' '_'`"

В конфиге - blacklist. Он формируется в rc.sysinit и к нему вопросов нет. Там все нормально. Без параметра -b в вызове modprobe он не используется. С параметром -b - в терминале работает. В скрипте - нет. Модули из blacklist-а все равно грузятся.

Оффлайн Pro

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