Нет, если вы хотите встроить драйверы в ядро. Отличным дистрибутивом Linux на основе исходного кода, который может помочь с использованием пользовательской конфигурации ядра, будет Gentoo
, или вы можете просто использовать диспетчер пакетов текущих дистрибутивов, чтобы получить исходный код ядра Linux (, обычно пакет dev и заголовков )и использовать make config
, чтобы пройти через необходимое оборудование, необходимое для целевой системы, и изменить каждое значение с M
на *
.
Более подробные инструкции можно найти в документации
.
Гигабитное сетевое соединение Intel 82579LM (Льюисвилль )по умолчанию включает разгрузку, и отключение разгрузки решает эту проблему.
Определить устройство NIC:
ip addr show
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
Определить, включена ли разгрузка (на):
sudo ethtool -k eno1
tcp-segmentation-offload: on
generic-segmentation-offload: on
Для проверки временно (сброс после каждой перезагрузки )отключить разгрузку:
sudo ethtool -K eno1 tso off
sudo ethtool -K eno1 gso off
Записи журнала «Обнаружено зависание аппаратного блока» и «Непредвиденный сброс адаптера» должны исчезнуть.
Чтобы добавить постоянное изменение конфигурации с отключенным NetworkManager:
sudo nano /etc/network/interfaces
Добавьте следующее:
post-up /sbin/ethtool -K eno1 tso off gso off
-> Ctrl + o -> Enter -> Ctrl + x
Перезагрузите компьютер.
Определить, отключена ли разгрузка (выкл.):
sudo ethtool -k eno1
tcp-segmentation-offload: off
generic-segmentation-offload: off
Я потратил несколько дней на устранение неполадок и надеюсь, что это поможет другим.
----------Диспетчер сети----------
Мне нужно было отключить разгрузку только в этом конкретном сценарии с отключенным NetworkManager и использованием моста ядра Linux для QEMU/KVM. До того, как настроил бридж, не замечал, есть ли проблема с зависаниями и ресетами. Если это так, вы можете добавить соответствующие команды в сценарий запуска, чтобы получить тот же результат, продолжая использовать NetworkManager. Следующее не проверено:
sudo crontab -e
Нажмите кнопку "1" для нано.
В последней строке введите следующее:
@reboot sleep 10 && ethtool -K eno1 tso off
@reboot sleep 10 && ethtool -K eno1 gso off
sudo shutdown -r now
----------левый выход----------
*-network
description: Ethernet interface
product: 82579LM Gigabit Network Connection (Lewisville)
vendor: Intel Corporation
physical id: 19
bus info: pci@0000:00:19.0
logical name: eno1
version: 05
serial: <REMOVED>
size: 1Gbit/s
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=3.2.6-k duplex=full firmware=0.13-4 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
resources: irq:30 memory:df900000-df91ffff memory:df925000-df925fff ioport:f020(size=32)