Author Topic: как указать ядру правильный драйвер  (Read 8583 times)

0 Members and 1 Guest are viewing this topic.

Offline xxx

  • Sr. Member
  • ****
  • Posts: 273
  • Karma: +0/-0
народ, проблемка неболшая такая , помогите кто сколько может, плиз
есть сетевая карта на чипе Davicom (если не ошибся в написании)
под неё система грузит сразу два драйвера - tulip и dmfe , и они начинают конфликтовать
после которого времени работы..после выгрузки обоих драйвов и загрузки тока dmfe всё нормально работает
вот как только указать ядру чтобы он только один драйвер использовал не могу понять
бласклисты не помогают

Offline stager

  • Moderator
  • Jr. Member
  • *****
  • Posts: 78
  • Karma: +1/-0
    • http://time.tsk.ru
как указать ядру правильный драйвер
« Reply #1 on: March 10, 2009, 14:30:52 »
Quote from: xxx
народ, проблемка неболшая такая , помогите кто сколько может, плиз
есть сетевая карта на чипе Davicom (если не ошибся в написании)
под неё система грузит сразу два драйвера - tulip и dmfe , и они начинают конфликтовать
после которого времени работы..после выгрузки обоих драйвов и загрузки тока dmfe всё нормально работает
вот как только указать ядру чтобы он только один драйвер использовал не могу понять
бласклисты не помогают
Code: [Select]
echo "alias tulip off" >> /etc/modprobe.d/00local
echo "alias eth0 dmfe" >> /etc/modprobe.d/00local

вот так наверное
Segmentation fault. Core dumped. Kernel panic. System halted. Power down. Аминь.

Offline xxx

  • Sr. Member
  • ****
  • Posts: 273
  • Karma: +0/-0
как указать ядру правильный драйвер
« Reply #2 on: March 10, 2009, 14:50:19 »
Quote from: stager
Code: [Select]
echo "alias tulip off" >> /etc/modprobe.d/00local
echo "alias eth0 dmfe" >> /etc/modprobe.d/00local

вот так наверное

не... чет не так вроде должно быть..этот вариант не помогает
может я успел нагородить гденить...
почему-то нет файлика modules.order для ядра - может в этом всё дело? написать самому,
тока не знаю можно тока для сетевых дров указать порядок загрузки или все прийдётся указывать
как бы его еще сгенерить автоматом ?

Offline Xray_Linux_Root

  • Sr. Member
  • ****
  • Posts: 296
  • Karma: +2/-0
как указать ядру правильный драйвер
« Reply #3 on: March 11, 2009, 09:45:53 »
Ну тогда возьмём скальпель и сделаем так:
Code: [Select]
echo "blacklist tulip" >> /etc/modprobe.d/blacklist.localЗ.Ы. у меня подобным образом например IPv6 отключено.
« Last Edit: March 11, 2009, 09:47:02 by Xray_Linux_Root »
Mandrake, ASPLinux, Slackware, RedHat, Fedora, Debian
Зачем M$ Exchange? Есть eGroupware!
-j MASQUERADE + друзья в других сетях помогут построить мир независимо от желания вашего провайдера ;)

Offline xxx

  • Sr. Member
  • ****
  • Posts: 273
  • Karma: +0/-0
как указать ядру правильный драйвер
« Reply #4 on: March 11, 2009, 13:04:29 »
Quote from: Xray_Linux_Root
Ну тогда возьмём скальпель и сделаем так:
Code: [Select]
echo "blacklist tulip" >> /etc/modprobe.d/blacklist.localЗ.Ы. у меня подобным образом например IPv6 отключено.

не тот скаЛьпель однако.. не помогает... ядрышко как грузило так и грузит первым tulip, а не dmfe
у меня Debian 5  - может там чет по другому закручено?

Offline Xray_Linux_Root

  • Sr. Member
  • ****
  • Posts: 296
  • Karma: +2/-0
как указать ядру правильный драйвер
« Reply #5 on: March 11, 2009, 14:24:23 »
Quote from: xxx
не тот скаЛьпель однако.. не помогает... ядрышко как грузило так и грузит первым tulip, а не dmfe
у меня Debian 5  - может там чет по другому закручено?
"Это не правильные пчёлы и они делают неправильный мёд." © Винни Пух

А теперь по делу.
Это одинаково работает как в Etch так и в Lenny, ну и в последующих тоже (надеюсь не испортят).
Ещё дополним вот так:
Code: [Select]
echo dmfe >> /etc/modules
Если не поможет попытаться изменить строчку тут: /etc/udev/rules.d/70-persistent-net.rules
с такой
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
на такую
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="dmfe", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"


З.Ы. Мне почему-то кажется что последнего варианта + запись в блэклисте хватит поуши.
Mandrake, ASPLinux, Slackware, RedHat, Fedora, Debian
Зачем M$ Exchange? Есть eGroupware!
-j MASQUERADE + друзья в других сетях помогут построить мир независимо от желания вашего провайдера ;)

Offline rPman

  • Full Member
  • ***
  • Posts: 109
  • Karma: +0/-0
как указать ядру правильный драйвер
« Reply #6 on: March 11, 2009, 14:27:35 »
я не уверен, но посмотрите внимательней, точно ли драйвера грузятся как модули, а не скомпилированы в ядро?
если как модули, то можете, для эксперимента, временно спрятать куда-нибудь файлик из /lib/modules/`uname -r`/.../tulip.ko

Offline xxx

  • Sr. Member
  • ****
  • Posts: 273
  • Karma: +0/-0
как указать ядру правильный драйвер
« Reply #7 on: March 11, 2009, 15:10:08 »
Quote from: rPman
я не уверен, но посмотрите внимательней, точно ли драйвера грузятся как модули, а не скомпилированы в ядро?
если как модули, то можете, для эксперимента, временно спрятать куда-нибудь файлик из /lib/modules/`uname -r`/.../tulip.ko

я однозначно уверен - на 1000% , в логе ядра так и значаться записи загузки - сначала для tulip, потом для dmfe ..
что они модули - тоже однозначно..
я понимаю что можно спрятать файлик, но это не цивильный способ - по каждому случаю файлики прятать
в опенСюзи - просто, можно указать конкрентый драйв для загрузки если есть несколько подходящих
а в Дебиане не могу пока понять где чего прописывать.. а ведь точно должен быть нормальный способ, без скаЛьпеля

Offline xxx

  • Sr. Member
  • ****
  • Posts: 273
  • Karma: +0/-0
как указать ядру правильный драйвер
« Reply #8 on: March 11, 2009, 15:22:07 »
Quote from: Xray_Linux_Root
"Это не правильные пчёлы и они делают неправильный мёд." © Винни Пух

А теперь по делу.
Это одинаково работает как в Etch так и в Lenny, ну и в последующих тоже (надеюсь не испортят).
Ещё дополним вот так:
Code: [Select]
echo dmfe >> /etc/modules
Если не поможет попытаться изменить строчку тут: /etc/udev/rules.d/70-persistent-net.rules
с такой
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
на такую
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="dmfe", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
З.Ы. Мне почему-то кажется что последнего варианта + запись в блэклисте хватит поуши.

Других пчёл нет, приходится питаться такимс мёдом или самому гнать ...
в /etc/modules сразу поместил этот код, а толку?
что т не даёт покоя мне  этот вопросик...
неужели нет цивильного способа указать ядру чего грузить и в каком порядке
не перегрибая кучу настроек, которые потом слетят как пид дать... да не поверю
Спасибо за оказанную помощь, покопаюсь еще маненько, думаю пригодится комунить обязательно

Offline Xray_Linux_Root

  • Sr. Member
  • ****
  • Posts: 296
  • Karma: +2/-0
как указать ядру правильный драйвер
« Reply #9 on: March 11, 2009, 15:45:31 »
Да вот в том-то и дело, что должно было помочь только помещение в блэклист, т.к. эти блэклисты читает сам udev, который в свою очередь и грузит нужный модуль. А вот эта строка SUBSYSTEM=="net", ACTION=="add", DRIVERS=="dmfe", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" или на худой конец вот так "dmfe*" ограничивает udev в поиске нужного модуля.  

Если хочется таки разобраться можно ещё глянуть вот это дело dpkg -l | grep discover эти пакеты отвечают за сопоставление pci id модулям ядра.
А это по udev кратенько - http://www.opennet.ru/base/sys/udev_review.txt.html , на всякий пожарный.

Вот метод для мазохистов - https://www.linuxquestions.org/questions/de...in-etch-512090/

З.Ы. блэклисты не слетят и настройки в файле /etc/udev/rules.d/XX-persistent-net.rules тоже не слетят, по крайней мере в пределах этого релиза
« Last Edit: March 11, 2009, 16:03:33 by Xray_Linux_Root »
Mandrake, ASPLinux, Slackware, RedHat, Fedora, Debian
Зачем M$ Exchange? Есть eGroupware!
-j MASQUERADE + друзья в других сетях помогут построить мир независимо от желания вашего провайдера ;)

Offline xxx

  • Sr. Member
  • ****
  • Posts: 273
  • Karma: +0/-0
как указать ядру правильный драйвер
« Reply #10 on: March 11, 2009, 17:53:52 »
Quote from: Xray_Linux_Root
Да вот в том-то и дело, что должно было помочь только помещение в блэклист, т.к. эти блэклисты читает сам udev, который в свою очередь и грузит нужный модуль. А вот эта строка SUBSYSTEM=="net", ACTION=="add", DRIVERS=="dmfe", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" или на худой конец вот так "dmfe*" ограничивает udev в поиске нужного модуля.  

Если хочется таки разобраться можно ещё глянуть вот это дело dpkg -l | grep discover эти пакеты отвечают за сопоставление pci id модулям ядра.
А это по udev кратенько - http://www.opennet.ru/base/sys/udev_review.txt.html , на всякий пожарный.

Вот метод для мазохистов - https://www.linuxquestions.org/questions/de...in-etch-512090/

З.Ы. блэклисты не слетят и настройки в файле /etc/udev/rules.d/XX-persistent-net.rules тоже не слетят, по крайней мере в пределах этого релиза

либо я дурак..либо не того мёда наелся  ничего не помогает ... видьмо с самого начала прийдётся изучать линукс

Offline xxx

  • Sr. Member
  • ****
  • Posts: 273
  • Karma: +0/-0
как указать ядру правильный драйвер
« Reply #11 on: March 11, 2009, 18:04:51 »
Quote from: Xray_Linux_Root
Да вот в том-то и дело, что должно было помочь только помещение в блэклист, т.к. эти блэклисты читает сам udev, который в свою очередь и грузит нужный модуль. А вот эта строка SUBSYSTEM=="net", ACTION=="add", DRIVERS=="dmfe", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" или на худой конец вот так "dmfe*" ограничивает udev в поиске нужного модуля.  

Если хочется таки разобраться можно ещё глянуть вот это дело dpkg -l | grep discover эти пакеты отвечают за сопоставление pci id модулям ядра.
А это по udev кратенько - http://www.opennet.ru/base/sys/udev_review.txt.html , на всякий пожарный.

Вот метод для мазохистов - https://www.linuxquestions.org/questions/de...in-etch-512090/

З.Ы. блэклисты не слетят и настройки в файле /etc/udev/rules.d/XX-persistent-net.rules тоже не слетят, по крайней мере в пределах этого релиза

udev нагло вставляет в ралесы свою строчку с DRIVERS="*"