Doing a bit of system setup in Ubuntu Server 20.04, CLI-only, on a Lenovo ThinkCentre m90n NUC. Ubuntu no longer recognizes that the system has an ethernet interface at all and I'm not sure where to begin troubleshooting or fixing this.
What I was doing before the problem:
After purging Docker (sudo apt purge
) from the system, the ethernet interface eno2
suddenly couldn't pull an IP from the router after a reboot. Thought maybe the router decided it just didn't like the system (I've been on routers that do that), so I kept working.
My next issue was troubleshooting the system restarting automatically after issuing a poweroff
or shutdown -P now
command. Found a fix here that involved adding acpi=noirq
to the GRUB_CMDLINE_LINUX_DEFAULT
config line in /etc/default/grub
. Upon updating grub and rebooting again to test the fix, ip address
no longer lists an ethernet interface at all.
I reverted the grub config and rebooted, but ip address
still does not list eno2
so I do not suspect the grub config is what killed it. I believe purging docker must have removed something else.
I'm not sure where to begin fixing this.
Outputs:
Output of ip addr
:
calyodelphi@dragonweyr:~$ ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 94:e6:f7:36:91:d8 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.6/24 brd 192.168.1.255 scope global dynamic wlo1
valid_lft 3458sec preferred_lft 3458sec
inet6 fd4b:8d38:69ba:1:96e6:f7ff:fe36:91d8/64 scope global mngtmpaddr noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::96e6:f7ff:fe36:91d8/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:5e:0e:94:56 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
Output of lspci
:
calyodelphi@dragonweyr:~$ lspci
00:00.0 Host bridge: Intel Corporation Coffee Lake HOST and DRAM Controller (rev 0c)
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (Whiskey Lake) (rev 02)
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 0c)
00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model
00:12.0 Signal processing controller: Intel Corporation Cannon Point-LP Thermal Controller (rev 30)
00:14.0 USB controller: Intel Corporation Cannon Point-LP USB 3.1 xHCI Controller (rev 30)
00:14.2 RAM memory: Intel Corporation Cannon Point-LP Shared SRAM (rev 30)
00:14.3 Network controller: Intel Corporation Cannon Point-LP CNVi [Wireless-AC] (rev 30)
00:16.0 Communication controller: Intel Corporation Cannon Point-LP MEI Controller #1 (rev 30)
00:1d.0 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port #9 (rev f0)
00:1d.4 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port #13 (rev f0)
00:1f.0 ISA bridge: Intel Corporation Cannon Point-LP LPC Controller (rev 30)
00:1f.3 Audio device: Intel Corporation Cannon Point-LP High Definition Audio Controller (rev 30)
00:1f.4 SMBus: Intel Corporation Cannon Point-LP SMBus Controller (rev 30)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Point-LP SPI Controller (rev 30)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (6) I219-V (rev 30)
02:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983
Contents of etc/network/interfaces
(this file was blank before I added this; still no fix):
calyodelphi@dragonweyr:~$ cat /etc/network/interfaces
auto lo
iface lo inet loopback
auto eno2
iface eno2 inet dhcp
EDIT 1
Output of lshw -C network
:
calyodelphi@dragonweyr:~$ sudo lshw -C network
[sudo] password for calyodelphi:
*-network:0
description: Wireless interface
product: Cannon Point-LP CNVi [Wireless-AC]
vendor: Intel Corporation
physical id: 14.3
bus info: pci@0000:00:14.3
logical name: wlo1
version: 30
serial: 94:e6:f7:36:91:d8
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=iwlwifi driverversion=5.4.0-77-generic firmware=46.6bf1df06.0 ip=192.168.1.6 latency=0 link=yes multicast=yes wireless=IEEE 802.11
resources: irq:0 memory:a123c000-a123ffff
*-network:1 UNCLAIMED
description: Ethernet controller
product: Ethernet Connection (6) I219-V
vendor: Intel Corporation
physical id: 1f.6
bus info: pci@0000:00:1f.6
version: 30
width: 32 bits
clock: 33MHz
capabilities: pm msi cap_list
configuration: latency=0
resources: memory:a1200000-a121ffff
EDIT 2
Some extra output as encouraged in the comments.
First is /etc/netplan/*.yaml
:
calyodelphi@dragonweyr:~$ cat /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
ethernets:
eno2:
dhcp4: true
wifis:
wlo1:
dhcp4: true
optional: true
access-points:
"Sanitized for your safety":
password: "DontYouWishYourExploitsWereHotLikeMe"
version: 2
Output of sudo modprobe e1000e && sudo dmesg | grep e100
:
calyodelphi@dragonweyr:~$ sudo modprobe e1000e && sudo dmesg | grep e100
[ 1.237103] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[ 1.238833] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[ 1.241057] e1000e 0000:00:1f.6: can't find IRQ for PCI INT A; please try using pci=biosirq
[ 1.243023] e1000e 0000:00:1f.6: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
[ 2.533297] e1000e: probe of 0000:00:1f.6 failed with error -2
And after some side-searching (a friend elsewhere suggested a missing kernel module and I did some googling), I cobbled together this lspci -v
search to get info specifically about the ethernet controller. The first block grabbed is the wifi controller which works perfectly fine.
calyodelphi@dragonweyr:~$ lspci -v | awk '/Ethernet/,/^$/'
DeviceName: Onboard - Ethernet
Subsystem: Intel Corporation Cannon Point-LP CNVi [Wireless-AC]
Flags: bus master, fast devsel, latency 0
Memory at a123c000 (64-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (6) I219-V (rev 30)
DeviceName: Onboard - Ethernet
Subsystem: Lenovo Ethernet Connection (6) I219-V
Flags: fast devsel
Memory at a1200000 (32-bit, non-prefetchable) [size=128K]
Capabilities: <access denied>
Kernel modules: e1000e
EDIT 3
Output of dmesg | grep -i irq
:
calyodelphi@dragonweyr:~$ sudo dmesg | grep -i irq
[sudo] password for calyodelphi:
[ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-5.4.0-77-generic root=/dev/mapper/ubuntu--vg-ubuntu--lv ro pci=biosirq
[ 0.000000] PCI: Unknown option `biosirq'
[ 0.063103] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[ 0.063105] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[ 0.063107] ACPI: IRQ0 used by override.
[ 0.063108] ACPI: IRQ9 used by override.
[ 0.063521] Kernel command line: BOOT_IMAGE=/vmlinuz-5.4.0-77-generic root=/dev/mapper/ubuntu--vg-ubuntu--lv ro pci=biosirq
[ 0.122357] NR_IRQS: 524544, nr_irqs: 2048, preallocated irqs: 16
[ 0.127500] DMAR-IR: Enabled IRQ remapping in x2apic mode
[ 0.456806] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 10 11 12 14 15) *0
[ 0.456965] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 10 11 12 14 15) *1
[ 0.457120] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 10 11 12 14 15) *0
[ 0.457273] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 10 11 12 14 15) *0
[ 0.457427] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 10 11 12 14 15) *0
[ 0.457583] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 10 11 12 14 15) *0
[ 0.457736] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 10 11 12 14 15) *0
[ 0.457890] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 10 11 12 14 15) *0
[ 0.478709] PCI: Using ACPI for IRQ routing
[ 0.525746] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0, 0, 0, 0, 0
[ 0.950240] pcieport 0000:00:1d.0: PME: Signaling with IRQ 122
[ 0.950903] pcieport 0000:00:1d.4: PME: Signaling with IRQ 123
[ 0.951023] pcieport 0000:00:1d.4: AER: enabled with IRQ 123
[ 0.960745] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
As an aside...
For some reason ip address
still lists an interface for docker even though I'd purged it from the system, and processes for containerd
and dockerd
still show up when I use htop
so I'm not entirely certain it's been fully purged from the system.