Upgrading the BIOS on my ASUS P5KPL-CM motherboard from version 0602 to 0702 caused the Linux kernel to fail to load the driver for the Ethernet. The device was still visible when querying the PCI bus. This post reviews how to downgrade the BIOS.

$ lspci -nn 01:00.0 Ethernet controller [0200]: Qualcomm Atheros AR8121/AR8113/AR8114 Gigabit or Fast Ethernet [1969:1026] (rev b0)

Utilizing lshw, we can see the driver was not loaded as the network is listed as UNCLAIMED.

ifconfig -a would not list eth0 as one of the viable Ethernet interfaces.

Properly configured, Ubuntu 14.04 LTS would use version 1.0.0.7-NAPI of the ATL1e driver (as of kernel version 3.16.0-43). There appears to be an updated driver version, 1.0.1.14, however the module is not available to Ubuntu to test this configuration.

The easiest fix is to downgrade the BIOS version to 0602. This can be done with the flashrom application. This must be installed using sudo apt-get install flashrom.

Before proceeding, ensure the current version is greater than 0602. To determine the current BIOS version, use the dmidecode command as follows (note this output specifies the working 0602 version):

Next, if the version is greater than 0602, make a backup of the existing BIOS by executing the following command. This only took a few seconds to execute.

Finally, write the older version of the BIOS. It is not readily available on the ASUS site. You can download the 0602 version here.

Write the BIOS using the following command, again only a few seconds to execute. When complete, reboot.

To verify, execute ifconfig -a to see if the eth0 device appears. If it does appear, and your network access is restored, that is it.

If there is no assigned address, you may need to reconfigure the device. Assuming DHCP is used to assign an IP, edit /etc/networking/interfaces and add the following lines, if they do not already exist.

Also, you may rename the file /etc/udev/rules.d/70-persistent-net.rules to that it will be regenerated

Executing ifconfig eth0 up at this point should restore the network.