Ubuntu 20.04 Проблема с сетевым подключением Intel, ошибка в igc?

Новая сборка на материнской плате Gigabyte z490 Vision G. Загорелась связь с сетью, кабель напрямую к коммутатору. Я установил другую сетевую карту, подключенную к тому же коммутатору, и я использую ее для подключения, потому что она отлично работает (драйвер Intel igb). Встроенный сетевой порт иногда появляется после перезагрузки, но обычно не показывает канал и скорость / дуплекс «Неизвестно!»

Как вы думаете, что происходит? Какая еще информация вам нужна?

Я не думаю, что это кабель cat6, я пробовал несколько и несколько портов коммутатора и кабели, которые успешно используются на других портах. Это сетевая карта 2,5 Гбит / с, подключенная к коммутатору 1 Гбит / с, я мог бы попробовать подобрать cat7 и посмотреть, поможет ли это.

Запрошенные данные добавлены в конце, нет каталога / etc / network / interfaces, и все в / etc / network выглядит стандартным.

Установка сервера Ubuntu 20.04.

$ ethtool enp5s0 
Settings for enp5s0:
    Supported ports: [ ]
    Supported link modes:   10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
                            1000baseT/Full 
                            2500baseT/Full 
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Supported FEC modes: Not reported
    Advertised link modes:  10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
                            1000baseT/Full 
                            2500baseT/Full 
    Advertised pause frame use: Symmetric
    Advertised auto-negotiation: Yes
    Advertised FEC modes: Not reported
    Speed: Unknown!
    Duplex: Unknown! (255)
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: internal
    Auto-negotiation: on
    MDI-X: off (auto)
Cannot get wake-on-lan settings: Operation not permitted
    Current message level: 0x00000007 (7)
                   drv probe link
    Link detected: no

$ lspci -knn
5:00.0 Ethernet controller [0200]: Intel Corporation Device [8086:15f3] (rev 02)
    Subsystem: Gigabyte Technology Co., Ltd Device [1458:e000]
    Kernel driver in use: igc
    Kernel modules: igc

$ dmesg | grep igc
[    3.181094] igc 0000:05:00.0: 4.000 Gb/s available PCIe bandwidth (5 GT/s x1 link)
[    3.181096] igc 0000:05:00.0 eth0: MAC: 18:c0:4d:00:00:00
[    3.181657] igc 0000:05:00.0 enp5s0: renamed from eth0

           *-network
                description: Ethernet interface
                product: Intel Corporation
                vendor: Intel Corporation
                physical id: 0
                bus info: pci@0000:05:00.0
                logical name: enp5s0
                version: 02
                serial: 18:c0:4d:00:00:00
                capacity: 1Gbit/s
                width: 32 bits
                clock: 33MHz
                capabilities: bus_master cap_list rom ethernet physical 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
                configuration: autonegotiation=on broadcast=yes driver=igc driverversion=0.0.1-k latency=0 link=no multicast=yes port=twisted pair slave=yes
                resources: irq:17 memory:51a00000-51afffff memory:51b00000-51b03fff memory:51900000-519fffff

Запрошенные данные:

$ cat /etc/netplan/*.yaml
network:
  ethernets:
    enp6s0f0:
      dhcp4: no
    enp6s0f1:
      dhcp4: no
    enp5s0:
      dhcp4: no
      optional: true
  bonds:
    bond0:
      interfaces: [enp6s0f0, enp6s0f1, enp5s0]
      addresses: [192.168.37.10/24]
      gateway4: 192.168.37.1
      nameservers:
        addresses: [192.168.37.1]
        search: [home.lan]
      parameters:
        mode: balance-alb
  version: 2

$ sudo lshw -C network 
  *-network                 
       description: Ethernet interface
       product: Intel Corporation
       vendor: Intel Corporation
       physical id: 0
       bus info: pci@0000:05:00.0
       logical name: enp5s0
       version: 02
       serial: 18:c0:4d:00:00:00
       capacity: 1Gbit/s
       width: 32 bits
       clock: 33MHz
       capabilities: pm msi msix pciexpress bus_master cap_list rom ethernet physical 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=igc driverversion=0.0.1-k latency=0 link=no multicast=yes port=twisted pair slave=yes
       resources: irq:17 memory:51a00000-51afffff memory:51b00000-51b03fff memory:51900000-519fffff
  *-network:0
       description: Ethernet interface
       product: 82576 Gigabit Network Connection
       vendor: Intel Corporation
       physical id: 0
       bus info: pci@0000:06:00.0
       logical name: enp6s0f0
       version: 01
       serial: 00:1b:21:00:00:00
       size: 1Gbit/s
       capacity: 1Gbit/s
       width: 32 bits
       clock: 33MHz
       capabilities: pm msi msix pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=igb driverversion=5.6.0-k duplex=full firmware=1.5.1 latency=0 link=yes multicast=yes port=twisted pair slave=yes speed=1Gbit/s
       resources: irq:16 memory:51820000-5183ffff memory:51400000-517fffff ioport:3020(size=32) memory:51844000-51847fff memory:51848000-51867fff memory:51868000-51887fff
  *-network:1
       description: Ethernet interface
       product: 82576 Gigabit Network Connection
       vendor: Intel Corporation
       physical id: 0.1
       bus info: pci@0000:06:00.1
       logical name: enp6s0f1
       version: 01
       serial: f6:3b:fc:00:00:00
       size: 1Gbit/s
       capacity: 1Gbit/s
       width: 32 bits
       clock: 33MHz
       capabilities: pm msi msix pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=igb driverversion=5.6.0-k duplex=full firmware=1.5.1 latency=0 link=yes multicast=yes port=twisted pair slave=yes speed=1Gbit/s
       resources: irq:17 memory:51800000-5181ffff memory:51000000-513fffff ioport:3000(size=32) memory:51840000-51843fff memory:51888000-518a7fff memory:518a8000-518c7fff
-2
задан 4 June 2020 в 07:16

5 ответов

Я отвечу на свой вопрос, это проблема с прошивкой Intel. Надеюсь, что это поможет кому-то еще.

Gigabyte разместил на своем веб-сайте прошивку NIC, предназначенную только для Windows, https://download.gigabyte.com/FileList/Driver/mb_driver_intel-i225-firmware-tool.zip . У Intel есть утилиты Linux NVMUpdate на их сайте, но, насколько я могу судить, они не поставляются с этой прошивкой. Доступно по адресу https://downloadcenter.intel.com/download/22283/Intel-Ethernet-Adapter-Complete-Driver-Pack

. Итак, загрузите оба, скопируйте FXVL_15F3_V_2MB_1.45.bin из средства обновления Windows в средство обновления Windows Местоположение Linux, в моем случае:

cp ~/Nvmupdate145/i225/FXVL_15F3_V_2MB_1.45.bin ~/NVMUpdatePackage/700_Series/700Series/Linux_x64

Добавьте это в nvmupdate.cfg:

BEGIN DEVICE
    DEVICENAME: NNT
    VENDOR:     8086
    DEVICE:     15F3
    SUBVENDOR:  1458
    SUBDEVICE:  E000
    NVM IMAGE:  FXVL_15F3_V_2MB_1.45.bin
    IMAGE DOWNGRADE: TRUE
END DEVICE

И запустите утилиту. Вы должны увидеть:

$ sudo ./nvmupdate64e 

Intel(R) Ethernet NVM Update Tool
NVMUpdate version 1.35.23.3
Copyright (C) 2013 - 2020 Intel Corporation.


WARNING: To avoid damage to your device, do not stop the update or reboot or power off the system during this update.
Inventory in progress. Please wait [*****.....]


Num Description                          Ver.(hex)  DevId S:B    Status
=== ================================== ============ ===== ====== ==============
01) Intel(R) Gigabit ET Dual Port         1.5(1.5)   10C9 00:002 Update not    
    Server Adapter                                               available
02) Intel(R) Ethernet Controller (2)    1.69(1.45)   15F3 00:006 Update        
    I225-V                                                       available

Options: Adapter Index List (comma-separated), [A]ll, e[X]it
Enter selection: a
Would you like to back up the NVM images? [Y]es/[N]o: n
Update in progress. This operation may take several minutes.
[********+.]


Num Description                          Ver.(hex)  DevId S:B    Status
=== ================================== ============ ===== ====== ==============
01) Intel(R) Gigabit ET Dual Port         1.5(1.5)   10C9 00:002 Update not    
    Server Adapter                                               available
02) Intel(R) Ethernet Controller (2)    1.69(1.45)   15F3 00:006 Update        
    I225-V                                                       successful


Tool execution completed with the following status: All operations completed successfully.
Press any key to exit.

И даже не нужно было перезагружаться:

$ ethtool enp6s0 
Settings for enp6s0:
    Supported ports: [ ]
    Supported link modes:   10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
                            1000baseT/Full 
                            2500baseT/Full 
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Supported FEC modes: Not reported
    Advertised link modes:  10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
                            1000baseT/Full 
                            2500baseT/Full 
    Advertised pause frame use: Symmetric
    Advertised auto-negotiation: Yes
    Advertised FEC modes: Not reported
    Speed: 1000Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: internal
    Auto-negotiation: on
    MDI-X: off (auto)
Cannot get wake-on-lan settings: Operation not permitted
    Current message level: 0x00000007 (7)
                   drv probe link
    Link detected: yes
1
ответ дан 19 June 2020 в 21:35

Я смог решить эту проблему благодаря вашему обходному пути.

У меня была другая материнская плата, поэтому я скачал Драйвер локальной сети Windows с веб-сайта Asus по адресу
https://www.asus.com/Motherboards/ROG-STRIX-Z490-E-GAMING/HelpDesk_Download/ .

Затем я загрузил утилиту обновления NVM по адресу
https://downloadcenter.intel.com/download/24769 , поскольку он имеет версию для Linux.

Имя файла должно быть похоже на FXVL_15F3_ASUS.bin , но окончание будет отличаться в зависимости от различных производителей материнских плат Z490. Это можно найти на веб-сайте драйвера для конкретной материнской платы, которую вы используете.

После распаковки этого файла у меня остались два zip-файла:

  • I225V_End_User_FW_UPDATE.zip
  • I225V_Intel_Gigabit_Ethernet_Driver_V1.0.164_WIN10 ,
  1. Я нашел FXVL_15F3_ASUS.bin в I225V_End_User_FW_UPDATE.zip и скопировал этот файл в каталог / 700Series / Linux_x64 / для каталога обновления 1165221]. Утилита.

  2. Далее нам нужно найти файл конфигурации для драйвера i225. После разархивирования и поиска файлов драйвера локальной сети Asus я нашел правильные настройки конфигурации в config_i225.txt в I225V_End_User_FW_UPDATE.zip . Опять же, местоположение config_i225.txt может отличаться в зависимости от драйвера локальной сети производителя материнской платы.

  3. Наконец, я перешел на nvmupdate.cfg в / 700Series / Linux_x64 / , и добавил это в конец файла:

     BEGIN DEVICE zip  и скопируйте этот файл в каталог  / 700Series / Linux_x64 /  для утилиты обновления NVM. 

  4. Далее нам нужно найти файл конфигурации для драйвера i225. После разархивирования и поиска файлов драйвера локальной сети Asus я нашел правильные настройки конфигурации в config_i225.txt в I225V_End_User_FW_UPDATE.zip . Опять же, местоположение config_i225.txt может отличаться в зависимости от драйвера локальной сети производителя материнской платы.

  5. Наконец, я перешел на nvmupdate.cfg в / 700Series / Linux_x64 / , и добавил это в конец файла:

     BEGIN DEVICE zip  и скопируйте этот файл в каталог  / 700Series / Linux_x64 /  для утилиты обновления NVM. 

  6. Далее нам нужно найти файл конфигурации для драйвера i225. После разархивирования и поиска файлов драйвера локальной сети Asus я нашел правильные настройки конфигурации в config_i225.txt в I225V_End_User_FW_UPDATE.zip . Опять же, местоположение config_i225.txt может отличаться в зависимости от драйвера локальной сети производителя материнской платы.

  7. Наконец, я перешел на nvmupdate.cfg в / 700Series / Linux_x64 / , и добавил это в конец файла:

     BEGIN DEVICE После разархивирования и поиска файлов драйвера локальной сети Asus я нашел правильные настройки конфигурации в  config_i225.txt  в  I225V_End_User_FW_UPDATE.zip . Опять же, местоположение  config_i225.txt  может отличаться в зависимости от драйвера локальной сети производителя материнской платы. 

  8. Наконец, я перешел на nvmupdate.cfg в / 700Series / Linux_x64 / , и добавил это в конец файла:

     BEGIN DEVICE После разархивирования и поиска файлов драйвера локальной сети Asus я нашел правильные настройки конфигурации в  config_i225.txt  в  I225V_End_User_FW_UPDATE.zip . Опять же, местоположение  config_i225.txt  может отличаться в зависимости от драйвера локальной сети производителя материнской платы. 

  9. Наконец, я перешел на nvmupdate.cfg в / 700Series / Linux_x64 / , и добавил это в конец файла:

     BEGIN DEVICE
     DEVICENAME: NNT
     Продавец: 8086
     УСТРОЙСТВО: 15F3
     СУБВЕНДОР: 1043
     ПОДРАЗДЕЛЕНИЕ: 87D2
     NVM IMAGE: FXVL_15F3_ASUS.bin
     СНИЖЕНИЕ ИЗОБРАЖЕНИЯ: ИСТИНА
    КОНЕЦ УСТРОЙСТВА
    
  10. После этого введите sudo ./nvmupdate64e. После следования инструкциям на экране Ethernet должен немедленно подключиться. Надеюсь, что это поможет любому, кто столкнулся с этой проблемой!

0
ответ дан 19 June 2020 в 21:35

Джон, большое спасибо за публикацию после того, как ты сам во всем разобрался. Я только что закончил новую сборку с Gigabyte Z490i и был совершенно сбит с толку, когда встроенная локальная сеть работала, а потом не работала, а затем работала, а затем не работала.

Когда я пишу это, я собираюсь попробовать ваш метод, но сначала я проверяю, что все выглядит одинаково:

% ethtool enp4s0
Settings for enp4s0:
    Supported ports: [ ]
    Supported link modes:   10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
                            2500baseT/Full
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Supported FEC modes: Not reported
    Advertised link modes:  10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
                            1000baseT/Full
                            2500baseT/Full
    Advertised pause frame use: Symmetric
    Advertised auto-negotiation: Yes
    Advertised FEC modes: Not reported
    Speed: 1000Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: internal
    Auto-negotiation: on
    MDI-X: off (auto)
Cannot get wake-on-lan settings: Operation not permitted
    Current message level: 0x00000007 (7)
                   drv probe link
    Link detected: yes
% lspci -knn | grep -i -C3 ethernet
04:00.0 Ethernet controller [0200]: Intel Corporation Device [8086:15f3] (rev 01)
    Subsystem: Gigabyte Technology Co., Ltd Device [1458:e000]
    Kernel driver in use: igc
    Kernel modules: igc
[    3.572001] igc 0000:04:00.0: 4.000 Gb/s available PCIe bandwidth (5 GT/s x1 link)
[    3.572005] igc 0000:04:00.0 eth0: MAC: [redacted]
[    3.581425] igc 0000:04:00.0 enp4s0: renamed from eth0
[   14.359088] igc 0000:04:00.0 enp4s0: igc: enp4s0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX

Первое препятствие заключалось в том, что https://download.gigabyte.com/FileList/Driver /mb_driver_intel-i225-firmware-tool.zip был каким-то странным zip-форматом, который я не мог распаковать ничем, кроме компьютера с Windows. Я так и сделал, скопировал файл FXVL_15F3_V_2MB_1.45.bin на сервер и выполнил ваши инструкции.

% sudo ./nvmupdate64e

Intel(R) Ethernet NVM Update Tool
NVMUpdate version 1.35.33.4
Copyright (C) 2013 - 2020 Intel Corporation.


WARNING: To avoid damage to your device, do not stop the update or reboot or power off the system during this update.
Inventory in progress. Please wait [**|.......]


Num Description                          Ver.(hex)  DevId S:B    Status
=== ================================== ============ ===== ====== ==============
01) Intel(R) Ethernet Controller        1.56(1.38)   15F3 00:004 Update
    I225-V                                                       available

Options: Adapter Index List (comma-separated), [A]ll, e[X]it
Enter selection: 1
Would you like to back up the NVM images? [Y]es/[N]o: y

И после:

Num Description                          Ver.(hex)  DevId S:B    Status
=== ================================== ============ ===== ====== ==============
01) Intel(R) Ethernet Controller        1.69(1.45)   15F3 00:004 Update not
    I225-V                                                       available

К сожалению, это не помогло моей проблеме.

После перезагрузки ссылка по-прежнему не работала, как будто кабель не был подключен. В настоящее время единственный найденный мной способ заставить ее работать — это загрузиться в установщик Ubuntu live, перейти к сути. где я могу настроить сеть, получить IP-адрес через DHCP, затем перезагрузиться в мою установку на диск, и она работает до следующей перезагрузки. Очевидно, это не идеально.

2
ответ дан 19 August 2020 в 15:44

Вариант 1. Переключиться на Pop!_OS Kernel

У меня такая же сетевая карта (I225-V) на материнской плате Asus B550 (ROG-STRIX-B550-I). Я заставил сетевую карту работать (случайно) переключившись на последнее ядро ​​​​Pop!_OS 5.4.

  1. Добавьте репозиторий Pop:
sudo add-apt-repository ppa:system76/pop
  1. Выполните подходящее обновление.

  2. И когда вы делаете подходящее обновление, оно должно рекомендовать обновить ядро ​​до версии Pop, что-то вроде этого 5.4.0-76XX-generic.

76 означает, что это специальное ядро ​​от Pop, а следующие два числа обозначают версию ядра Debian.

Сейчас я использую ядро ​​5.4.0-7634-generic с Xubuntu. Сетевая карта появляется и регистрируется на скорости 1 Гбит/с.

Вариант 2: Компиляция модуля вне дерева с использованием исходного кода Pop!_OS

Если вы не хотите заходить так далеко, чтобы переключать ядра, то вы можете скомпилировать драйвер igc из исходного кода Pop, используя Ubuntu. сборка ядра в качестве базовой библиотеки.

  1. Загрузить последний исходный код из репозитория Попа на github:
wget https://github.com/pop-os/linux/archive/master_focal.zip
  1. Распаковать архив:
unzip master_focal.zip
  1. Перейти в исходный каталог драйвера:
cd linux-master_focal/drivers/net/ethernet/intel/igc
  1. Скомпилировать драйвер, используя текущий каталог сборки ядра 5.4:
make -C /lib/modules/`uname -r`/build M=$PWD

Например, я скомпилировал драйвер, используя исходные файлы ядра 5.4.0-42-generic:

make -C /lib/modules/5.4.0-42-generic/build M=$PWD

Замените 5.4.0-42-generic на uname -r.

Вы можете убедиться, что все работает, с помощью modinfo:

modinfo igc.ko

Vermagic в выходных данных должен соответствовать вашему текущему ядру, например:

vermagic:       5.4.0-42-generic SMP mod_unload
  1. Теперь установите объектный файл драйвера. Я решил сделать это вручную, чтобы я мог сделать резервную копию драйвера Ubuntu на случай, если что-то пойдет не так с драйвером Pop.
sudo cp -vp igc.ko /lib/modules/5.4.0-42-generic/kernel/drivers/net/ethernet/intel/igc/igc.ko-latest-pop
cd /lib/modules/5.4.0-42-generic/kernel/drivers/net/ethernet/intel/igc/
sudo cp -pv igc.ko igc.ko-5.4.0-42-generic-original
sudo cp -pv igc.ko-latest-pop igc.ko
  1. Перезагрузитесь и наслаждайтесь сетевой картой, которая работает с последним драйвером от Pop!

После загрузки ядра с обновленным драйвером вы можете проверить, используете ли вы скомпилированный драйвер, используя modinfo:

modinfo igc

Имя файла должно совпадать с расположением установленного вами драйвера, например:

filename:       /lib/modules/5.4.0-42-generic/kernel/drivers/net/ethernet/intel/igc/igc.ko

ВНИМАНИЕ YMMV. Если вы решите скомпилировать драйверы Pop, убедитесь, что у вас есть работающая резервная копия ядра, и что вам удобно переключать ядра в grub на случай, если вы загрузите ядро ​​во время установки драйвера. Я отредактировал настройки grub по умолчанию (в /etc/default/grub), чтобы иметь возможность легко переключать ядра.

GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=9

Внимание! С последней версией драйвера все еще могут возникнуть проблемы.

Я заметил, что даже в этой версии драйвера igc все еще есть ошибки в ядре 5.4. Например, статистика /proc/net/dev пуста и не обновляется под драйвером igc для сетевой карты. Статистика из ethtool -S обновляется. Я не уверен, точны они или нет.

Эксперимент

Я скомпилировал и установил драйвер igc из исходников ядра linux-5.6.19. Похоже, что он также работает под ядром Pop 5.4, но версия драйвера 5.6 по-прежнему имеет проблему со статистикой /proc/net/dev.

Я также попытался скомпилировать последний исходный код драйвера igc для ядер 5.7 и 5.8. И это не подходит, если вы используете источник 5.4. Существуют проблемы с зависимостями в версиях 5.7 и 5.8.

Похоже, что ядро ​​5.8 добавляет некоторые зависимости управления питанием, которых нет в 5.4.Я получаю следующую ошибку:

error: ‘DPM_FLAG_NO_DIRECT_COMPLETE’ undeclared

при запуске:

make -C /lib/modules/5.4.0-7634-generic/build M=$PWD

используя последний исходный код от 19.08.2020:

svn export https://github.com/torvalds/linux.git/trunk/drivers/net/ethernet/intel/igc
1
ответ дан 20 August 2020 в 00:29

Основываясь на ответах выше, для моей системы Ubuntu 20.04.1, работающей на материнской плате Asus WS X299 SAGE II с набором микросхем Intel I225-LM, я переключился на 5.8.7 основное универсальное ядро ​​(последняя строка 5.8 на момент написания этой статьи) с использованием сборок Kernel PPA. (шаги, вдохновленные статьей здесь).

  1. Вам необходимо загрузить следующие файлы из здесь:

    • linux-headers-*all.deb
    • linux-headers-*generic*.deb
    • linux-image -unsigned-*generic*.deb
    • linux-modules-*generic*.deb
  2. После загрузки запустите sudo dpkg -i deb linux*.deb

  3. Перезагрузитесь! (например, sudo reboot)

  4. После резервного копирования и запуска вашей системы вы можете убедиться, что используете ядро ​​5.8.7, запустив uname -sr

Это устранило проблему. У меня были встроенные сетевые карты, и вся система работала стабильно без проблем при высокой нагрузке на память и ЦП в течение нескольких дней подряд.

Сначала я пытался обновить прошивку, но потерпел неудачу, так как у меня I225-LM, а не I225-V. Последний, кажется, имеет обновленную прошивку, которую можно перенести в среду Linux, в то время как я не смог найти аналогичный результат для первого.

4
ответ дан 7 September 2020 в 08:00

Другие вопросы по тегам:

Похожие вопросы: