DimkaS
написал 2 сентября 2007 года в 23:21 (1938 просмотров)
Ведет себя
как мужчина; открыл 84 темы в форуме, оставил 922 комментария на сайте.
Установил Etch на новую систему. Вылезла непонятная проблема с сетевухами:
box:~# ifconfig eth0 up eth0: ERROR while getting interface flags: No such device box:~# ifconfig eth1 up eth1: ERROR while getting interface flags: No such device из dmesg: forcedeth: using HIGHDMA 0000:00:07.0: Invalid Mac address detected: 51:e4:0b:66:19:00 Please complain to your hardware vendor. Switching to a random MAC. eth0: forcedeth.c: subsystem: 01849:03ef bound to 0000:00:07.0 eth1: RealTek RTL8139 at 0xe800, 00:e0:4c:10:47:6a, IRQ 50 eth1: Identified 8139 chip type 'RTL-8100B/8139D'
Сначала я решил, что проблема со встроенной сетевухой (eth0). Мак-адрес написан задом наперёд, по сравнению с тем, что у меня в конфиге dhcp-сервера. Устанавливал систему через tftp-boot и сетевуха отлично работала. Тогда я вставил Realtek (eth1), который до сегодняшнего дня отлично работал на машинке с Debian Testing. Та же фигня. Не могу понять, почему так происходит?
Судя по тому, что проблемы с обоими сетевухами, дело не в них, а в системе. Может LVM быть к этому причастен?
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
Методом перебора удалось выяснить, что на самом деле сетевухам соответствовали устройства eth5 и eth7. После удаления реалтека и перезагрузки встроенная сетевуха стала eth8, т.к. udev присваивал новое имя каждому устройству с новым маком, а для встроенной сетевухи мак генерится заново при перезагрузке. Попытался решить проблему заменой случайной части мак-адреса звёздочками в правиле udev, но после перезагрузки интерфейс всё равно не поднимается, хотя и определяется уже как eth0.
Всё же интересно, почему мак задом наперёд прочитан?
?
Не совсем.
Погуглив на тему кривого мака выяснил, что это косяк драйвера forcedeth, в новой версии всё исправлено. Собрал свежее 2.6.22.6, установил, запустил mkinitrd, а он ругается, что ядро собрано без LVM. Я опять в гугл, он говорит, initrd выпендривается, если LVM в ядре, а не модулем. Пересобрал ядро с LVM в модуле. Снова запустил mkinitrd. Он выдал несколько строчек вида File descriptor 3 left open, сообщил, что нашёл все тома и таки создал initrd. Далее, я добавил свежее ядро в /boot/grub/menu.list и перезагрузился. Ядро начало грузиться, но потом посыпались сообщения вида devfs not found, а затем настал kernel-panic по причине /devfs/mapper not found. Т.е. несмотря на наличие LVM в initrd корневая ФС не видится.
Что делать?
Жёсткий разбит так: boot, swap LVM, на котором одна группа из двух томов / и home.
ммм? devfs? с чего бы это?
вроде бы должен быть udev, или я что-то перепутал?
ну и касательно mapper, как оно у тебя, типа такого?
и вообще, debug в опции ядра, и вывод на чём паникует.
кроме того, возьми-ка конфиг от ядра из Etch и пересобери с ним. ничего особо не меняя
Вот я тоже не могу понять, при чём тут devfs.
Что это значит?
Точно! сейчас попробую.
чего-то меня не туда проглючило, хотя это тоже полезно. у тебя дополнительные фичи dev_mapper на разрешены… полезны иногда
но сам dev_mapper у тебя сконфигурирован…
кроме того, смотри, есть ли у тебя поддержка твоего RAID:
Что-то не очень получилось. Вывод такой:
Конфиг такой:
fstab
menu.list (частично)
initrd делал командой mkinitrd -o /boot/initrd.img-2.6.22.6 2.6.22.6
Вот. Где я ошибся?
1) я не могу найти в последних ядрах упоминания о devfs вообще. то есть, где-то после 2.6.18 его выкинули, как и обещались.
утилиты lvm, которые в etch, похоже не могут работать без поддержки devfs.
хотя, должен заметить, что 2.6.21, стоящее у меня на десктопе, работает с lvm (но lvm не используется для /)
попробуй обновить соответствующие утилиты.
2) есть подозрение, что у тебя винты переехали с hd* на sd* — не за счёт эмуляции scsi, а за счёт драйвера libata/pata_amd.
поэтому смотри внимательно вывод сообщений ядра
3) добавь в fstab:
А нужен ли тебе initrd? Попробуй все файлухи необходимые при загрузке и lvm включить в ядро.
Genie
1) Обновлять пока нечего — у меня и так testing. Причём, родное 2.6.18-5 без проблем работает. Я делал oldconfig, выбирая дефолтные ответы для новых опций. Безрезультатно.
2) Проверял. Определяется именно как hda.
3) Добавил, но результата нету.
metal
попробую вечерком
cat /proc/mounts
В принципе, на 2.6.22.6 можно пока забить — всё и так работает, только для корректного определения интерфейса пришлось поправить правило udev:
Но всё ж хочется понять, что не даёт ядру загрузиться нормально. Вариант с lvm в ядре попробую чуть позже, когда будет время.
поковырявшись в системе на ноуте и на десктопе, обнаружить mkinitrd у себя не смог. при создании образа ядра у меня используется mkinitramfs.
поэтому, попробуй создать initrd этой утилитой. ну или
Ты гений! =) надо было только старый initrd убрать. И всё заработало! =)
Огромное спасибо!
спасибо на добром слове ;)
или man почитать, -u использовать
замечательно :)
а что насчёт сетевой карточки, ради которой и затевалось сие обновление?
приходите ешё ;)
Пробовал. Говорит, не я создавал, не мне и удалять. Пришлось руками.
Как я и говорил, в forcedeth.c версии 0.6 проблема решена, мак нормально читается.
Не сомневайся =)