Git Product home page Git Product logo

atheros's Introduction

Atheros

Atheros QCA6174 Wireless Firmware for Debian Buster/Bullseye/Sid (and probably Ubuntu).

Master provides support for kernel version 5.5.

Check the branches for support of kernel versions 4.15 through 5.3 (Check out the appropriate branch).

SPECIAL THANKS

Special thanks to @jeremyb31 (his profile on ubuntuforums) for having provided the modified source and instructions on ubuntuforums for getting the Atheros QCA6174 Wireless working on Ubuntu/Debian linux in kernel versions 4.15 and 4.16.

Special thanks to @waveletlet (their profile on github) for having provided the merge request to add support for changes made to the kernel sources in version(s) 5.3, 5.5, and for noticing that the linux-headers-amd64 dependency could be noted in this README.

From what I understand the issue has to do with a few things, from a tweak to regulatory domain - to support for the EEPROM chipset used in devices such as the Samsung Galaxy Book 12.

The original source (for kernel versions up to 4.18) was simply a modified version of jeremyb31's - updated for 4.17+ by replacing the wil6210 directory with the updated one found in the latest linux kernel source tree.

The latest is based on the respective kernel's sources. This update is still functional with kernel version 5.5.0-1.

Instructions

The following instructions will guide you through building and installing the Atheros QCA6174 Wireless Firmware in Debian and probably Ubuntu

Dependencies

Ensure you have all the required tools

sudo apt-get update
sudo apt-get install git build-essential linux-headers-$(uname -r)

NOTE

You could substitue linux-headers-amd64 for linux-headers-$(uname -r) to have apt auto-select a candidate.

Get the Source

Clone the repository

git clone https://github.com/devrikx/atheros

Enter the newly checked out repository

cd atheros

Check out the branch for your kernel version. If you are using the latest kernel version available in Debian Buster (or from the buster-backports channel at the time of this writing), you can just use master. Otherwise, run the following command, replacing the X with your MAJOR kernel version (i.e. 4, 5, etc), and the y with your minor kernel version (i.e. 15, 16, or 3).

git checkout X-y-stable

The remaining process depends upon whether this is your first time building the source, or whether you're rebuilding due to a kernel patch version update (i.e. 4.18.0 to 4.18.0-3, or 5.3.0 to 5.5.0-1).

Preparing to Update

If you are updating due to a kernel patch (or packaging) version update, you'll need to clean your working directory first [1]:

make -C /lib/modules/$(uname -r)/build M=$(pwd) clean

Now you are ready to continue as if it is your first run through this process

Build

We start by copying some configuration to the working directory [1]:

cp /lib/modules/$(uname -r)/build/.config ./
cp /lib/modules/$(uname -r)/build/Module.symvers ./

Then we build the source

make -C /lib/modules/$(uname -r)/build M=$(pwd) modules

Great! You're ready to install.

Install

To install the firmware, copy the compiled kernel driver to the appropriate system path [1]:

sudo cp ath.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless/ath

Finally, reboot your system:

sudo shutdown -r now

Note to Ubuntu Users

Please note that on Ubuntu, you probably need to prepend /usr to the paths used in the commands above.

Conclusion

After you've rebooted your PC, you should have working wifi!

This works for me (and other contributors) on the Samsung Galaxy Book 12, running Debian Buster with kernel version 5.5.0-1 (At the time this README.md was last updated.)

Feel free to let me know how it works for you - though for serious issues I'd recommend you seek help by posting to the forums where @jeremyb31 provides the original source and solution

License

I claim no ownership nor authorship of anything within this repository other than this README.md. Any significant licenses may be found within the preferred directory.

The instructions and source used to get working atheros wifi on linux kernel version 4.17+ is entirely based upon @jeremyb31's solution given on ubuntuforumns, and provided on @jeremyb31's github repository, respectively.

Thanks!

atheros's People

Contributors

kirvedx avatar waveletlet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

atheros's Issues

ahb.c:95:8: error:

atheros/ath9k/ahb.c:95:8: error: implicit declaration of function ‘devm_ioremap_nocache’; did you mean ‘devm_ioremap_release’? [-Werror=implicit-function-declaration

running pclos kde5 2020

Compile error kernel >= 4.19.0-4-amd64

On master branch. Using the kernel packages from the Debian repo. Still works with 4.19.0-2-amd64 (4.19.16-1). Here's the output of make -C /lib/modules/$KERNEL/build M=$(pwd) modules with 4.19.0-4-amd64 (4.19.28-2):

Problem still exists after update to 4.19.0-5-amd64 (4.19.37-3).

make: Entering directory '/usr/src/linux-headers-4.19.0-4-amd64'
  CLEAN   /mnt/older/home/user/problems/atheros_problems/atheros/.tmp_versions
  CLEAN   /mnt/older/home/user/problems/atheros_problems/atheros/Module.symvers
make: Leaving directory '/usr/src/linux-headers-4.19.0-4-amd64'
make: Entering directory '/usr/src/linux-headers-4.19.0-4-amd64'
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ar5523/ar5523.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath10k/mac.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath10k/debug.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath10k/core.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath10k/htc.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath10k/htt.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath10k/htt_rx.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath10k/htt_tx.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath10k/txrx.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath10k/wmi.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath10k/wmi-tlv.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath10k/bmi.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath10k/hw.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath10k/p2p.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath10k/swap.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath10k/thermal.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath10k/wow.o
  LD [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath10k/ath10k_core.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath10k/pci.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath10k/ce.o
  LD [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath10k/ath10k_pci.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath10k/usb.o
  LD [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath10k/ath10k_usb.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath5k/caps.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath5k/initvals.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath5k/eeprom.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath5k/gpio.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath5k/desc.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath5k/dma.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath5k/qcu.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath5k/pcu.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath5k/phy.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath5k/reset.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath5k/attach.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath5k/base.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath5k/led.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath5k/rfkill.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath5k/ani.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath5k/sysfs.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath5k/mac80211-ops.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath5k/pci.o
  LD [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath5k/ath5k.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath6kl/debug.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath6kl/hif.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath6kl/htc_mbox.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath6kl/htc_pipe.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath6kl/bmi.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath6kl/cfg80211.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath6kl/init.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath6kl/main.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath6kl/txrx.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath6kl/wmi.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath6kl/core.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath6kl/recovery.o
  LD [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath6kl/ath6kl_core.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath6kl/sdio.o
  LD [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath6kl/ath6kl_sdio.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath6kl/usb.o
  LD [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath6kl/ath6kl_usb.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath9k/beacon.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath9k/gpio.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath9k/init.o
  CC [M]  /mnt/older/home/user/problems/atheros_problems/atheros/ath9k/main.o
/mnt/older/home/user/problems/atheros_problems/atheros/ath9k/main.c: In function ‘ath9k_fill_chanctx_ops’:
/mnt/older/home/user/problems/atheros_problems/atheros/ath9k/main.c:2635:37: error: assignment to ‘void (*)(struct ieee80211_hw *, struct ieee80211_vif *, u16)’ {aka ‘void (*)(struct ieee80211_hw *, struct ieee80211_vif *, short unsigned int)’} from incompatible pointer type ‘void (*)(struct ieee80211_hw *, struct ieee80211_vif *)’ [-Werror=incompatible-pointer-types]
  ath9k_ops.mgd_prepare_tx           = ath9k_mgd_prepare_tx;
                                     ^
cc1: some warnings being treated as errors
make[4]: *** [/usr/src/linux-headers-4.19.0-4-common/scripts/Makefile.build:309: /mnt/older/home/user/problems/atheros_problems/atheros/ath9k/main.o] Error 1
make[3]: *** [/usr/src/linux-headers-4.19.0-4-common/scripts/Makefile.build:549: /mnt/older/home/user/problems/atheros_problems/atheros/ath9k] Error 2
make[2]: *** [/usr/src/linux-headers-4.19.0-4-common/Makefile:1535: _module_/mnt/older/home/user/problems/atheros_problems/atheros] Error 2
make[1]: *** [Makefile:146: sub-make] Error 2
make: *** [Makefile:8: all] Error 2
make: Leaving directory '/usr/src/linux-headers-4.19.0-4-amd64'

Error in Ubuntu 18.10 on Samsung Galaxy Book 10.6

Hello,

I keep encountering a problem in Ubuntu 18.10,
when trying to make the file, as below:

~/atheros$ make -C /lib/modules/$(uname -r)/build M=$(pwd) modules
make: Entering directory '/usr/src/linux-headers-4.18.0-11-generic'
CC [M] /atheros/ath9k/main.o
/atheros/ath9k/main.c: In function ‘ath9k_fill_chanctx_ops’:
/atheros/ath9k/main.c:2635:37: error: assignment to ‘void (*)(struct ieee80211_hw *, struct ieee80211_vif , u16)’ {aka ‘void ()(struct ieee80211_hw *, struct ieee80211_vif , short unsigned int)’} from incompatible pointer type ‘void ()(struct ieee80211_hw *, struct ieee80211_vif *)’ [-Werror=incompatible-pointer-types]
ath9k_ops.mgd_prepare_tx = ath9k_mgd_prepare_tx;
^
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:327: /atheros/ath9k/main.o] Error 1
make[1]: *** [scripts/Makefile.build:581: /atheros/ath9k] Error 2
make: *** [Makefile:1546: module/atheros] Error 2
make: Leaving directory '/usr/src/linux-headers-4.18.0-11-generic'

Now this is on the Samsung Galaxy Book 10.6, not the 12. But I assume it will appear on both devices.

Make Issue

Make command failed with the following error on Ubuntu 18.4. I have replicated it twice on fresh installs.

/home/kyle/atheros/wil6210/cfg80211.c: In function ‘wil_probe_client_handle’:
/home/kyle/atheros/wil6210/cfg80211.c:1809:2: error: too many arguments to function ‘cfg80211_probe_status’
  cfg80211_probe_status(ndev, sta->addr, req->cookie, alive,
  ^~~~~~~~~~~~~~~~~~~~~
In file included from /home/kyle/atheros/wil6210/cfg80211.c:21:0:
./include/net/cfg80211.h:5750:6: note: declared here
 void cfg80211_probe_status(struct net_device *dev, const u8 *addr,
      ^~~~~~~~~~~~~~~~~~~~~
scripts/Makefile.build:332: recipe for target '/home/kyle/atheros/wil6210/cfg80211.o' failed
make[2]: *** [/home/kyle/atheros/wil6210/cfg80211.o] Error 1
scripts/Makefile.build:606: recipe for target '/home/kyle/atheros/wil6210' failed
make[1]: *** [/home/kyle/atheros/wil6210] Error 2
Makefile:1552: recipe for target '_module_/home/kyle/atheros' failed
make: *** [_module_/home/kyle/atheros] Error 2
make: Leaving directory '/usr/src/linux-headers-4.15.0-33-generic'

Command

make -C /lib/modules/$(uname -r)/build M=$(pwd) modules

Thank you for doing this. Excited for this to be working!

edit: Spelling

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.