Page MenuHomeVyOS Platform

update Intel e1000 and e1000e drivers
Closed, ResolvedPublicBUG

Description

the latest VyOS 1.2 daily builds are still using very old drivers for Intel NICs - this prevents newer Intel interfaces from working (for example, VyOS will not recognize an Intel I219-V)

Fruite1000e1000e
VyOS Current 999.2018022603377.3.213.2.6
Intel[[https://downloadcenter.intel.com/download/9180 | 8.0.35]][[https://downloadcenter.intel.com/download/15817 | 3.4.0.2]]

The fix should just be to merge in the Intel-provided e1000 source and e1000e source files to [[https://github.com/vyos/vyos-kernel/tree/current/drivers/net/ethernet/intel | vyos-kernel/drivers/net/ethernet/intel/]], so that the new drivers are built.

Details

Difficulty level
Easy (less than an hour)
Version
999.201802260337
Why the issue appeared?
Will be filled on close

Event Timeline

myura changed Version from 999.201802221520 to 999.201802260337.

The drivers shipped inside the Linux Kernel do not match the Intel ixgbe driver 100%. There are small feature discrepancys.

It would be better to check if newer drivers are in a newer 4.4.x series Kernel release. If not we could:

  • Upgrade Kernel to 4.14
  • Remove the build in drivers and compile the ixgbe driver

From my business Knowledge, I would go down the 4.14 road as brings drivers for other new Hardware, too. Not only Intel NICs.

syncer triaged this task as Normal priority.Feb 27 2018, 1:19 PM

Looking into this I see 47 non merge commits which are not in the mainline Kernel:

(19:28) cpo lnx01:~/vyos-build/packages/vyos-kernel [linux-vyos-4.14.y] # git log --pretty=oneline origin/current...v4.4.113 | grep -v Merge | wc -l
47

Those commits are:

(19:28) cpo lnx01:~/vyos-build/packages/vyos-kernel [linux-vyos-4.14.y] # git log --pretty=oneline origin/current...v4.4.113 | grep -v Merge
08fbb692685304a684ab011b21fd3a2cec32156b T536: Enable 9P Virtio Kernel Modules
0456e0acdcc5b9545723f57ebf489f2a1801a864 T452: Enable support for 5 GHz WiFi AccesPoints w/ DFS
b72a65de9fd1c68c8d371152cfdcbc85d2b0dbd9 add UDF support
5fb76d1e94c254af8731acf35c79bab4e95c505c T389: enable virtio SCSI drivers
14cc3866ddd730e051969c318fc809930904231b add virtio scsi to kernel as loadable module
41e50c5566ecd0cad0e11a8d2d66afeb0b9c85c9 remove Automatically generated lines
26bdeb800ea616faa5bcd00e7f08c926515963ca Enable intel QuickAssist Technology modules
31097c58bc2674bd5f0be5a6d08678af8fcedfa5 dccp: fix freeing skb too early for IPV6_RECVPKTINFO
3cca9b0e560fed8b59a34bd3b2f739ef3110ae05 virtio_net: validate ethtool port setting and explain the user validation
efdfde3539078a7419b6092e8821199c463d2226 ethtool: make validate_speed accept all speeds between 0 and INT_MAX
2bf525732c8ede1ed3014848db7dae69a65cda29 virtio_net: add ethtool support for set and get of settings
5f9e299fd09ac9628929632b69122a37aa12618a ethtool: add speed/duplex validation functions
c648059744eb0c606e25b16447075501623e7b19 add vyos x86_64 defconfig
4e42f195f18c4c8b997c26c142f8df8c509de598 Update kernel config
4c8de1009e13a978bacd5066024d194be983ecbd Update name of struct to prevent conficts.
9aaaf3fbc44b91e9921d575a283bebe624972a91 Enable Chacha20 and Poly1305 kernel crypto modules
3580d42e44a462cea7bc70061e1246e224652d28 Build the XHCI module into the kernel. This allows VyOS to boot from USB on very modern Intel chipsets.
8654501441de3ac66b8a903ebe6f66148e8bc0b9 vyos-kernel: update dh_gencontrol with new development build flag
2af70d3624d9318e26188a2e3d5c5e2ab4778c36 Enable missing network drivers.
b8ed510ed8bc585fa449bad07089a538ecb8be4e vyos-kernel: enable EFI stub to allow booting without separate bootloader
6b15c639be2b6930a52a44c694d608b23adc7a19 vyos-kernel: enable inotify support for stackable filesystems in config
25e20e822c340c6ff364f576c9bb50fdba79ce28 vyos-kernel: add inotify support for stackable filesystems (overlayfs)
6033764bb40b08953bf391eacaebbde7aa255313 vyos-kernel: enable IPv6 VTI kernel module for 586-vyos kernel version
653e17a2f1e2320d8acf85a4da1e33545459be6d Update maintainer address
864a1d1289a7e3c7473b7e2044a70e1ea8d4f069 vyos-kernel: enable VXLAN kernel module for 586-vyos kernel version
ea8fa4b3234c8c292d40871cde5082f207290ee2 vyos-kernel: disable kernel debugging for all configs
9f05d9afde79c7f6f169b39f839b70a3f842748d vyos-kernel: disable host virtualisation in the 586-vyos-virt config
fbb2b9a90810739fa424cd9702fa8f9c505137bc vyos-kernel: enable kernel stack overflow protection for all configs
0f29c17c2914e1323f096cb64ba7466d5cad161c vyos-kernel: enable realtek rtl8723ae kernel modules for all configs
ec66a9fb85eaf275d433a81628e8cfde20aa921c * Enabled stack overflow protection (CONFIG_CC_STACKPROTECTOR)
af9021cbdce1bab2f9081085bab469dde540ea17 * Enabled RTL8723AE wifi drivers (CONFIG_RTL8723AE)
cabcb55d564c357eb5ee06b0e91210e46ea903e2 * Disabled kernel debugging (CONFIG_DEBUG_KERNEL), since nobody develops drivers using a production config
4539c8be3296d33c74a1f0cc397e1106068d683b * Disabled Virtualization (CONFIG_VIRTUALIZATION), since a router is not ment to be a kvm host
7457a26bd4664c96caa5b09154bbe8f6316aa8f3 Revert "* Enabled stack overflow protection (CONFIG_CC_STACKPROTECTOR)"
a94d0ce67be4cede87cc0844af81960df1e57e8d * Enabled stack overflow protection (CONFIG_CC_STACKPROTECTOR) * Enabled RTL8723AE wifi drivers (CONFIG_RTL8723AE) * Disabled kernel debugging (CONFIG_DEBUG_KERNEL), since nobody develops drivers using a production config * Disabled Virtualization (CONFIG_VIRTUALIZATION), since a router is not ment to be a kvm host
2a7ae970ac30385b7c857620c1c8a6899594b510 vyos-kernel: update config files for the latest kernel (3.13.11)
728b2cbd6f0725a2c798a57d809822386a75ccab Enable built-in vmware modules instead of those from openvmtools.
41e0df2eec81c6750fe168190a0660d11caa3dd8 vyos-kernel: enable atheros USB drivers in the helium 3.13 kernel
602359068ee9f3ad1d053c6027d438c7e42a94c0 vyos-kernel: enable atheros HTC drivers in the helium 3.13 kernel
31aa6487cf6f262734458467b4c7cf85564f0cd9 vyos-kernel: enable atheros wireless drivers in the helium 3.13 kernel
b48da5963f9a9b434900bb3c772a969f01ea9a3e Add 586-virt flavor to defines.
3a5e4c7971082bc35f083d792cce61380febf080 Bug #247 - VyOS helium Linux 3.13 kernel .config doesn't have vmxnet3 driver enabled/available And update virt config to include netfilter helper
66d4802f839e14959dcea94b7d0e36fbe3ced5ae Add support for overlayfs in amd64 kernel config and enable Connection tracking helpers in user-space via Netlink in both amd64 and i386 kernel configs.
e59dab9f2985869cfdbf9b74cb5c8034c218707b tun: vyatta patches
fc58d4a339537765585855a9b793b953c7c984f1 Add special macvlan mode for VRRP.
e8b8c70f0e20666824f33083d7aa76a3f1a1f6f5 Add linkstate IP device attribute
73e8c1fbb3e0e57769eb514da37d4d276efe97f5 Add debian packaging from hydrogen with some modifications.

I start playing arroung and looking in a recent LTS kernel for all driver updates ...

There are only few modified files:

(20:01) cpo lnx01:~/vyos-build/packages/vyos-kernel [linux-vyos-4.14.y] # git diff origin/current v4.4.113 --name-only | grep -v debian
Documentation/networking/ip-sysctl.txt
arch/x86/configs/x86_64_vyos_defconfig
drivers/net/macvlan.c
drivers/net/tun.c
drivers/net/virtio_net.c
fs/notify/inotify/Kconfig
fs/notify/inotify/inotify_user.c
fs/overlayfs/super.c
include/linux/inetdevice.h
include/linux/inotify.h
include/linux/ipv6.h
include/uapi/linux/ethtool.h
include/uapi/linux/if_link.h
include/uapi/linux/if_tunnel.h
include/uapi/linux/ip.h
include/uapi/linux/ipv6.h
net/ipv4/devinet.c
net/ipv6/addrconf.c
net/ipv6/route.c

Looking through all changes I come up with the following:

cfg: change to the current VyOS Kernel configuration, simply pick the latest and add a proper Git reference
no: we don't have to take care about this commit b/c it's fixed in the mentioned upstream version/commit
cfgold: Old kernel configuration files should be dropped (see Q121)
debian: commits related to the debian folder for kernel builds ... more investigation needed by mysqlf
vyatta: Patches added for Vyatta - I will forward port them as I think they are required!

cfg     08fbb692685304a T536: Enable 9P Virtio Kernel Modules
cfg     0456e0acdcc5b95 T452: Enable support for 5 GHz WiFi AccesPoints w/ DFS
cfg     b72a65de9fd1c68 add UDF support
cfg     5fb76d1e94c254a T389: enable virtio SCSI drivers
cfg     14cc3866ddd730e add virtio scsi to kernel as loadable module
cfg     41e50c5566ecd0c remove Automatically generated lines
cfg     26bdeb800ea616f Enable intel QuickAssist Technology modules
no      31097c58bc2674b dccp: fix freeing skb too early for IPV6_RECVPKTINFO (upstream 4.10 5edabca9d4cff7f1f2b68f0bac55ef99d9798ba4)
no      3cca9b0e560fed8 virtio_net: validate ethtool port setting and explain the user validation (upstream 4.6 0cf3ace9e7cb47e3173561a8fb2601a12d8f75d2)
no      efdfde3539078a7 ethtool: make validate_speed accept all speeds between 0 and INT_MAX (upstream 4.6 e02564ee334a7ae46b71fc18576391cb9455433e)
no      2bf525732c8ede1 virtio_net: add ethtool support for set and get of settings (upstream 4.6 16032be56c1f66770da15cb94f0eb366c37aff6e)
no      5f9e299fd09ac96 ethtool: add speed/duplex validation functions (upstream 4.6 103a8ad1fa3b261c78dfc842cb315defe9d40be0)
cfg     c648059744eb0c6 add vyos x86_64 defconfig
cfgold  4e42f195f18c4c8 Update kernel config
vyatta  4c8de1009e13a97 Update name of struct to prevent conficts. (change to e59dab9f2985869)
cfgold  9aaaf3fbc44b91e Enable Chacha20 and Poly1305 kernel crypto modules
cfgold  3580d42e44a462c Build the XHCI module into the kernel. This allows VyOS to boot from USB on very modern Intel chipsets.
debian  8654501441de3ac vyos-kernel: update dh_gencontrol with new development build flag
cfgold  2af70d3624d9318 Enable missing network drivers.
cfgold  b8ed510ed8bc585 vyos-kernel: enable EFI stub to allow booting without separate bootloader
cfgold  6b15c639be2b693 vyos-kernel: enable inotify support for stackable filesystems in config
triage  25e20e822c340c6 vyos-kernel: add inotify support for stackable filesystems (overlayfs) (see https://bugs.launchpad.net/ubuntu/+source/linux/+bug/882147)
cfgold  6033764bb40b089 vyos-kernel: enable IPv6 VTI kernel module for 586-vyos kernel version
debian  653e17a2f1e2320 Update maintainer address
cfgold  864a1d1289a7e3c vyos-kernel: enable VXLAN kernel module for 586-vyos kernel version
cfgold  ea8fa4b3234c8c2 vyos-kernel: disable kernel debugging for all configs
cfgold  9f05d9afde79c7f vyos-kernel: disable host virtualisation in the 586-vyos-virt config
cfgold  fbb2b9a90810739 vyos-kernel: enable kernel stack overflow protection for all configs
cfgold  0f29c17c2914e13 vyos-kernel: enable realtek rtl8723ae kernel modules for all configs
cfgold  ec66a9fb85eaf27 * Enabled stack overflow protection (CONFIG_CC_STACKPROTECTOR)
cfgold  af9021cbdce1bab * Enabled RTL8723AE wifi drivers (CONFIG_RTL8723AE)
cfgold  cabcb55d564c357 * Disabled kernel debugging (CONFIG_DEBUG_KERNEL), since nobody develops drivers using a production config
cfgold  4539c8be3296d33 * Disabled Virtualization (CONFIG_VIRTUALIZATION), since a router is not ment to be a kvm host
cfgold  7457a26bd4664c9 Revert "* Enabled stack overflow protection (CONFIG_CC_STACKPROTECTOR)"
cfgold  a94d0ce67be4ced * Enabled stack overflow protection (CONFIG_CC_STACKPROTECTOR) * Enabled RTL8723AE wifi drivers (CONFIG_RTL8723AE) * Disabled kernel debugging (CONFIG_DEBUG_KERNEL), since nobody develops drivers using a production config * Disabled Virtualization (CONFIG_VIRTUALIZATION), since a router is not ment to be a kvm host
cfgold  2a7ae970ac30385 vyos-kernel: update config files for the latest kernel (3.13.11)
cfgold  728b2cbd6f0725a Enable built-in vmware modules instead of those from openvmtools.
cfgold  41e0df2eec81c67 vyos-kernel: enable atheros USB drivers in the helium 3.13 kernel
cfgold  602359068ee9f3a vyos-kernel: enable atheros HTC drivers in the helium 3.13 kernel
cfgold  31aa6487cf6f262 vyos-kernel: enable atheros wireless drivers in the helium 3.13 kernel
cfgold  b48da5963f9a9b4 Add 586-virt flavor to defines.
debian  3a5e4c7971082bc Bug #247 - VyOS helium Linux 3.13 kernel .config doesn't have vmxnet3 driver enabled/available And update virt config to include netfilter helper
cfgold  66d4802f839e149 Add support for overlayfs in amd64 kernel config and enable Connection tracking helpers in user-space via Netlink in both amd64 and i386 kernel configs.
vyatta  e59dab9f2985869 tun: vyatta patches
vyatta  fc58d4a33953776 Add special macvlan mode for VRRP.
vyatta  e8b8c70f0e20666 Add linkstate IP device attribute
debian  73e8c1fbb3e0e57 Add debian packaging from hydrogen with some modifications.

The Kernel commit/patch fc58d4a33953776 is used by https://github.com/vyos/vyatta-keepalived/commit/8bd97620 and VyOS 1.2 is using vyos-keepalived which no longer needs this patch.

The Kernel commit/patch e8b8c70f0e20666 is used by https://github.com/vyos/vyatta-cfg-quagga/commit/5182559eeb9ffa7acde43561c9a331f5e5bdf09c

The Kernel commit/patch e59dab9f2985869 seems to be obsolete. No consumer found via https://github.com/search?utf8=%E2%9C%93&q=org%3Avyos+SIOCTUNNELSTATS&type=Code

If e59dab9f2985869 is obsolete, so is 4c8de1009e13a97

@myura please test the latest rolling release if your i219 chipset is now detected. Kernel has been upgraded to 4.14.26.

I was actually playing around with this last night (building it via vyos-build myself) when I saw that the 4.14.26 vyos kernel package was up

vyos-999.201803161451-amd64 works great, with the interface immediately detected!

Thanks for the feedback!

@syncer this is resolved.

syncer claimed this task.

Thanks!