У меня проблема с новым ноутбуком ASUSPRO B8430UA : его Intel Ethernet Connection I219-V не работает под Linux. На самом деле, я попробовал два разных ноутбука этой модели, и у обоих была одна и та же проблема.
Драйвер Linux используется e1000e, он выдает следующие сообщения при загрузке Linux (Ubuntu 16.04):
$ dmesg | grep e1000e
[ 5.643760] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[ 5.643761] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[ 5.644308] e1000e 0000:00:1f.6: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
[ 5.877838] e1000e 0000:00:1f.6: The NVM Checksum Is Not Valid
[ 5.907340] e1000e: probe of 0000:00:1f.6 failed with error -5
Я попытался установить последнюю версию 3.3.4 e1000e, но это не помогло (хотя я испортил ядро).
Я задал вопросы по этому поводу в списке рассылки e1000-devel , и мне посоветовали связаться с производителем моего ноутбука, потому что "Контрольная сумма NVM неверна" означает, что содержимое энергонезависимой памяти моего чипа Ethernet повреждено, или, по крайней мере, это не соответствует контрольной сумме (к сожалению, я не специалист и не могу объяснить это более точно).
Я задал вопрос в службу поддержки Intel, и они ответили, что они не заботятся о системах OEM (встроенные чипы Ethernet в ноутбуках) и что мне следует обратиться в ASUS:
К сожалению, так как ваша система является OEM, наши варианты поддержки крайне ограничены. Возможно, производитель ноутбука изменил программное или аппаратное обеспечение, поэтому поддержка и драйверы для таких систем предоставляются непосредственно производителем ноутбука.
Я связался со службой поддержки ASUS, но они ответили, что у них нет инструментов для проверки или восстановления содержимого NVM, и что, если я найду такие инструменты, они будут рады узнать об этом. Они также объяснили, что они должны поддерживать только исходную аппаратную и программную конфигурацию, и эта модель ноутбука продается с Windows 7. Под Windows 7 мой Ethernet работает нормально. Согласно тому, что я узнал, Windows просто не проверяет контрольную сумму NVM.
Я обнаружил, что в одном подобном случае в 2011 году проблему можно было решить с помощью утилиты загрузки Intel Ethernet Connections:
Тем не менее, ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ в последнем абзаце предупреждает:
Вам, вероятно, нужно знать, что утилита Intel(R) Ethernet Connections Boot UI НЕ предназначена для использования с встроенными (также известными как OEM) сетевыми картами (для плат PCI), поэтому нет точного способа предсказать его взаимодействие с другие компоненты платы, такие как USB или SOUND контроллеры.
Описание BootUtil версии 1.6.13.0 также говорит о том, что он не предназначен для использования с встроенными контроллерами Ethernet:
Утилита прошивки Intel(R) для флэш-памяти Ethernet (BootUtil) - это утилита, которую можно использовать для программирования дополнительного ПЗУ PCI во флэш-памяти поддерживаемых сетевых адаптеров на основе Intel PCI и PCI-Express, а также для обновления конфигураций.
[...]
OEM-производители могут предоставлять собственные образы прошивки для сетевых адаптеров OEM-производителей. Пожалуйста, обратитесь к инструкциям, данным OEM.
Однако есть параграф, который я не понял:
Комбинации образов PXE+EFI и iSCSI+EFI поддерживаются для всех универсальных адаптеров OEM, однако поддержка ограничена устройствами, которые поддерживают обе технологии в виде дискретных образов.
Кроме того, в комментарии 5 на 2008 вопрос , где NVM получал испорченного из - за драйвера e1000e ошибки, рекомендуется:
Пожалуйста, НЕ запускайте ibautil, так как некоторые сайты в Интернете предлагают решить эту проблему. Скорее всего, вам придется заменить материнскую плату, чтобы вернуть работоспособность локальной сети.
IBAUTIL является одним из предшественников BootUtil.
В любом случае я решил запустить BootUtil из-под Linux без параметров командной строки, чтобы получить «список всех поддерживаемых сетевых портов Intel, найденных в системе». Вот что у меня есть:
$ sudo ./bootutil64e
Intel(R) Ethernet Flash Firmware Utility
BootUtil version 1.6.13.0
Copyright (C) 2003-2016 Intel Corporation
Type BootUtil -? for help
Port Network Address Location Series WOL Flash Firmware Version
==== =============== ======== ======= === ============================= =======
1 D017C2201F59 0:31.6 Gigabit N/A FLASH Not Present
Я хотел бы понять, что означает "FLASH Not Present" в этом контексте, и какие у меня есть варианты для исправления контрольной суммы.
Обновление 1. Согласно комментарию, который я получил из списка рассылки e1000-devel о "FLASH Not Present",
Вспышка и NVM - это две разные вещи. Флэш-память обеспечивает такие вещи, как загрузка PXE и iSCSI, тогда как NVM хранит такие вещи, как сетевой адрес.
Обновление 2. Я нашел Intel, техническое описание для I219, раздел 10.3.2.2 Контрольной сумма Слова Расчет говорит:
Слово контрольной суммы (Word 0x3F, байты NVM 0x7E и 0x7F) используется, чтобы убедиться, что базовое изображение NVM является допустимым изображением. Значение этого слова должно быть рассчитано так, чтобы после добавления всех слов (0x00-0x3F) / байтов (0x00-0x7F), включая само слово контрольной суммы, сумма должна была составлять 0xBABA. Начальное значение в 16-битном регистре суммирования должно быть 0x0000, и бит переноса должен игнорироваться после каждого добавления.