blog.fridns.se

Fedora 14 – AR8152 Ethernet Controller

| Comments

If you have a Asus 1215n with the AR8152 Ethernet controller chip you may have noticed that it doesn’t work right out of the box, although thanks to this blog I managed to get it working. You will notice that the instructions from the blog just mentioned are for fedora 13, and unfortunately there are some differences in the kernel between the releases (2.6.32 – 2.6.35) that will make the compilation of the driver fail. I’ve created a small patch that takes care of this issue, but I leave no guarantees, you’re on your own if it doesn’t work.

Just follow the steps on the blog until you reach step 6, download my patch, and put it in the directory where driver is extracted is extracted, then apply it with following command,

1
patch -p1 < experimental.patch

I also noticed people were asking questions about how to handle this at kernel upgrades, and if they needed to do it all over again, and the answer is actually no. You should not need to redo all this when your system is upgraded with a new kernel, it used to be like that, but now days there is a cool feature called dkms (dynamic kernel module support) which is suppose to take care of this for you. I’m not really that familiar with this since I’m used with my stuff working out of the box, but from what I understand you will add a module with the dkms-command, and later when a kernel upgrade is made, the module will automagically be compiled for the new kernel. Since the guys at Atheros were so nice that they prepared the Makefile for this, the only thing you should need to do to get this working is,

1
2
sudo yum install -y dkms
sudo make dkms

and make should take care of it (it seems, at least for me, that the rpmbuild commands returns a nonzero value when exiting, which usually means there is an error, thus making ‘make’ thinks it failed, however, the rpm’s are there and I think they are just fine, but I’ll find that out at the next kernelupgrade).

For the curious reader, patch will do following,

  • use the netdev_for_each_mc_addr function to get addresses for the device (as of 2.6.34 this is the way to do it).
  • disable the check for which kernel we are running (rather then fixing it).
  • change the dkms-command so it builds an rpm instead of a Debian package.

Enjoy !