Here's one way to solve this. I myself had the same problem as mentioned here. I followed two posts on ubuntuforum by anoop-n2 and chili555, and kind of did a mix of things, which can be outlined as follows:
You need to have linux-headers-generic
and build-essential
installed, try
sudo apt-get install linux-headers-generic build-essential
which will turn out to be of the newest version if those are already there.
The following should be done in a terminal as root:
sudo -i
wget https://www.kernel.org/pub/linux/kernel/projects/backports/stable/v3.9-rc4/compat-drivers-3.9-rc4-2-s.tar.bz2
tar xvf compat-drivers-3.9-rc4-2-s.tar.bz2
cd compat-drivers-3.9-rc4-2-s/
./scripts/driver-select ath9k
make
Now this will probably give the following error:
error: redefinition of ‘kref_get_unless_zero’
include/linux/kref.h:47:32: note: previous definition of ‘kref_get_unless_zero’ was here
In this case, open the header file, and find the entire block of the function:
static inline int __must_check kref_get_unless_zero(struct kref *kref)
{
return atomic_add_unless(&kref->refcount, 1, 0);
}
Next comment out the entire block of the function using line comment (put //
in front of each line) or block comment in c
as,
/*static inline int __must_check kref_get_unless_zero(struct kref *kref)
{
return atomic_add_unless(&kref->refcount, 1, 0);
}*/
then type the following commands one by one:
make
make install
Then load the driver using
modprobe ath9k
or reboot the system. Afterwards the wifi should be working.