3

Я установил новую материнскую плату (и ЦП, и ОЗУ) (ASRock H97 Pro4 с встроенной технологией Intel Gigabit Ethernet) и пытаюсь заставить работать мой существующий LMDE (Linux Mint Debian Edition). Пока все хорошо, но нет интернета.

Интернет управляется с помощью командной строки, используя pon dsl-provider . Это сейчас показывает

Plugin rp-pppoe.so loaded.
/usr/sbin/pppd: In file /etc/ppp/peers/dsl-provider: unrecognized option 'eth1'

sudo pppoeconf показывает: «Извините, рабочая карта Ethernet не найдена».

/sbin/ifconfig показывает, что нет eth0 или eth1 вообще. Единственная запись там - lo (Loopback).

Есть некоторые другие статьи, которые предполагают, что eth0 или eth1 могли быть просто переименованы во что-то другое, например в enp0s10 . Но тогда переименованная вещь появится в ifconfig, чего нет.

Я также попытался sudo service networking stop (работает) и sudo service networking start . Вторая команда дает:

[....] Configuring network interfaces...eth1: ERROR while getting interface flags: No such device
Failed to bring up dsl-provider.
done.

И все же только lo в IFCONFIG.

ip addr show eth0 (и аналогично с eth1) показывает:

dig: couldn't get address for 'resolver1.opendns.com': not found

lspci -v показывает:

[..]

00:19.0 Ethernet controller: Intel Corporation Ethernet Connection (2) I218-V
        Subsystem: ASRock Incorporation Device 15a1
        Flags bus master, fast devsel, latency 0, IRQ 5
        Memory at f7200000 (32-bit, non-prefetchable) [size=128K]
        Memory at f7238000 (32-bit, non-prefetchable) [size=4K]
        I/O ports at f040 [size=32]
        Capabilities: <access denied>

[..]

РЕДАКТИРОВАТЬ I: Забавно, я думал, что уже написал что-то о файле /etc/udev/rules.d/70-persistent-net.rules . Может быть, я удалил его при написании поста.

# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:52:fe:13", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x10ec:/sys/devices/pci0000:00/0000:00:1c.5/0000:04:00.0 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1f:d0:91:e1:68", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x1814:/sys/devices/pci0000:00/0000:00:1e.0/0000:05:01.0 (rt61pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:21:29:66:32:7a", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"

# USB device 0x:0x (r8712u)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:14:5c:8b:db:40", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan1"

Я полагаю, что две строки, связанные с Ethernet, обе от старой платы. Так что, если я уберу их, ничего не останется.

Кроме того, файл говорит, что он будет восстановлен с помощью /lib/udev/write_net_rules . Согласно другим статьям в Интернете, это может произойти вручную или автоматически при перезагрузке, если файл удален / переименован / отсутствует. В моем случае, однако, ничего не восстанавливается при перезагрузке. Запуск /lib/udev/write_net_rules вручную сначала показывает «отсутствует $ INTERFACE». При следовании этим инструкциям в ip addr show $INTERFACE происходит сбой. Вот почему я разместил ip addr show eth0 выше. Выполнение этого другим способом (не помню) показало, что выходной файл заблокирован (и я не думаю, что речь шла о разрешениях на запись в файл).


РЕДАКТИРОВАТЬ II: Я установил дополнительную плату Ethernet Ethernet, чтобы посмотреть, работает ли это. Сначала это добавило строку в lspci, но ничего нового в ifconfig. Теперь после дополнительных перезагрузок и установки дополнительного HD (побочный эффект?) Я получаю eth2 в ifconfig. Я не знаю, это карта PCI или встроенная карта.

sudo pppoeconf действительно берет eth2, но затем не может настроить интернет-соединение с ним, говоря: «Концентратор доступа вашего провайдера не ответил».

В любом случае, я, вероятно, должен попытаться переименовать его обратно в eth0 / eth1 вместо eth2. Работаю над этим.

2 ответа2

2

Ну, думаю, но - я надеюсь - прямо в точку.

Некоторый фон

В наши дни именование устройств и создание записей в файловой системе /dev управляется демоном udev , который обязательно устанавливается в стандартные Debian. Чтобы сделать имена интерфейсов сетевых карт предсказуемыми, udev привязывает их к своим MAC-адресам (низкоуровневый аппаратный адрес, который для карт Ethernet виден только на уровне Ethernet). Когда udev наблюдает, как сетевой интерфейс появляется впервые, он генерирует для него имя etnN и обновляет файл с правилами именования сетевого интерфейса, который в Debian

% ls -1 /etc/udev/rules.d/*net*
/etc/udev/rules.d/70-persistent-net.rules

Кстати, я полагаю, что обновляет этот файл не сам udev , а какой-то сценарий, предоставляемый Debian для вызовов udev когда он видит устройство сетевой карты, но точная механика не имеет отношения к нашему случаю.

Проблема с заменой материнской платы состоит в том, что новая карта имеет MAC-адрес, отличный от адреса карты на старой материнской плате, и поэтому интерфейс, созданный для этой новой карты, имеет имя, отличное от тех, которые уже есть в файле "правил".

Как исправить

Я просто открыл этот файл правил в любом текстовом редакторе, удалил все строки, относящиеся к карточкам со старой материнской платы, и отредактировал единственную оставшуюся строку, чтобы прочитать eth0 для имени интерфейса.

После сохранения файла вы можете запустить

# udevadm trigger

чтобы ваша сетевая карта снова появилась под именем eth0 . (Если это не помогает, запустите service udev restart или перезагрузите компьютер в крайнем случае.)


Примечание: ip addr ... не очень полезен в вашем случае, потому что он имеет дело с IP-уровнем, и вы боретесь с настройкой уровня связи - более низкого. Таким образом, вы попробуете команду ip link чтобы вывести список доступных сетевых ссылок, которые обычно означают карты доступа к сети.

0

Вот что я сделал, что (вроде) решило проблему для меня. Я бы не сказал, что это универсальное решение. Тем более, что не у всех есть запасная сетевая карта PCI.

  1. Установите сетевую карту PCI (в дополнение к встроенной карте). В моем случае это старый Realtek RTL-8139.
  2. Переименуйте /etc/udev/rules.d/70-persistent-net.rules .
  3. (возможно, делать какие-то несвязанные вещи, например, подключать новый HD или танцевать у костра)
  4. Перезагружать.
  5. Запустите sudo pppoeconf . Если он попросит вас сделать резервную копию, сделайте это. Затем следуйте инструкциям.

Результат (для меня):

  • ifconfig показывает добавленную PCI-карту Ethernet как eth0, но никаких дальнейших записей eth * (только lo и ppp0).
  • Файл /etc/udev/rules.d/70-persistent-net.rules НЕ был регенерирован. Это отсутствует, не существует.
  • Интернет работает.

Я предполагаю, что это означает, что встроенный Ethernet еще не был распознан. Я предполагаю, что новый встроенный Ethernet несколько технически превосходит старую карту PCI. Но я не знаю, насколько это имеет практическое значение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .