Step 1 — Pre-Requisites The line of code below will update, then upgrade all of the packages and their dependencies as necessary. Then it will install git if it’s not already installed, as well as the other tools needed to build the kernels. *Note I use the -y flag to indicate that I am okay with the installs. feel free to change that if you want to be asked.
sudo apt update && sudo apt -y full-upgrade && sudo apt install -y git && sudo apt-get install -y build-essential libncurses-dev bison flex libssl-dev libelf-dev dwarves
I had to install a dwarf 1.17
Step 2.A — Source Code Clone kernel source code with the latest changes for the driver
git clone -b master https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
Step 2.B — Clone firmware
git clone https://github.com/kvalo/ath11k-firmware.git
Part 2 — Copy and Organize
Step 1 — Make a home for the new firmware
To do so we are going to make a directory for the new firmware inside the root /lib/
directory
sudo mkdir -p /lib/firmware/ath11k/QCA6390/hw2.0/
Step 2 — Copy Here we are copying any file with a .bin extension into the directory we just added.
sudo cp ~/ath11k-firmware/QCA6390/hw2.0/1.0.1/WLAN.HST.1.0.1-01740-QCAHSTSWPLZ_V2_TO_X86-1/*.bin /lib/firmware/ath11k/QCA6390/hw2.0/
Here we are copying the board-2.bin
sudo cp ~/ath11k-firmware/QCA6390/hw2.0/board-2.bin /lib/firmware/ath11k/QCA6390/hw2.0/board-2.bin
PART 3 — The makefile Step 1 - the make menu First , move into the ~/ath directory
cd ~/ath
Then, Once inside the ~/ath/ directory run:
make menuconfig
Step 2- configure the make file.
Using the arrow keys to navigate, and the return/enter key to toggle into the sub-menus and toggle the activation. Navigate to:
Device Drivers →
Network device support →
Wireless LAN →
Qualcomm Technologies 802.11ax chipset support →
Toggle on anything with the ath11k
in it. Now with all those activated, look at the bottom of the screen, look for save. You should be able to tab to it. then hit enter, then exit until your back in the terminal. Next we can make the file and the modules, then install them.
Step 4- sudo make -j$(nproc)
will use all available CPU cores when making the file. if you want you can run echo $(nproc)
and see how many core that will be.
sudo make -j$(nproc)
sudo make INSTALL_MOD_STRIP=1 modules_install -j$(nproc)
Step 5— Install Here use my 16 available cores. Be sure not to add a space between the -j and the $(nproc).
sudo make install -j$(nproc)
Step 6 —Reboot
sudo reboot now
Make sure you are starting with the right kernel. Once rebooted you can check it with:
uname -r
Should show something like 5.10.0-wt-ath+