nixp.ru v3.0

21 января 2017,
суббота,
22:36:19 MSK

DevOps с компанией «Флант»
grisha написал 20 апреля 2008 года в 05:17 (465 просмотров) Ведет себя как мужчина; открыл 34 темы в форуме, оставил 202 комментария на сайте.

Есть 2 сетевые платы. Вначале ifconfig выдавал только lo. Затем ifconfig eth0 up включал одну, а ifconfig eth1 up говорит что нет такое устройства или оно неизвестно. Помогите найти.

Есть интернет, вернее его пока нет. Потому что проблем в name resolution — такая надпись при попытке загрузить чего нить из инета. К eth0 приделан айпи, гейтвэй и маска соответсвенно. В resolv.conf прописаны 2 днс сервера провайдера. Где интернет?

neogeisha

выдай lspci и ifconfig

grisha

Зачем, я же написал об этом выше? lspci у меня не установлен (на этом генту вобще ничего пока нет кроме линкс, я его (генту) совсем недавно собрал). Уж поверь мне, что плат у меня действительно 2, lspci на убунту (на том же компе):

Ethernet controller: VIA Technologies, Inc. VT6105 [Rhine-III] (rev 8b)

Ethernet controller: Intel Corporation 82562EZ 10/100 Ethernet Controller (rev 01)

С ifconfig тоже поверь — все адреса и маска прикручены.

Code Monkey

[telepatic]

а подгружен модуль ядра для неопределившейся карточки?

[/telepatic]

splinter

dmesg | grep eth ?

grisha
Code Monkey
[telepatic]

а подгружен модуль ядра для неопределившейся карточки?

[/telepatic]

Вот об этом я тоже подумал, только не знал где брать эти irq и iobase для платы. Внимательней надо было просмотреть соответствующий раздел. Пишут, что по умолчанию автоматически определяется только одна сетевая карта. Надо при загрузке указать параметры драйвера. Ну, вот я в загрузчике указываю:

kernel /boot/kernel ether=0,0,eth1 root=/dev/sda3 — говорят, что нули заставляют драйвер сделать автоопределение параметров сетевой платы, если драйверы вкомпилированы в ядро (у меня вкомпилированы). Несмотря на это результат тот же — только eth0. Как узнать irq, iobase? Это поможет?

grisha
splinter
dmesg | grep eth ?

Среди прочего выдало следующее:

e100: eth0:e100-probe: addr 0xfe000000, irq 16 MAC addr 00:11:11:75:2c:2f

forcedeth.c: Reverse Engineered nForce ethernet driver

ADDRCONF (NETDEV_UP): eth0: link is not ready

плюс к этому еще мой загрузочный параметр, который выше

Anarchist
Code Monkey
[telepatic]

а подгружен модуль ядра для неопределившейся карточки?

[/telepatic]

И на какое устройство он прописан.

metal
grisha
Вот об этом я тоже подумал, только не знал где брать эти irq и iobase для платы. Внимательней надо было просмотреть соответствующий раздел. Пишут, что по умолчанию автоматически определяется только одна сетевая карта. Надо при загрузке указать параметры драйвера. Ну, вот я в загрузчике указываю:

kernel /boot/kernel ether=0,0,eth1 root=/dev/sda3 — говорят, что нули заставляют драйвер сделать автоопределение параметров сетевой платы, если драйверы вкомпилированы в ядро (у меня вкомпилированы). Несмотря на это результат тот же — только eth0. Как узнать irq, iobase? Это поможет?

Э… мне кажется ты это в каком-то древнем источнике прочитал, задание параметров для сетевух вручную актуально для isa карт. Еще таким образом можно было поменять порядок иницилизации сетевух и соответствено их имена, но вроде это все отрубили в 2.6.

ADDRCONF (NETDEV_UP): eth0: link is not ready

Это говорит о не правильных настройках скорее всего, настройки в студию!

Anarchist
metal
Э… мне кажется ты это в каком-то древнем источнике прочитал, задание параметров для сетевух вручную актуально для isa карт. Еще таким образом можно было поменять порядок иницилизации сетевух и соответствено их имена, но вроде это все отрубили в 2.6.

Блин, ну на хрена мне было напрягаться, вспоминать?..

В файле

/etc/udev/rules.d/70-persistent-net.rules

прописывается соответствие между модулем (драйвером) и именем устройства.

Имя устройства от порядка инициализации не зависит (сам удивился в своё время).

По крайней мере у меня в Gentoo так.

metal
Anarchist
Имя устройства от порядка инициализации не зависит (сам удивился в своё время).

Раньше зависело, наверное поэтому и убрали соответствующие параметры ядра.

grisha

А я то думал, что почти разобрался. А это оказывается я книжки древние читаю. Эх…

В файле

/etc/udev/rules.d/70-persistent-net.rules

прописывается соответствие между модулем (драйвером) и именем устройства.

Имя устройства от порядка инициализации не зависит (сам удивился в своё время).

Ну, теперь все понятно. Икскюзьми, а че делать-то? :) Устройство — это eth1, модуль — это бла,бла.ko. Соответствие… Во-первых, откуда у меня модуль(драйвер), если оное вкомпилировано в ядро? Пошел я искать вместо бла,бла что-нибудь напоминающее сетевой интерфейс в /lib/modules и не нашел. Заглянул я в 70-persistent-net.rules и нихрена не понял, за исключением, что прописаны там 2 привода сиди и дивиди (дефисы,скобки,цифры… — методом тыка однако долго будет). Прописать соответсвие… Как? Научите, как перестать тупить?

Anarchist
grisha
Ну, теперь все понятно. Икскюзьми, а че делать-то? :) Устройство — это eth1, модуль — это бла,бла.ko. Соответствие…

Ну да.

grisha
Во-первых, откуда у меня модуль(драйвер), если оное вкомпилировано в ядро?

А ты уверен, что оно так будет работать?

grisha
Пошел я искать вместо бла,бла что-нибудь напоминающее сетевой интерфейс в /lib/modules и не нашел. Заглянул я в 70-persistent-net.rules и нихрена не понял, за исключением, что прописаны там 2 привода сиди и дивиди (дефисы,скобки,цифры… — методом тыка однако долго будет).

Интересно. Хуйня какая-то.

В ЭТОМ файле разных CD/DVD быть не должно.

grisha
Прописать соответсвие… Как? Научите, как перестать тупить?

Мне почему-то казалось, что оно достаточно очевидно…

$ cd /etc/udev/rules.d/
$ grep eth1 *

Читаешь и анализируешь вывод.

В моём случае то, что мне нужно живёт в /etc/udev/rules.d/70-persistent-net.rules (я в эту тему особо не вникал).

Содержимое файла интуитивно понятно:

# This file was automatically generated by the /lib/udev/write_net_rules
# program, probably run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
# PCI device 0x10ec:0x8139 (8139too)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:15:f2:aa:b9:b3", NAME="eth0"

Сетевая карта

00:0b.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
grisha

Спасибо. Вопрос решен. Все работает (почти). Рассказываю как это было:

Залез в 70-persistent-net.rules (а не в …-cd.rules, как в прошлый раз :)), увидел одну строку с eth0. Соответственно команда grep eth1 * нихрена не дала. Загрузился с лайв диска, снова посмотрел в rules, там все красиво и по полочкам для eth0 — (e100), для eth1 — (via-rhine). Перезагружаюсь, проверяю конфиг ядра, так и есть — via-rhine пустой, отмечаю. Почему то решил, что таких опций как intel (R) бла-бла, плюс пара-тройка других, якобы совместимых (по моим соображениям) с моими картами будет вполне достаточно. В свзи с этим может посоветуете как в дальнейшем оперативно подобрать опцию ядра для соответствующего оборудования. В моем примере — карта eth1 — производитель d-link, DFE-520TX. Откуда мне можно узнать, что на нее пойдет via-rhine. При чем тут via-rhine?

Короче пересобрал ядро — все заработало. Хотя на eth0 так инета и нету :) Подозреваю, что ей кердык. (как то была молния, в комнате что то щелкнуло, скорей всего даже в компе. Когда его включил — запахло жереным. Хотя все работало. Кроме инета. Инет появился после покупки новой карты. Система ее(старую eth0) по-прежднему определяет, но толку от этого никакого. Возможна ли такая небесная кара?)

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.