Почему мой Lenovo ThinkPad работает под управлением Ubuntu с драйвером Ethernet e1000e?

Вопрос или проблема

У меня совершенно новый ноутбук ThinkPad E16 Gen 2 на Ubuntu 24.01.1 LTS. Недавно у меня возникли проблемы с режимом сна, и я выяснил, что проблема заключается в функции Wake on LAN моего LAN-адаптера.

В процессе устранения этой проблемы я заметил, что у меня используется драйвер e1000e, который, насколько я понимаю, устарел и на практике используется только в виртуальных машинах, где нет лучшего варианта.

Почему выбирается драйвер e1000e? Я ожидал, что будет использоваться более современный драйвер.

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

Сухие детали:

❯ cat /etc/*release* | grep PRETTY_NAM
PRETTY_NAME="Ubuntu 24.04.1 LTS"

❯ sudo dmidecode -s system-version 
ThinkPad E16 Gen 2

❯ uname -r        
6.8.0-45-generic

❯ lspci -nnk | grep -i ethernet -A3
00:1f.6 Ethernet controller [0200]: Intel Corporation Device [8086:550b] (rev 20)
    Subsystem: Lenovo Device [17aa:50e1]
    Kernel driver in use: e1000e
    Kernel modules: e1000e

Для справки, выполнение последней команды на другом ноутбуке (Mint), который у меня есть, дало следующий вывод, который ближе к тому, что я ожидаю:

❯ lspci -nnk | grep -i ethernet -A3
3d:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 16)
  DeviceName: Realtek PCIe GBE Family Controller
  Subsystem: Hewlett-Packard Company RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [103c:878a]
  Kernel driver in use: r8169
  Kernel modules: r8169

Для справки, выполнение последней команды на другом ноутбуке (Mint), который у меня есть, дало следующий вывод, который ближе к тому, что я ожидаю:

Если сказать проще, вы используете драйвер e1000e, потому что ваш ноутбук физически имеет интерфейс Ethernet от Intel.¹ Другой ноутбук использует драйвер r8169, потому что в нем установлен чип Ethernet от Realtek. У вас нет свободного выбора драйвера – вы используете тот драйвер, который нужен для физического оборудования, находящегося в ноутбуке.

Даже в виртуальных машинах вы на самом деле не выбираете драйвер как таковой; вы говорите гипервизору, какой чип эмулировать (например, вы настраиваете виртуальную машину с эмулируемым RTL8168), и драйвер, соответственно, следует из этого.

В процессе устранения этой проблемы я заметил, что у меня используется драйвер e1000e, который, насколько я понимаю, устарел и на практике используется только в виртуальных машинах, где нет лучшего варианта.

Нет. Это все еще стандартный драйвер для встроенных гигабитных Ethernet сетевых интерфейсов Intel, например, для всей серии Intel I219, которая встречается в современных настольных компьютерах и ноутбуках; особенно в версиях vPro (AMT/vPro требует, чтобы сетевой интерфейс был частью процессора).

Гигабитный Ethernet сам по себе является довольно старой технологией, и поэтому оборудование не изменилось значительно – новый I219 по-прежнему использует почти тот же интерфейс к ОС хоста, что и старый Intel 82573, что позволяет тому же драйверу поддерживать его с минимальными изменениями. Зачем переделывать что-то по-другому и требовать совершенно новый драйвер, если существующий интерфейс соответствует требованиям?

Фактически, то же самое касается драйвера Realtek r8169: он был изначально написан в 2002 году, что делает его всего на три года моложе e1000e, но он все равно уже более двух десятилетий.

Но то, что делает оба эти драйвера “второстепенными” в виртуальных машинах, мало связано с качеством самих драйверов – это скорее потому, что они требуют от гипервизора эмуляции поведения физического устройства, что всегда менее эффективно, чем VirtIO или другое устройство, спроектированное как виртуальное, из-за различий в том, как, например, организовано пространство памяти.


¹ Более конкретно, он имеет Intel I219-V (версия 18) как часть процессора/чипсета Meteor Lake. Код -V указывает на то, что это версия vPro, и vPro действительно работает только с Ethernet-интерфейсом, который является частью того же процессора. Ваш другой ноутбук не имеет vPro, поэтому он может использовать любую внешнюю деталь для Ethernet.

Ответ или решение

Ваш вопрос о том, почему ваш Lenovo ThinkPad E16 Gen 2 работает с драйвером e1000e на Ubuntu 24.04.1 LTS, можно объяснить несколькими ключевыми моментами.

  1. Физическое оборудование и драйвера: Вы используете драйвер e1000e, потому что ваш ноутбук оснащен встроенным Ethernet-контроллером от Intel, а именно, контроллером I219-V, который является частью процессора и платформы Meteor Lake. Драйвер e1000e все еще является стандартным драйвером для встроенных гигабитных Ethernet-контроллеров Intel. Другой ноутбук, который вы упомянули, использует драйвер r8169, потому что он имеет контроллер Realtek, что иллюстрирует тот факт, что выбор драйвера зависит от конкретного аппаратного обеспечения, находящегося в вашем устройстве.

  2. Сравнение драйверов: Хотя драйвер e1000e может показаться устаревшим, он до сих пор активно используется в современных системах. Даже с точки зрения виртуальных машин, e1000e предоставляет возможность эмуляции аппаратного обеспечения, что делает его распространенным выбором. Приведу пример: весь спектр Intel I219 серий поддерживается этим драйвером, и, хотя гигобитный Ethernet — это старая технология, интерфейсы не изменились значительно, что позволяет использовать одни и те же драйвера без необходимости создания новых.

  3. Проблемы с функционалом Wake on LAN: Если ваши проблемы с режимом ожидания (suspend) связаны, как вы упомянули, с функционалом Wake on LAN, это может быть также связано с настройками BIOS вашего ноутбука или параметрами конфигурации драйвера. Убедитесь, что функции Wake on LAN включены в BIOS, и проверьте настройки сетевого интерфейса в Ubuntu.

  4. Обновление драйверов: Если вы все же хотите попробовать использовать более современные драйверы или обновленные версии, то вам следует следить за обновлениями ядра Linux и драйверов в вашем дистрибутиве. Вы можете также попробовать использовать утилиты, такие как ethtool, и установить или активировать необходимые опции на сетевом интерфейсе.

  5. Подводя итог: Ваша ситуация объясняется аппаратной архитектурой вашего устройства и текущими драйверами. Если драйвер e1000e работает должным образом и поддерживает все ваши потребности, нет необходимости в спешной его замене. Тем не менее, стоит обратить внимание на конфигурацию вашей системы и возможности обновления, которые существуют для улучшения работы функций, таких как Wake on LAN.

Если у вас возникнут дополнительные вопросы, пожалуйста, уточните, и я буду рад помочь!

Оцените материал
Добавить комментарий

Капча загружается...