Intel 9260 WiFi on jetson nano / jetbot

It’s in the board support package (BSP). @Manikanta explains it above:

That was me posting. My problem was i had not enough space on my sd card. After I switched from 32 to a bigger one I could compile it successfully.
You can install it by first doing
a backup of the installed kernel image
sudo cp /boot/Image /boot/Image.original
and then install everything
sudo make modules_install
sudo cp arch/arm64/boot/Image /boot/Image

this will install the modules and the kernel image.
I was told i should always build the modules and the kernel and haven’t tried otherwise.
Still if you’re not willing to try and backports bt drivers and you need wifi and BT you’re pretty much out of luck right now and should go with the older 8k series card.

I got my 9260 working with a few hiccups. For those late in the game, here is how I accomplished this:

Assuming fresh image:

  1. Download the driver package and untar: https://developer.nvidia.com/embedded/dlc/l4t-jetson-driver-package-32-1-jetson-nano
  2. cd into the downloaded folder, and run source_sync.sh. The tag, when prompted, is tegra-l4t-r32.1
  3. cd to (downloaded directory)/sources/kernel/kernel-4.9 and copy the patch written by @Manikanta. Run git apply to the patch to apply it
  4. Follow the kernel build instructions from step 3 and on at https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fkernel_custom.html%23. Note that the instructions are kind of vague. The builds occur inside the kernel source directory (downloaded directory)/sources/kernel/kernel-4.9
  5. Copy (build dir)/arch/arm64/boot/Image to /boot/Image where (build_dir) is $TEGRA_KERNEL_OUT according to the instructions linked
  6. Reboot
  7. Clone and build and install the iwlwifi backport using the instructions from @idcrook in #5
  8. Clone the linux-firmware git repo: git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
  9. Copy all iwlwifi-9260* from the linux-firmware repo to /lib/firmware

Here are the step changes in the kernel build documentation if you are building directly on your Jetson nano:

  • Skip #5, #6 and #8
  • For #7, Just do the following: sudo make ARCH=arm64 O=$TEGRA_KERNEL_OUT modules_install

Update: I didn’t make a mistake. I just waited 30 seconds and the WiFi adapter was detected, initialized, and connected!

Thanks dlodha, with this I finally managed to update kernels. The instructions are still a bit vague (first time building linux and any kernels here) but I guess I managed something.

I have Intel 7265 with the same problem diagnose from Manikanta, and after kernel update only the Bluetooth started working, still no WiFi.
With the “lspci -vnn” commands I see that 7265 has PCIe errors “Unknown header type 7f”

I have a separate topic with full “dmesg” dump here:
https://devtalk.nvidia.com/default/topic/1052085/jetson-nano/pcie-problems-with-intel-7265-wifi-unknown-header-type-7f

Is the latest firmware supposed to have this sorted out? Because it’s not. Upon plugging in a Wifi card I now get no USB wifi either.

Also which tag to checkout when applying the patch. Context is really important if we as consumers (regardless of being creators) are going to be asked to patch & build the kernel.

Looks like my previous comment has been answered. I just flashed image to new micro-sd and atheros wifi works. I’ve ordered 2 of the recommended Intel cards for my other 2 jetson nano’s. I may look for a fan also as I’ve noticed how hot it all runs with WiFi turned on.

Following steps outlined in #5 to build/install backport-iwlwifi. Keep getting an error regarding declaration of iwl_mvm_ppag_send_cmd in fw.c during make.

Any ideas of what might be the issue?

sbessette@sbessette-nano:~/Downloads/bp/backport-iwlwifi$ make
CC [M] /home/sbessette/Downloads/bp/backport-iwlwifi/drivers/net/wireless/intel/iwlwifi/mvm/fw.o
/home/sbessette/Downloads/bp/backport-iwlwifi/drivers/net/wireless/intel/iwlwifi/mvm/fw.c:1251:12: error: static declaration of ‘iwl_mvm_ppag_send_cmd’ follows non-static declaration
static int iwl_mvm_ppag_send_cmd(struct iwl_mvm *mvm)
^~~~~~~~~~~~~~~~~~~~~
In file included from /home/sbessette/Downloads/bp/backport-iwlwifi/drivers/net/wireless/intel/iwlwifi/mvm/fw.c:76:0:
/home/sbessette/Downloads/bp/backport-iwlwifi/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h:2204:5: note: previous declaration of ‘iwl_mvm_ppag_send_cmd’ was here
int iwl_mvm_ppag_send_cmd(struct iwl_mvm *mvm);
^~~~~~~~~~~~~~~~~~~~~
/home/sbessette/Downloads/bp/backport-iwlwifi/drivers/net/wireless/intel/iwlwifi/mvm/fw.c:1251:12: warning: ‘iwl_mvm_ppag_send_cmd’ defined but not used [-Wunused-function]
static int iwl_mvm_ppag_send_cmd(struct iwl_mvm *mvm)
^~~~~~~~~~~~~~~~~~~~~
/home/sbessette/Downloads/bp/backport-iwlwifi/drivers/net/wireless/intel/iwlwifi/mvm/fw.c:1246:12: warning: ‘iwl_mvm_get_ppag_table’ defined but not used [-Wunused-function]
static int iwl_mvm_get_ppag_table(struct iwl_mvm *mvm)
^~~~~~~~~~~~~~~~~~~~~~
/home/sbessette/Downloads/Linux_for_Tegra/sources/kernel/kernel-4.9/scripts/Makefile.build:335: recipe for target ‘/home/sbessette/Downloads/bp/backport-iwlwifi/drivers/net/wireless/intel/iwlwifi/mvm/fw.o’ failed
make[11]: *** [/home/sbessette/Downloads/bp/backport-iwlwifi/drivers/net/wireless/intel/iwlwifi/mvm/fw.o] Error 1
/home/sbessette/Downloads/Linux_for_Tegra/sources/kernel/kernel-4.9/scripts/Makefile.build:649: recipe for target ‘/home/sbessette/Downloads/bp/backport-iwlwifi/drivers/net/wireless/intel/iwlwifi/mvm’ failed
make[10]: *** [/home/sbessette/Downloads/bp/backport-iwlwifi/drivers/net/wireless/intel/iwlwifi/mvm] Error 2
/home/sbessette/Downloads/Linux_for_Tegra/sources/kernel/kernel-4.9/scripts/Makefile.build:649: recipe for target ‘/home/sbessette/Downloads/bp/backport-iwlwifi/drivers/net/wireless/intel/iwlwifi’ failed
make[9]: *** [/home/sbessette/Downloads/bp/backport-iwlwifi/drivers/net/wireless/intel/iwlwifi] Error 2
/home/sbessette/Downloads/Linux_for_Tegra/sources/kernel/kernel-4.9/scripts/Makefile.build:649: recipe for target ‘/home/sbessette/Downloads/bp/backport-iwlwifi/drivers/net/wireless/intel’ failed
make[8]: *** [/home/sbessette/Downloads/bp/backport-iwlwifi/drivers/net/wireless/intel] Error 2
/home/sbessette/Downloads/Linux_for_Tegra/sources/kernel/kernel-4.9/scripts/Makefile.build:649: recipe for target ‘/home/sbessette/Downloads/bp/backport-iwlwifi/drivers/net/wireless’ failed
make[7]: *** [/home/sbessette/Downloads/bp/backport-iwlwifi/drivers/net/wireless] Error 2
/home/sbessette/Downloads/Linux_for_Tegra/sources/kernel/kernel-4.9/Makefile:1629: recipe for target ‘module/home/sbessette/Downloads/bp/backport-iwlwifi’ failed
make[6]: *** [module/home/sbessette/Downloads/bp/backport-iwlwifi] Error 2
Makefile:171: recipe for target ‘sub-make’ failed
make[5]: *** [sub-make] Error 2
Makefile:24: recipe for target ‘__sub-make’ failed
make[4]: *** [__sub-make] Error 2
Makefile.build:6: recipe for target ‘modules’ failed
make[3]: *** [modules] Error 2
Makefile.real:100: recipe for target ‘modules’ failed
make[2]: *** [modules] Error 2
Makefile:40: recipe for target ‘modules’ failed
make[1]: *** [modules] Error 2
Makefile:30: recipe for target ‘default’ failed
make: *** [default] Error 2

So, I’ve been able to get rid of those annoying pcie error messages during boot. But the wifi is still not working. I am actually using 7265, but that’s the same issue.

So far I have:

[    8.235168] Intel(R) Wireless WiFi driver for Linux
[    8.235172] Copyright(c) 2003- 2015 Intel Corporation
[    8.235395] iwlwifi 0000:01:00.0: enabling device (0000 -> 0002)
[    8.261292] pcieport 0000:00:01.0: AER: Uncorrected (Non-Fatal) error received: id=0010
[    8.261302] pcieport 0000:00:01.0: PCIe Bus Error: severity=Uncorrected (Non-Fatal), type=Transaction Layer, id=0008(Requester ID)
[    8.274537] pcieport 0000:00:01.0:   device [10de:0fae] error status/mask=00004000/00000000
[    8.284266] pcieport 0000:00:01.0:    [14] Completion Timeout     (First)
[    8.292497] pcieport 0000:00:01.0: broadcast error_detected message
[    8.292502] pcieport 0000:00:01.0: AER: Device recovery failed

I’ve compiled the kernel with the patch. I wasn’t able to compile backport drivers though. I really hope someone will solve this since I can’t get hand on anything other than Intel 7265. Nobody just sells it any more in my country.

If anyone wants the compiled kernel binary with patch applied, just send me a message.

And if anyone happens to have backport iwlwifi 7265 driver working, I’d be glad if you share it with me.

Don’t apply the patch any more. Just download the latest image and flash (I know it wastes a lot of time)

Interestingly updates did not solve and the patch made things worse when manually applied; but getting the latest image my 9260 and realtek both work (although boy does the unit get hot).

Not working on killer 1550

@lewiscowles, was this just plug-and-play for you?? I’m ‘bout at my wits’ end having now tried basically everything in this thread (flashing the latest Jetpack image, trying to do the backport…with the same build errors shown by @mrsethparker, etc.). I seem to have bluetooth active with the 9260, but it doesn’t even appear to think about loading wifi. Don’t see anything related in dmesg. Did you have to do anything to get this working after flashing the latest fw?

I got mine working on a clean r32.2 image with backport-iwlwifi release/core46

$ cd <source_location>/backport-iwlwifi
$ git checkout release/core46
$ make clean
$ make defconfig-iwlwifi-public
$ make -j4
$ sudo make install

After a reboot I get the following from dmesg | grep iwlwifi:

[    3.729073] Loading modules backported from iwlwifi
[    3.729076] iwlwifi-stack-public:release/core46:7824:3d665049
[    4.945883] iwlwifi 0000:01:00.0: enabling device (0000 -> 0002)
[    4.950745] iwlwifi 0000:01:00.0: Direct firmware load for iwl-dbg-cfg.ini failed with error -2
[    4.960164] iwlwifi 0000:01:00.0: Falling back to user helper
[   66.877927] iwlwifi 0000:01:00.0: Found debug destination: EXTERNAL_DRAM
[   66.877943] iwlwifi 0000:01:00.0: Found debug configuration: 0
[   66.881049] iwlwifi 0000:01:00.0: loaded firmware version 46.93e59cf4.0 op_mode iwlmvm
[   67.465697] iwlwifi 0000:01:00.0: Detected Intel(R) Wireless-AC 9260 160MHz, REV=0x324
[   67.475888] iwlwifi 0000:01:00.0: Applying debug destination EXTERNAL_DRAM
[   67.476965] iwlwifi 0000:01:00.0: Allocated 0x00400000 bytes for firmware monitor.
[   67.529074] iwlwifi 0000:01:00.0: base HW address: fc:77:74:eb:d8:6d
[   67.618330] thermal thermal_zone6: Registering thermal zone thermal_zone6 for type iwlwifi
[   67.676032] iwlwifi 0000:01:00.0: Applying debug destination EXTERNAL_DRAM
[   67.797176] iwlwifi 0000:01:00.0: Applying debug destination EXTERNAL_DRAM
[   67.874884] iwlwifi 0000:01:00.0: FW already configured (0) - re-configuring

Awesome! That worked. I now have wifi working with the 9260. Thanks!!

But, truth be told the main reason I got the card was for Bluetooth. Which doesn’t SEEM to be working. Is there another backporting process required for bluetooth/BLE??

The only thing in dmesg is:

[    5.568794] usbcore: registered new interface driver btusb

lsmod shows:

btusb                  40149  0
btrtl                   7318  1 btusb
btbcm                   8808  1 btusb
btintel                10771  1 btusb

Nothing but wifi showing with “rfkill list all”. “hcitool dev” shows no devices. Truth-be-told I don’t know what the heck I’m doing since I’m not a “Linux guy,” so I could be totally missing a step. But Google hasn’t (yet) been my friend.

Was able to (re)install the 9260 module and get it working for wifi.
The backported iwlwifi kernel modules on R32.2 weren’t sufficient; also needed the latest firmwares

Summary:

  1. Use latest SD card image (`jetson-nano-sd-r32.2-2019-07-16.zip`) **R32.2**
  2. Download, build and install `backport-iwlwifi` kernel driver
  3. Download and place latest firmwares (from `linux-firmware.git`)
  4. Log into desktop environment and select / connect to chosen WiFi network (NetworkManager)
# backported drivers
cd projects/
git clone https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/backport-iwlwifi.git
cd backport-iwlwifi
git checkout release/core46
make clean
make defconfig-iwlwifi-public
make -j4
sudo make install

# firmwares
cd ~/projects/
git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
cd linux-firmware
sudo cp -av ./iwlwifi-9260* /lib/firmware/

sudo reboot

Using firmware that was on the R32.2 SD image:
[ 64.723709] iwlwifi 0000:01:00.0: loaded firmware version 43.95eb4e97.0 op_mode iwlmvm

Using latest firmware downloaded via kernel.org git repo:
[ 64.656131] iwlwifi 0000:01:00.0: loaded firmware version 46.a41adfe7.0 op_mode iwlmvm

After reboot, what I need to do? Do I need create a new WLAN, Im new in linux.No wifi adapter is looking for connections it is recognized in the PCI port.
Other thing is that Im booting from SSD, maybe I should copy some file in the SDCARD?
Thanks by you effort and share

Well I forgot the sudo make install step. After do it me board no not boot. I think because Im booting from SSD and probably I need copy the wifi kernel module in some place. In the SD or frim the SD to the SSD. Can tell me somebody what I need copy, where and how I do it without can boot?, there is some way to boot in safety mode like in windows?

follow up, I’ve seen the patch included in latest r32.2.0 release
commit> nv-tegra.nvidia Code Review - linux-4.9.git/commit
direct link for image> https://developer.download.nvidia.com/assets/embedded/downloads/jetson-nano-sd-card-image/r32.2-2019-07-17/jetson-nano-sd-r32.2-2019-07-16.zip

I’m downloading it now, will test later. I struggled to recompile the kernel from sources so I hope it will save you guys some time since this post appears as first search result when troubleshooting wifi issues

I have that image I think and after connect the wifi module didnt work and Im following this thread. Problem I was booting from SSD and the kernel was installed in the wrong disk, now my jetson dont boot.Im trying move the kernel to the right place in the MicroSD boot folder via serial, but no idea how, I dont know the commands, can help somwbody please?

Hi!

I could’t apply these instructions. Face with lots of errors and actually don’t really know these kinds of things. I’m just a beginner. Can anyone explain how can I git patch the file and make this 9260 wifi module work ? Or anyone has an image which already has that settings ?

Thank you for responses

It’s faster to just go and order a 8265NGW and use that, as it was the only one the nVidia engineer had in the drawer when WiFi was added to Jetson Nano.

nVidia seems to have lost interest to support any other WiFi card on Jetson Nano.

I tried to get intel 7265 working, having similar PCIe issues, but the support was also very hard to implement.
So I gave up on 7265 and ordered 8265NGW from Aliexpress. I bet it get’s to me in two months, ahead of any nVidia support.

so sad