Nvidia Tegra2: Getting wifi(atheros 6002) working

Hi,

So i finally got working wifi(yay!) on the Nvidia Tegra2 250 Developer board.

I found this atheros ar6k repository by mistake, so i decided to try if i was able to compile the driver and get it working. It works, but you need to modify the sourcecode to replace the paths of the firmware, since they are defined for android, before compiling the driver. I’m also writing this post so i don’t forget how i compiled the driver :)

So let’s start supposing you’ve followed my tegra2 Gentoo installation guide or you at least have an ARM crosscompiler, know how to use it, and you use it to compile your tegra2 kernel.

  1. First you need GIT in your system *AND* a compiled kernel source(and an ARM crosscompiler).
  2. Then checkout the ar6k repository from here:
    # git clone git://nv-tegra.nvidia.com/3rdparty/atheros.git
    This will checkout the repository into the directory you are right now.
  3. cd into the atheros/ar6k_sdk/host directory, and fix the firmware path:
    # cd atheros/ar6k_sdk/host
    # sed -i -e 's:/system/lib/hw/wlan/:/lib/firmware/:g' os/linux/ar6000_drv.c
  4. Now we compile the module, but you probably need to change the variables definitions to suit your system. For example in my case, the compiled kernel source is at /root/tegra/linux-2.6/ and my crosscompiler is called armv5tel-softfloat-linux-gnueabi-

    # make ATH_LINUXPATH=/root/tegra/linux-2.6/ ATH_CROSS_COMPILE_TYPE=armv5tel-softfloat-linux-gnueabi-

If everything went right, you now have a file called ar6000.ko in your os/linux/ . Copy it to your nvidia tegra board.
You’ll also need to copy the firmware files located in atheros/ar6k_sdk/target into the /lib/firmware directory on your tegra system.

Once you’ve copied everything, you can do a ‘insmod ar6000.ko’ in your tegra2 board and some messages will show up on dmesg and a wlan0 interface should appear.

The driver seems to work fine, i was able to connect to my WPA/WPA2 802.11g AP.

Have fun

Update:
Magnus Damm on the comments commented about getting the driver to compile with a >=2.6.35-rc kernel. He says that you need to have CONFIG_WIRELESS_EXT enabled and he also thinks that CONFIG_WEXT_PRIV is also needed.
Thanks Magnus!

I can’t try it since the tegra kernel is stuck on 2.6.29, but its good to know :)

About these ads

6 Responses to “Nvidia Tegra2: Getting wifi(atheros 6002) working”

  1. Florian Steinel Says:

    Try http://git.openmoko.org/?p=kernel.git;a=summary :-)

  2. John Says:

    Hmm, noticing from reading your entry that it has a dual core Cortex A9, I’m dying to get my hands on one of these… but the only official way to get it I can find is this: http://developer.nvidia.com/tegra/get-tegra –which seems to require that anyone wanting to purchase one must be part of a company: “Please provide us with your valid company email address”.

    Do you know whether geeks/hobbyists are excluded from purchasing the dev board?

  3. Magnus Damm Says:

    Thanks a lot for this very useful information.

    I’ve successfully used this driver with the AR6002XZ based Silex SX-SDCAG SDIO card.

    I expected the wifi chipset vendor and/or the wifi module vendor to provide a working upstream linux kernel driver – or if not then a central point of an open source out-of-tree driver at least, but so far it looks like they’ve completely dropped the ball.

    Anyway, to get it working I needed to adjust your instructions a bit. The sed snippet seems to be missing a trailing slash, so “/lib/firmware” should be “/lib/firmware/”.

    Also, to build the driver with 2.6.35-rc I needed to update my kernel configuration to include CONFIG_WIRELESS_EXT. I think CONFIG_WEXT_PRIV also is needed.

  4. James Brown Says:

    Wow

    Cant wait to get a Vega to play with ;)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Follow

Get every new post delivered to your Inbox.

%d bloggers like this: