View Full Version : Install drivers for Atheros Ethernet

23rd January 2013, 07:38 PM
For whatever reason, Atheros Ethernet drivers are not included in the Fedora installation disks. This can lead to huge problems, and in order to get them working you will need to have a working internet connection. I understand this can be hard without a working Ethernet card. The workaround I used for this, is use my (Android) phone as a WiFi card. Connect it to the computer, and choose on the phone the option "USB Tethering" or something similar. With this, I could complete the following guide, and now my AR8161/8165 ethernet card works.

Step 1:
Install all the tools needed to compile something.

su -
yum -y groupinstall "Development Tools"
yum -y install gcc
yum -y update just to be sure; see Note #1 below for details

Step 2:
Download the un-compiled driver (the source). You'll need this (http://www.orbit-lab.org/kernel/compat-wireless-3-stable/v3.6/compat-wireless-3.6.8-1-snpc.tar.bz2) file from the Linux Foundation (http://www.linuxfoundation.org/collaborate/workgroups/networking/alx). Save this file somewhere secure (where you won't delete it, see Note #1 for details), and unpack it to - for example - your desktop.

Step 3:
Compilation and installation.
Open a terminal and type something like:

cd /path/to/compat-wireless-3.6.8-1-snpc
This is the folder you've just unpacked the source to; for me this was cd /home/me/Desktop/compat-wireless-3.6.8-1-snpc.

./scripts/driver-select alx

make If this ends in an error, read Note #2

make install

Now reboot. This reboot will take some time, but now it works.

Note #1:
Apparently this thing will need to be recompiled, and reinstalled at every Kernel update. This is a bit of a headache, but as long as you've saved the file somewhere safe, you won't need an internet connection to do so. Just unpack the file again, and repeat Step 3.

Note #2:
If the make command ends in an error, this most likely contains the text:

error: implicit declaration of function ‘__netdev_printk’
Assuming this is the case, this can be fixed by opening the file /path/to/compat-wireless-3.6.8-1-snpc/drivers/net/ethernet/atheros/alx/alx_main.c and commenting out lines 124, 125, and 126. This is done by adding // at the beginning of the line.
The lines in the end shout look like this:

// __netdev_printk(level, hw->adpt->netdev, &vaf);
// else
// printk("%salx_hw: %pV", level, &vaf);

Note #3:
I'm not a coding wiz. I got this together with kind help (http://forums.fedoraforum.org/showpost.php?p=1626735&postcount=1). I don't think I'll be able to answer many questions, but perhaps people struggle with the same issues I had.