LINUX.ORG.RU

eth0 device not found

 , , , ,


0

0

Всем привет. Собираю линукс с пакетов arch -linux. ядро компилирую сам. в ядро добавлена поддержка сетевой карты RTL8139. lspci показывает, что данная сетевая карточка таки есть. dmesg показывает, что карточка найдена на PCI 00:03.0 и запущен драйвер. Однако, на нее не создается имени eth0 ifconfig -a показывает, что такой карточки нет. Со своей стороны мне кажется, что имя eth0 должно задаваться ядром, а не udev-ом.

Подскажите, как мне заставить систему найти eth0 - посредством udev? Или ядро само это умеет делать?

П.С. Ковырял правила udev в arch.linux - не нашел правил под eth0. с этого делаю вывод, что не юдев этим занимается. п.п.с - Лайф-сиди арча находит сетевую карту, и именует ее.

п.п.п.с не советуйте «внимательно читай маны».


У меня такое было. Просто глюк такой, помогла перезагрузка (но не с первого раза).

XoFfiCEr ★★☆☆ ()

RTL8139

Интересно, где ты такое чудо выкопал?

Собираю линукс с пакетов arch -linux

Брось ты это безнадежное дело. Либо LFS либо не забивай себе голову и выбери дистрибутив. Slackware например, если увлекаешься ковырянием.

cadaber ★★ ()
Ответ на: комментарий от cadaber

LFS уже собирал. Проблема в контроле пакетов. pacman очень классно позволяет собирать файловую структуру в другом руте (например, форматим винт, монтируем его в /mnt, создаем базовые каталоги под Libalpm, и делаем pacman -Syy -r /mnt. После чего собираем нужные нам пакеты - sysvinit, pacman, bash, Итд. Дальше - ставим граб, и прикручиваем ядро. После - пишем руками скрипты. На выходе - чистейшая системка с контролем пакетов.) Но вопрос, собственно, не по этому. вопрос в определении железа. Насколько я понимаю, ядро при запуске само определяет некоторые из железяк, дрова на которые в нем имеются.

Вопрос именно к этому - как заставить ядро определить железку, дрова на которую в него вкомпилены.

taqi ()

оно может быть eth1 или ещё каким
не всегда eth0 есть

find /sys/ -name "eth*"
/sys/devices/pci0000:00/0000:00:1c.5/0000:02:00.0/net/eth1
/sys/class/net/eth1

megabaks ★★★★ ()
Последнее исправление: megabaks (всего исправлений: 1)

ну и dmesg грепни на предмет renamed

megabaks ★★★★ ()
Ответ на: комментарий от megabaks

спасибо за первый адекватный ответ ) Я смотрел в дереве sys. в class/net конкретно этой сетевой карточки нет вообще. Однако она определилась в bus/pci/devices. Сама карточка торчит на PCI 0000:00:03.0 То есть, само ядро ее нашло. Но видимо, все остальные тулзы (типа ifconfig) обращаются на /sys/class/net. Потому, сейчас проработаю вариант NAME параметром в udev. Отпишусь позже )

taqi ()
Ответ на: комментарий от taqi

В такие дебри не влезал. Я = юзер. Поставил, работает, и ладно. Ну иногда могу исходники поправить, когда не собирается что-то.

cadaber ★★ ()
Ответ на: комментарий от taqi

т.е. «оно само и ты там не при чём»?

показывает, что есть только gre0, lo и тунель какой то

именно так и показывает, или, все-таки там есть еще что-то?
modprobe 8139too - надеюсь, советовать - лишне?

lnx ()

значит драйвер не может инициализировать карточку, скомпиль драйвер с дебагом и посмотри при загрузке драйвера есть ли какие ошибки.

dimon555 ★★★★★ ()
Ответ на: комментарий от lnx

modprobe 8139too - не прокатит, ибо этот модуль вкомпилен в ядро

taqi ()
Ответ на: комментарий от dimon555

Спасибо, натолкнул на мысль. Посмотрел лог из arch linux. в нем карточка определяется на ура. Проблема была в том, что мой конфиг-файл для сборки ядра не соответствовал версии ядра. То есть, у меня был предопределенный конфиг файл, в котором пункта нужного драйвера не было. Скомпилил вообще левый драйвер.

Проблему решил:

make mrproper

make allnoconfig

make menuconfig

ну и далее по сценарию. Всем спасибо.

taqi ()
Ответ на: комментарий от megabaks

а find есть везде

Лютое, неистовое ссзб и дизреспект тебе, как гентушнику от гентушника.
Линукс без iproute2 не нужен.

tazhate ★★★★★ ()
Последнее исправление: tazhate (всего исправлений: 1)
Ответ на: комментарий от megabaks

а find есть везде

ps: iproute2 тоже есть ВЕЗДЕ, кроме генты и лфс.

tazhate ★★★★★ ()
Ответ на: комментарий от dimon555

update:

Нужный мне драйвер был в разделе EXPERIMENTAL

По этому стоит отметить пункт General setup -> Prompt for development and/or incomplete code/drivers

после этого появляется доступным нужный мне драйвер.

RTL8139cp. это карточка, по умолчанию стартующая для qemu

всем огромное спасибо

taqi ()
Ответ на: комментарий от megabaks

Легче поставить и так нужный пакет, который странно, что не в бейз и сделать одну команду, чем фигачить костыли из find

tazhate ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.