Page 1 of 5 123 ... LastLast
Results 1 to 10 of 50

Thread: Atheros AR8151 ethernet on Asus P8H67-V

  1. #1
    Join Date
    Jan 2011
    Location
    Frankfurt, Germany
    Beans
    4
    Distro
    Ubuntu 10.10 Maverick Meerkat

    Atheros AR8151 ethernet on Asus P8H67-V

    Hi,
    here's a solution to get the Atheros Gigabit ethernet on the Asus P8H67-V Sandy Brigde board to work.

    The device is listed as:

    Code:
    07:00.0 Ethernet controller [0200]: Atheros Communications Device [1969:1083] (rev c0)
    	Subsystem: ASUSTeK Computer Inc. Device [1043:847e]
    	Flags: bus master, fast devsel, latency 0, IRQ 47
    	Memory at fe400000 (64-bit, non-prefetchable) [size=256K]
    	I/O ports at d000 [size=128]
    	Capabilities: [40] Power Management version 3
    	Capabilities: [48] MSI: Enable+ Count=1/1 Maskable- 64bit+
    	Capabilities: [58] Express Endpoint, MSI 00
    	Capabilities: [6c] Vital Product Data
    	Capabilities: [100] Advanced Error Reporting
    Unfortunately, the 1969:1083 is not supported yet by the atl1e module in the kernel. Atheros offers linux drivers for the AR81 family on their website:

    AR81Family Linux Driver

    Since some data structures of net_device changed in 2.6.35, the above driver does not compile with kernels > 2.6.34. I wrote a patch to adapt to the changes in net_device and the Makefile:

    Code:
    diff -urN src-old/atl1c_main.c src/atl1c_main.c
    --- src-old/atl1c_main.c	2011-01-28 13:32:59.277576319 +0100
    +++ src/atl1c_main.c	2011-01-28 11:48:39.677573301 +0100
    @@ -336,7 +336,13 @@
     {
     	struct atl1c_adapter *adapter = netdev_priv(netdev);
     	struct atl1c_hw *hw = &adapter->hw;
    +
    +#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35) )
    +	struct netdev_hw_addr *ha;
    +#else
     	struct dev_mc_list *mc_ptr;
    +#endif
    +
     	u32 mac_ctrl_data = 0;
     	u32 hash_value;
     
    @@ -359,10 +365,18 @@
     	AT_WRITE_REG_ARRAY(hw, REG_RX_HASH_TABLE, 1, 0);
     
     	/* comoute mc addresses' hash value ,and put it into hash table */
    -	for (mc_ptr = netdev->mc_list; mc_ptr; mc_ptr = mc_ptr->next) {
    -		hash_value = atl1c_hash_mc_addr(hw, mc_ptr->dmi_addr);
    -		atl1c_hash_set(hw, hash_value);
    +
    +#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35) )
    +	netdev_for_each_mc_addr(ha, netdev){
    +	  hash_value = atl1c_hash_mc_addr(hw, ha->addr);
    +	  atl1c_hash_set(hw, hash_value);
    +	}
    +#else
    +	for(mc_ptr = netdev->mc_list; mc_ptr; mc_ptr = mc_ptr->next) {
    +	  hash_value = atl1c_hash_mc_addr(hw, mc_ptr->dmi_addr);
    +	  atl1c_hash_set(hw, hash_value);
     	}
    +#endif
     }
     
     #ifdef NETIF_F_HW_VLAN_TX
    diff -urN src-old/atl1e_main.c src/atl1e_main.c
    --- src-old/atl1e_main.c	2011-01-28 13:32:59.277576319 +0100
    +++ src/atl1e_main.c	2011-01-28 11:46:30.327572286 +0100
    @@ -1829,7 +1829,13 @@
     {
         struct atl1e_adapter *adapter = netdev_priv(netdev);
         struct atl1e_hw *hw = &adapter->hw;
    +
    +#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35) )
    +    struct netdev_hw_addr *ha;
    +#else
         struct dev_mc_list *mc_ptr;
    +#endif
    +
         u32 rctl;
         u32 hash_value;
     
    @@ -1856,10 +1862,17 @@
     
         /* comoute mc addresses' hash value ,and put it into hash table */
     
    +#if ( LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35) )
    +    netdev_for_each_mc_addr(ha, netdev){
    +      hash_value = atl1e_hash_mc_addr(hw, ha->addr);
    +      atl1e_hash_set(hw, hash_value);
    +    }
    +#else
         for(mc_ptr = netdev->mc_list; mc_ptr; mc_ptr = mc_ptr->next) {
             hash_value = atl1e_hash_mc_addr(hw, mc_ptr->dmi_addr);
             atl1e_hash_set(hw, hash_value);
         }
    +#endif
     }
     
     
    diff -urN src-old/Makefile src/Makefile
    --- src-old/Makefile	2011-01-28 13:32:59.277576319 +0100
    +++ src/Makefile	2011-01-28 11:33:56.707574257 +0100
    @@ -89,12 +89,12 @@
         CONFIG_FILE  := $(KSRC)/include/linux/autoconf.h
       endif
     else
    -  ifneq (,$(wildcard $(KOBJ)/include/linux/utsrelease.h))
    -    VERSION_FILE := $(KOBJ)/include/linux/utsrelease.h
    +  ifneq (,$(wildcard $(KOBJ)/include/generated/utsrelease.h))
    +    VERSION_FILE := $(KOBJ)/include/generated/utsrelease.h
       else
         VERSION_FILE := $(KOBJ)/include/linux/version.h
       endif
    -  CONFIG_FILE  := $(KSRC)/include/linux/autoconf.h
    +  CONFIG_FILE  := $(KSRC)/include/generated/autoconf.h
     endif
     
     ifeq (,$(wildcard $(VERSION_FILE)))
    Change into the src directory of the Atheros driver and apply:

    Code:
    patch -p1 < /path/to/AR81Family-linux-v1-1.0.1.14.patch
    It should build fine now.
    I tested it on 2.6.35-25-server and 2.6.38-rc2.
    Attached Files Attached Files

  2. #2
    Join Date
    Jan 2011
    Beans
    1

    Re: Atheros AR8151 ethernet on Asus P8H67-V

    Hi!

    Tnx for your text, but I´m a noobie in this and dont understand how to fix this!

    Can you develop you post so I understand? Plz!

    Tnx for your help!

  3. #3
    Join Date
    Oct 2008
    Location
    nigeria
    Beans
    7
    Distro
    Ubuntu 10.04 Lucid Lynx

    Re: Atheros AR8151 ethernet on Asus P8H67-V

    my latop's ethernet is an atheros and after I installed 10.04 I got it to work without problem having followed the post on this link http://tuxthink.blogspot.com/2010/08...roller-on.html

    but I got some updates regrettably now its back to no wired network I have tried doing the same procedure again and it still didnt work on Kernel Linux 2.6.32-28 generic but if I boot into the previous kernel Linux 2.6.32-21 generic it works well.



    *-network UNCLAIMED
    description: Network controller
    product: Broadcom Corporation
    vendor: Broadcom Corporation
    physical id: 0
    bus info: pci@0000:03:00.0
    version: 01
    width: 64 bits
    clock: 33MHz
    capabilities: pm msi pciexpress bus_master cap_list
    configuration: latency=0
    resources: memory:f0500000-f0503fff
    *-network UNCLAIMED
    description: Ethernet controller
    product: AR8152 v1.1 Fast Ethernet
    vendor: Atheros Communications
    physical id: 0
    bus info: pci@0000:04:00.0
    version: c1
    width: 64 bits
    clock: 33MHz
    capabilities: pm msi pciexpress vpd bus_master cap_list
    configuration: latency=0
    resources: memory:f0400000-f043ffff ioport:2000(size=128)
    Last edited by iykrichie; January 29th, 2011 at 07:23 PM. Reason: Network Information

  4. #4
    Join Date
    Jan 2011
    Location
    Frankfurt, Germany
    Beans
    4
    Distro
    Ubuntu 10.10 Maverick Meerkat

    Re: Atheros AR8151 ethernet on Asus P8H67-V

    Hi M911,

    this post explicitly deals with the Atheros ethernet chip with the PCI ID 1969:1083. You find the PCI ID by calling

    Code:
    lspci -nn
    and looking for the Atheros Ethernet controller:

    Code:
    07:00.0 Ethernet controller [0200]: Atheros Communications Device [1969:1083] (rev c0)
    My post gives a solution if you have this chip (or, actually, a chip of this family) and you want to use a kernel > 2.4.34 (e.g. if you want to use Maverick Meerkat, 10.10):

    1) Download und unpack the driver from the Atheros website
    2) Download the patch from my original post
    3) cd into the src sub directory of the driver
    4) excute
    Code:
    patch -p1 < /path/to/AR81Family-linux-v1-1.0.1.14.patch
    5) build and install the new driver:
    Code:
    sudo make install
    6) Load the driver:
    Code:
    sudo modprobe atl1e
    7) Check wether the device is now working:
    Code:
    ifconfig -a
    You should see a new ethX device now, which you can configure as usual.

    Hope this helps.

  5. #5
    Join Date
    Jan 2011
    Location
    Frankfurt, Germany
    Beans
    4
    Distro
    Ubuntu 10.10 Maverick Meerkat

    Re: Atheros AR8151 ethernet on Asus P8H67-V

    Hi iykrichie,

    can you check wether the module is really updated for your newer kernel:

    Code:
    modinfo /lib/modules/2.6.32-28-server/kernel/drivers/net/atl1e/atl1e.ko
    It should show the version of the driver you downloaded from Atheros.

  6. #6
    Join Date
    Jan 2011
    Beans
    1

    Re: Atheros AR8151 ethernet on Asus P8H67-V

    many thanks it works great

  7. #7
    Join Date
    Feb 2011
    Beans
    1

    Re: Atheros AR8151 ethernet on Asus P8H67-V

    Quote Originally Posted by m0gwai View Post
    Hi M911,

    1) Download und unpack the driver from the Atheros website
    2) Download the patch from my original post
    3) cd into the src sub directory of the driver
    4) excute
    Code:
    patch -p1 < /path/to/AR81Family-linux-v1-1.0.1.14.patch
    5) build and install the new driver:
    Code:
    sudo make install
    6) Load the driver:
    Code:
    sudo modprobe atl1e
    7) Check wether the device is now working:
    Code:
    ifconfig -a
    You should see a new ethX device now, which you can configure as usual.

    Hope this helps.
    To start with, please forgive me if I don't use "by the book" terms, as I am a newbie.

    To the matter, this exact way did not work for me, I could have fixed it by changing the autoconf.h location in the Makefile but I didn't have to bother.

    However, what did work for me is:

    1) as above, but not actually used. Into tmp Atheros drv
    2) as above. I unpacked into a totally different directory, tmp Atheros patch
    3) I changed into that directory (patch)
    4) install it - It works!

    Code:
     cd /tmp/Atheros/drv
    tar xvvf AR81Family-linux-v1.0.1.14.tar.gz
    cd /tmp/Atheros/patch
    tar xvvf AR81Family-linux-v1-1.0.1.14.patch.tar.gz
    sudo make install
    sudo modprobe atl1e
    Neither further patching was required, nor any other command.

    Code:
    modinfo /lib/modules/2.6.32-28-generic/kernel/drivers/net/atl1e/atl1e.ko
    
    filename:       /lib/modules/2.6.32-28-generic/kernel/drivers/net/atl1e/atl1e.ko
    version:        1.0.1.14
    license:        GPL
    author:         Atheros Corporation, <xiong.huang@atheros.com>, Jie Yang <jie.yang@atheros.com>
    description:    Atheros Gigabit Ethernet driver
    srcversion:     D420C02689CDDB8DF937282
    alias:          pci:v00001969d00002062sv*sd*bc*sc*i*
    alias:          pci:v00001969d00001083sv*sd*bc*sc*i*
    alias:          pci:v00001969d00001073sv*sd*bc*sc*i*
    alias:          pci:v00001969d00002060sv*sd*bc*sc*i*
    alias:          pci:v00001969d00001062sv*sd*bc*sc*i*
    alias:          pci:v00001969d00001063sv*sd*bc*sc*i*
    alias:          pci:v00001969d00001066sv*sd*bc*sc*i*
    alias:          pci:v00001969d00001067sv*sd*bc*sc*i*
    alias:          pci:v00001969d00001026sv*sd*bc*sc*i*
    depends:        
    vermagic:       2.6.32-28-generic SMP mod_unload modversions 
    parm:           tx_desc_cnt:Transmit description count (array of int)
    parm:           rx_mem_size:memory size of rx buffer(KB) (array of int)
    parm:           TxRingSz:Transmit Ring Sizen (array of int)
    parm:           RxfMemSize:memory size of rx buffer(KB) (array of int)
    parm:           media_type:media_type Select (array of int)
    parm:           int_mod_timer:Interrupt Moderator Timer (array of int)
    So, I guess, thank you very much. This post was more than helpful to me. I hated having dist-upgraded and booting onto earlier kernel (2.6.32-25).

  8. #8
    Join Date
    Jan 2011
    Location
    Frankfurt, Germany
    Beans
    4
    Distro
    Ubuntu 10.10 Maverick Meerkat

    Re: Atheros AR8151 ethernet on Asus P8H67-V

    Not exactly sure what you did and why it worked.
    But as I said in the initial post: the patch is only needed for kernels > 2.6.34, it leaves the code as is for older kernel versions.
    Also, you have to repeat this procedure every time after a ubuntu kernel update.

  9. #9
    Join Date
    Mar 2011
    Beans
    1

    Re: Atheros AR8151 ethernet on Asus P8H67-V

    Sorry guys,

    I just didn't realize that a reboot could be a good option after the modprobe ... thougt it should appear in ifconfig right after modprobe

    thanks a lot for the instructions. I'm using Ubuntu for years now but there are many situations when I have to learn and learn again that the problem is mostly between keyboard and chair...










    Hi,

    after buying an Asus notebook and installing Ubuntu I've the same Problem as you mentioned above.

    It's the same ethernet card (i checked) and I followed your instructions but at the end the device is not listed in ifconfig.

    I use the patch

    Code:
    $ patch -p1 < ../../AR81Family-linux-v1-1.0.1.14.patch
    patching file atl1c_main.c
    patching file atl1e_main.c
    patching file Makefile
    and follow the other steps


    Code:
    /AR81Family-linux-v1.0.1.14/src$ sudo make install
    make -C /lib/modules/2.6.35-22-generic/build SUBDIRS=/home/x/Downloads/AR81Family-linux-v1.0.1.14/src modules
    make[1]: Betrete Verzeichnis '/usr/src/linux-headers-2.6.35-22-generic'
      CC [M]  /home/x/Downloads/AR81Family-linux-v1.0.1.14/src/at_common_main.o
      CC [M]  /home/x/Downloads/AR81Family-linux-v1.0.1.14/src/atl1e_main.o
      CC [M]  /home/x/Downloads/AR81Family-linux-v1.0.1.14/src/atl1c_main.o
      CC [M]  /home/x/Downloads/AR81Family-linux-v1.0.1.14/src/atl1c_hw.o
      CC [M]  /home/x/Downloads/AR81Family-linux-v1.0.1.14/src/atl1e_hw.o
      CC [M]  /home/x/Downloads/AR81Family-linux-v1.0.1.14/src/atl1e_param.o
      CC [M]  /home/x/Downloads/AR81Family-linux-v1.0.1.14/src/atl1c_param.o
      CC [M]  /home/x/Downloads/AR81Family-linux-v1.0.1.14/src/atl1e_ethtool.o
      CC [M]  /home/x/Downloads/AR81Family-linux-v1.0.1.14/src/atl1c_ethtool.o
      CC [M]  /home/x/Downloads/AR81Family-linux-v1.0.1.14/src/kcompat.o
      LD [M]  /home/x/Downloads/AR81Family-linux-v1.0.1.14/src/atl1e.o
      Building modules, stage 2.
      MODPOST 1 modules
      CC      /home/x/Downloads/AR81Family-linux-v1.0.1.14/src/atl1e.mod.o
      LD [M]  /home/xDownloads/AR81Family-linux-v1.0.1.14/src/atl1e.ko
    make[1]: Verlasse Verzeichnis '/usr/src/linux-headers-2.6.35-22-generic'
    gzip -c ../atl1e.7 > atl1e.7.gz
    # remove all old versions of the driver
    find /lib/modules/2.6.35-22-generic -name atl1e.ko -exec rm -f {} \; || true
    find /lib/modules/2.6.35-22-generic -name atl1e.ko.gz -exec rm -f {} \; || true
    install -D -m 644 atl1e.ko /lib/modules/2.6.35-22-generic/kernel/drivers/net/atl1e/atl1e.ko
    /sbin/depmod -a || true
    install -D -m 644 atl1e.7.gz /usr/share/man/man7/atl1e.7.gz
    man -c -P'cat > /dev/null' atl1e || true
    atl1e.
    
    $ sudo modprobe atl1e
    
    $ ifconfig
    
    lo        Link encap:Lokale Schleife  
              inet Adresse:127.0.0.1  Maske:255.0.0.0
              inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
              UP LOOPBACK RUNNING  MTU:16436  Metrik:1
              RX packets:76 errors:0 dropped:0 overruns:0 frame:0
              TX packets:76 errors:0 dropped:0 overruns:0 carrier:0
              Kollisionen:0 Sendewarteschlangenlänge:0 
              RX bytes:5440 (5.4 KB)  TX bytes:5440 (5.4 KB)
    
    wlan0     Link encap:Ethernet  Hardware Adresse 8c:a9:82:24:50:80  
              inet Adresse:192.168.2.27  Bcast:192.168.2.255  Maske:255.255.255.0
              inet6-Adresse: fe80::8ea9:82ff:fe24:5080/64 Gültigkeitsbereich:Verbindung
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
              RX packets:6918 errors:0 dropped:0 overruns:0 frame:0
              TX packets:6988 errors:0 dropped:0 overruns:0 carrier:0
              Kollisionen:0 Sendewarteschlangenlänge:1000 
              RX bytes:6210171 (6.2 MB)  TX bytes:1088434 (1.0 MB)
    Do you have any ideas?

    Thanks
    Last edited by denizov; March 30th, 2011 at 12:07 PM. Reason: Found out I'm stupid

  10. #10
    Join Date
    Apr 2011
    Beans
    Hidden!

    Re: Atheros AR8151 ethernet on Asus P8H67-V

    It works also wel on Acer Iconia LX.RF702.104, Thank

Page 1 of 5 123 ... LastLast

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •