What and How to install Ethernet adapter drivers

ethernetkernel-moduleswifi

I'm currently trying to set a computer with Ubuntu Server (version: 16.04.3).

I believe the drivers for the wireless adapter are installed, but I need the iwconfig utility/command to configure it. But in order to get iwconfig, I need an internet connection.

I've decided to temporarily enable ICS (Internet Connection Sharing) on the Ethernet port of my Windows 7 computer, but now I'm having trouble getting an internet connection over the Ethernet connection (between the Windows computer and the Ubuntu Server computer).

Here's the output for sudo lshw -c network:

*-network UNCLAIMED
  description: Ethernet controller
  product: Qualcomm Atheros
  vendor: Qualcomm Atheros
  physical id: 0
  bus info: pci@0000:05:00.0
  version: 10
  width: 64 bits
  clock: 33MHz
  capabilities: pm pciexpress msi msix bus_master cap_list
  configuration: latency=0
  resources: memory:ef100000-ef13ffff ioport:e000(size=128)
*-network DISABLED
  description: Wireless interface
  product: RTL8192EE PCIe Wireless Network Adapter
  vendor: Realtek Semiconductor Co., Ltd.
  physical id: 0
  bus info: pci@0000:08:00.0
  logical name: wlp8s0
  version: 00
  serial: 7c:8b:ca:0a:03:34
  width: 64 bits
  clock: 33MHz
  capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
  configuration: broadcast=yes driver=rtl8192ee driverversion=4.4.0-87-generic firmware=N/A latency=0 link=no multicast=yes wireless=IEEE 802.11bgn
  resources: irq:132 ioport:d000(size=256) memory:ef000000-ef003fff

From some digging online, the UNCLAIMED status leads me to believe that a driver is not installed for or not associated with the Ethernet adapter. Am I correct?

How do I figure out which driver is needed?
How do I acquire that driver (if it's not already installed)?
How do I set up / associate the driver with my device?

Here's the output for sudo lspci -nn | grep eth:

05:00.0 Ethernet controller [0200]: Qualcomm Atheros Device [1969:e0b1] (rev 10)

The output for sudo modprobe -v alx:

insmod /lib/modules/4.4.0-87-generic/kernel/drivers/net/mdio.ko
insmod /lib/modules/4.4.0-87-generic/kernel/drivers/net/ethernet/atheros/alx/alx.ko

The output for sudo ip a:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
  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: wlp8s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
  link/ether 7c:8b:ca:0a:03:34 brd ff:ff:ff:ff:ff:ff

Hardware specs:

OS: Ubuntu Server (version: 16.04.3)
Motherboard: GIGABYTE GA-H270-Gaming 3 (rev. 1.0) LGA 1151 Intel H270
CPU: Intel Core i5 6400T
RAM: Corsair Value Select 4GB Unbuffered CL15
SSD: Kingston Digital 120GB SSDNow V300 (SV300S37A/120G)
HDD: WD Blue 1TB (WD10EZEX) | Seagate 1TB (ST1000DM003)
Wi-Fi Adapter: TP-Link N300 (TL-WN881ND)
PSU: EVGA 450 (220-B3-0450-V1)

Best Answer

Try running

sudo apt install linux-generic-hwe-16.04

That will install a "hardware enablement" (HWE) kernel, which is a newer version with updated drivers that will probably work better on your system. There's more info about HWE here:

https://wiki.ubuntu.com/Kernel/RollingLTSEnablementStack

A sufficient version of that should be available from your original installation media. If it isn't, then you'll probably need to "sneakernet" the files over by copying to a USB stick, or find a USB WiFi adapter that is supported by kernel version 4.4.0, and use that to download the material you need.

Related Question