Ath10K Wifi Driver

Anyone got ath10k driver working on Nvidia Xavier ?

I tried to compile a kernel with ath10k modules enabled. Compile does not show any errors, but at the end I can see that kernel can detect the wireless adapter in lspci.

But since ath10k is not loading and doesn’t list it as wireless interface.

It should be working. Could you share how did you build and update it to your device?

I followed the instructions on the doc

https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide%2Fkernel_custom.html%23wwpID0E0HB0HA

Enabled ath10k driver by modifying tegra_defconfig. Built the kernel using make instructions.

Followed the instructions to copy Image and dts/dtb

Flashed the new kernel image xavier using jetpack.

Could you make sure your driver is loaded inside kernel image? Maybe add some debug print inside the driver can help.

That’s the issue. Driver is not getting loaded into the kernel image.

I have been able to get it build for another ARM based product.

Could you share what you have modified?

Here are the configs I have in my tegra_defconfig file related to ath10k

CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y
CONFIG_ARCH_TEGRA_18x_SOC=y
CONFIG_ARCH_TEGRA_19x_SOC=y
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
CONFIG_ATH10K_SDIO=m
CONFIG_ATH10K_USB=m
CONFIG_ATH10K_DEBUG=y
CONFIG_ATH10K_DEBUGFS=y
CONFIG_ATH10K_TRACING=y
CONFIG_ATH9K=m
CONFIG_ATH9K_DEBUGFS=y
CONFIG_ATH9K_STATION_STATISTICS=y
CONFIG_ATH9K_WOW=y
CONFIG_ATH9K_CHANNEL_CONTEXT=y
CONFIG_ATH9K_HTC=m
CONFIG_ATH9K_HTC_DEBUGFS=y

Hi,

You build it as a module but not kernel image. Please check if lsmod has this driver or not.

If there is no such driver, please check what is under /lib/modules/.

Yes. Either way it does not work.

Here are my contents of lib/modules

/lib/modules/4.9.108-tegra/kernel/drivers/net/wireless/ath$ ls -l
total 2176
drwxr-xr-x 2 root root 4096 Jan 5 01:04 ath6kl
drwxr-xr-x 2 root root 4096 Jan 5 01:04 ath9k
-rw-r–r-- 1 root root 2213392 Jan 5 01:04 ath.ko
drwxr-xr-x 2 root root 4096 Jan 5 01:04 wil6210

I do not see ath10k here.

I don’t know why you say “either way”. Have you tried both methods(=y/=m) in tegra_defconfig?

Yes I tried both both methods(=y/=m) in tegra_defconfig

When you tried “-m” you need to copy those modules to your device. Otherwise it would not work.

The kernel image case(-y) bothers me. I would try it on my side too.

Thanks for your patience.

Thanks and please post the solution here if you find it working.

If you change the kernel image itself keep in mind that CONFIG_LOCALVERSION is the suffix of “uname -r”, and that this is not set in any _defconfig. Modules are always searched for at:

/lib/modules/$(uname -r)/

If you modified the kernel, have you checked that the modules are in the correct module directory for that particular kernel build?

Yes, I added a symlink to fix the path.

Depending on circumstances some modules with a different path may not load (or they might) even if a symbolic link is used (especially if an “=y” feature changes).