Pages

2013-06-22

MSI GT60 - Atheros Killer E2200 Ethernet Driver (alx) in Ubuntu

I use the GT60 notebook of MSI.
But, the device driver - Qualcomm Atheros Killer E2200 - is not working on Ubuntu.

After the long web searching,
I found the solution of this problem, finally,

* Cause of Problem
  - Ubuntu Distribution has no driver for Qualcomm Atheros Killer E2200.
  - You can get the (alx) driver for this chip in compat-drivers package.
    But it is not working, because of non-matching Device ID.

* Solution
  1. Ubuntu 12.10 and before
     - Follow the operation on http://ubuntuforums.org/showthread.php?t=2008332
     - You must apply the two patch files.
     - compat-patch.txt  --> for adding device id
     - tty.c.patch.txt      --> for fixing the definition of TTY functions

  2. Ubuntu 13.04 and after
     - Install the compiler tool-chain and the header files of linux kernel
        sudo apt-get install build-essential linux-headers
     - Download the compat-drivers package
     - Extract the tar ball
        tar xvjf compat-drivers-2013-03-04-u.tar.bz2
     - Fix the codes (Adding Device ID of MSI's)
        vim drivers/net/ethernet/atheros/alx/alx_reg.h
            --> #define ALX_DEV_ID_AR8172               0x10A0      // add below codes
                 #define ALX_DEV_ID_MINE                  0xe091
        vim drivers/net/ethernet/atheros/alx/alx_main.c
            --> ALX_ETHER_DEVICE(ALX_DEV_ID_AR8172),      // add below codes
                 ALX_ETHER_DEVICE(ALX_DEV_ID_MINE),
     - Set the target driver [alx] in compat-drivers build tree
        ./scripts/driver-select alx
     - Build the compat-drivers and Install the target kernel module [alx]
        sudo make all install
     - Load the kernel module of [alx] driver, and Check the network interfaces 
        sudo modprobe alx
        ifconfig
     - After rebooting, check the final status
        lsmod | grep alx
        ifconfig

2 comments:

  1. Thank you so much! I followed all the steps for my MSI GT60 with Ubuntu 13.04, but after rebooting I couldn't make the driver work. Where did you get the device ID from? could mine be different? I am getting this error on linux start: (dmesg)

    [ 13.562717] Qualcomm Atheros(R) AR816x/AR817x PCI-E Ethernet Network Driver
    [ 13.562855] alx 0000:02:00.0: unrecognize the chip, aborting
    [ 13.562860] alx 0000:02:00.0: net device private data init failed
    [ 13.562878] alx 0000:02:00.0: error when probe device, error = -22
    [ 13.562884] alx: probe of 0000:02:00.0 failed with error -22

    ReplyDelete
  2. Finally I got it working! I was missing a couple of details:
    1- Add cases for ALX_DEV_ID_MINE everywhere ALX_DEV_ID_AR8172 appears.
    2- after "sudo make all install", add a "sudo make unload".

    yay! I got Ethernet working :D Lots of thanks!

    ReplyDelete