Get your wired ethernet working with Attansic Ethernet controller [1969:1091]

Many new motherboards (example: Gigabyte H77-DS3H) have the AR8161 ethernet controller. It will not work “out of the box” with openSUSE 12.3. However, you can solve the problem when you can transfer and install 2 packages on your computer, e.g. using an USB stick.

It is important to check for the exact model number of the controller. Do as user root:

lspci -nnk
02:00.0 Ethernet controller [0200]: Atheros Communications Inc. AR8161
        Gigabit Ethernet [1969:1091] (rev 10)
        Subsystem: Giga-byte Technology Device [1458:e000]
        Kernel driver in use: alx

The relevant model number is 1969:1091. You will not see the correct kernel driver indicated before you have applied the fix.

You need to install 2 packages:
compat-wireless-scripts-3.7-5.1.noarch.rpm and one of:

compat-wireless-kmp-default-3.7_k3.7.10_1.1-5.1.i586.rpm
compat-wireless-kmp-desktop-3.7_k3.7.10_1.1-5.1.i586.rpm
compat-wireless-kmp-pae-3.7_k3.7.10_1.1-5.1.i586.rpm

or the equivalent for x86_64 systems. Pick the right one according to the kernel you have installed. Normally this will be “desktop”. The version numbers must match your kernel and may change in the future.

The required packages are available from this repository (look into subdirectories noarch and i586 or x86_64):

Index of /repositories/home:/sdrahn:/kmp/openSUSE_12.3

Transfer the 2 packages to a directory on your host and use yast to add the directory as an RPM only repository. Then you can install the packages with yast.

Now you are almost ready. As user root run these commands from a console:

modprobe alx
systemctl restart network.service

You should now be able to see and configure your ethernet network controller with yast.

Have a lot of fun!

The relevant model number is 1969:1091. You will not see the correct kernel driver indicated before you have applied the fix.

Also for 1969:1090 (and several more):

modinfo alx
filename:       /lib/modules/3.7.10-1.1-desktop/updates/drivers/net/ethernet/atheros/alx/alx.ko
version:        1.2.2+git20130124
license:        Dual BSD/GPL
description:    Qualcomm Atheros Gigabit Ethernet Driver
author:         Qualcomm Corporation, <nic-devel@qualcomm.com>
srcversion:     ACF0E18DAFD895E711AA7EC
alias:          pci:v00001969d0000E091sv*sd*bc*sc*i*
alias:          pci:v00001969d000010A0sv*sd*bc*sc*i*
alias:          pci:v00001969d000010A1sv*sd*bc*sc*i*
alias:          pci:v00001969d00001090sv*sd*bc*sc*i*
alias:          pci:v00001969d00001091sv*sd*bc*sc*i*
depends:        mdio,compat
vermagic:       3.7.10-1.1-desktop SMP preempt mod_unload modversions

If after updating to kernel 3.7.10-1.4 the driver didn´t work see here:
https://forums.opensuse.org/english/get-technical-help-here/network-internet/486604-opensuse-12-3-no-network-eth0-after-kernel-update.html#post2554220

On openSUSE Tumbleweed the alx-Kernel-modul is build in Kernel 3.10:

uname -a
Linux susetumble.linux 3.10.0-16.g3dcd746-desktop #1 SMP PREEMPT Mon Jul 1 13:38:11 UTC 2013 (3dcd746) x86_64 x86_64 x86_64 GNU/Linux
/sbin/modinfo alx
filename:       /lib/modules/3.10.0-16.g3dcd746-desktop/kernel/drivers/net/ethernet/atheros/alx/alx.ko
license:        GPL
description:    Qualcomm Atheros(R) AR816x/AR817x PCI-E Ethernet Network Driver
author:         Qualcomm Corporation, <nic-devel@qualcomm.com>
author:         Johannes Berg <johannes@sipsolutions.net>
srcversion:     BD59174713AFD2F4DE32A0F
alias:          pci:v00001969d000010A0sv*sd*bc*sc*i*
alias:          pci:v00001969d000010A1sv*sd*bc*sc*i*
alias:          pci:v00001969d00001090sv*sd*bc*sc*i*
alias:          pci:v00001969d0000E091sv*sd*bc*sc*i*
alias:          pci:v00001969d00001091sv*sd*bc*sc*i*
depends:        mdio
intree:         Y
vermagic:       3.10.0-16.g3dcd746-desktop SMP preempt mod_unload modversions

Unfortunately, the method given in my post #1 above is outdated and will no longer work with kernels from the 12.2 update repository. As an alternative method it was possible to install the alx.ko module built by Axel Köllhofer. Pick the package alx-kmp-<your_kernel>.<arch>.rpm matching your kernel from http://download.opensuse.org/repositories/home:/Akoellh:/Kernelmodules/ and install it (hint: wget <file> and then zypper in <file>). This was working well for 12.3 and some updates of the 12.2 kernel.

Even the alternative method did not work for me for 12.2 kernel 3.4.47 desktop.

A currently working method, inspired by alx | The Linux Foundation is the following:

Download compat-drivers-2013-03-04-u.tar.bz2 from here:

https://www.kernel.org/pub/linux/kernel/projects/backports/2013/03/04/compat-drivers-2013-03-04-u.tar.bz2

Unpack the source and change into the new directory:

tar xvlf compat-drivers-2013-03-04-u.tar.bz2
cd compat-drivers-2013-03-04-u

I had to patch the source of include/linux/compat-3.8.h to make it compile without error (ymmv):

--- include/linux/compat-3.8.h.orig     2013-03-01 20:21:29.000000000 +0100
+++ include/linux/compat-3.8.h  2013-08-26 13:11:24.943314878 +0200
@@ -46,10 +46,13 @@
  * locking in the kref_put path can be deferred to the actual removal from
  * the lookup structure and RCU lookups become trivial.
  */
+
+/* Commented; hack by vodoo
 static inline int __must_check kref_get_unless_zero(struct kref *kref)
 {
        return atomic_add_unless(&kref->refcount, 1, 0);
 }
+ */
 
 /* This backports:
  *

Apply the patch or edit the file manually to have lines 49-52 commented out. Compile with the following commands:

./scripts/driver-select alx
make

… and install and enable as user root:

make install
modprobe alx
systemctl reload network.service

This should get you a working alx driver.
Have a lot of fun!

Cheers voodoo.

http://download.opensuse.org/repositories/home:/Akoellh:/Kernelmodules/ the above repository worked for me with OpenSuSE 12.3 there is even an associated update repository that contains an RPM for the updated kernel downloaded by the 12.3 updates- Index of /repositories/home:/Akoellh:/Kernelmodules/openSUSE_12.3_Update.

Hi guys and gurus :slight_smile:

I applied the above mentioned hacks to my openSUSE 12.3 quite some time ago. It got my wired Attansci [1969:1091] network card to fly just fine.
I’m usually on wireless, so I didn’t notice which/what/when update killed it…

Now I’m on 3.7.10-1.40-desktop as per the latest update. I’ve got a pile of kernels to choose from at boot…not one works (anymore). Well the kernels are fine - only no wired ethernet. Wireless is fine with them all.

I tried the above mentioned (this thread) hacks again…no luck.

a) any hints?
b) will openSUSE 13.1 work with Attensic - both wireless and wired?

I used to be quite active asking tons of questions and so in the past. But now…openSUSE has become so ‘runs everything directly from the download’ that it’s (very) rarely needed :slight_smile:

As always; thanks a million for your time and efforts!

‘May the fun be with you’

Best regards,
Verner Kjaersgaard / Denmark.

On Wed, 13 Aug 2014 19:46:01 +0000, vkjaersgaard wrote:

> a) any hints?
> b) will openSUSE 13.1 work with Attensic - both wireless and wired?

This would be better handled as a new post in the networking forum -
please post there and indicate all the necessary info - openSUSE release,
specific network card, etc.

Jim


Jim Henderson
openSUSE Forums Administrator
Forum Use Terms & Conditions at http://tinyurl.com/openSUSE-T-C