Intel NUC Kit NUC6CAYH Intel Celeron J3455 , Wifi not provisioning

Hello,

I just purchased an Intel NUC, because it says Intel NUC supported.
I am using the latest dev image.
Using Wifi internal does not work (Intel® Wireless-AC 3168 M.2).
How can I fix this with Wifi? I would like to use wifi-connect with this one.
Thank you

1 Like

I dropped this file https://wireless.wiki.kernel.org/_media/en/users/drivers/iwlwifi-3168-ucode-22.361476.0.tgz in /lib/firmware. Now, but for some reasons it says host version unknown and I cant access SSH host OS.

I switched off the device and rebooted, and now I have to devices in the dashboard. It says online, but I cant access the device. Rebooted again. I receive a 3rd device in the dashboard :confused: It is also not showing any IP.

nuc2

I changed the HDD inside, now I reach post-provisioning stage. I removed the USB pen. Restarted. But it will not change the state to online.

Inside I am stuck at the command
Mounting resin inactive root partition mountpoint…
EXT4-fs (sda3): mounted filesystem wirth ordered data mode. Opts: (null)
I even copied all ucodes for 3168 from git linux firmware repo.

It won’t move.

If I plug in the LAN connection and reboot. The device provisions! So it has to do with the Wifi something I believe.

STATUS boot from HDD (Post provision finished with LAN connection) Wifi is not being detected (even in ifconfig host os shell)

STATUS boot from Flash->HDD (Pre post provision) you see again that wifi has troubles, but can somehow manage to detect the wifi afterwards.

I’ve been using the NUC as well. Wifi has worked in the past, but with the latest build (2.9.7) I’ve had to use non-wifi to get it provisioned. :frowning:

@rquant we will include the required firmware for Intel® Wireless-AC 3168 M.2 in our next release.
@jgentes are you using the same wifi chipset?

@floion I have added all files containing iwlwifi 3168 ucode files to /lib/firmware. It will not provision via wifi. Is there a special resin firmware for this?

@floion I’m not sure the wifi chipset… the model is 5i5RYH and the wifi has worked in the past and I haven’t updated the chipset.

@jgentes assuming you bought the NUC 5i5RYH Kit, https://www.intel.de/content/www/de/de/products/boards-kits/nuc/kits/nuc5i5ryh.html

Integrated Wifi Intel® Wireless-AC 7265 + BT 4.2

3168 code 22 works at the beginning when flashing in lib/firmware. I believe 3168 is not being activated inside the copied OS.

I am trying following will it work?

I added:

PACKAGES =+ "${PN}-ibt ${PN}-rtl8723b-bt ${PN}-iwlwifi-3168 "

FILES_${PN}-iwlwifi-3168 = " \
    /lib/firmware/iwlwifi-3168-22.ucode \
    "

Then compiling the whole thing with./resin-yocto-scripts/build/barys

Yes, that should work.
I checked the linux-firmware version we have for the Intel NUC now and apparently there is also a newer firmware: iwlwifi-3168-27.ucode
You could try to package that one like you showed above. If that works, maybe you could consider doing a pull request in the resin-intel repository? I opened an issue to track this request yesterday: https://github.com/resin-os/resin-intel/issues/107

Also, do you build using barys “-d” build switch? If not, can you add that flag? It is the development flag which allows console login to the OS so you can login and we can check what failed eventually

@jgentes which version was the one that previously worked for you?

And when you say you had to use non-wifi to get it provision, what were the exact symptoms? Did it never show up in the dashboard if you only had the wifi configured (no eth plugged in) but did it automatically shutdown after the first boot? (that is the boot where it should install resinOS to internal storage and then just shutdown)

Ok, if everything runs, I will make a pull request.

So, after like 20h I managed to create a successful image. Settings up balena daemon with permissions.
I used ./barys -d. Do I need the -resinio flag, too?

I received multiple files inside the /build folder.
I copied (replaced) the resin-img file which I have built, with the one inside /opt/ of my USB stick.
So I flashed the USB to my HDD. Removed the USB and booted up using the HDD (Post-provisioning). From the logs I see that WIFI is now being accepted.

Now it is stuck at

> [OK] Reached target Sockets.

I rebooted again.
Now it is stuck at

> EXT4-fs (sda3): mounted filesystem with ordered data mode. Opts: (null)

Then again reboot, halts at other point.

If you want a resin.io managed image, then you need to build using the “–resinio” flag.
You should burn to the USB stick the following image file (and more exactly, the image file that this points to):

build/tmp/deploy/images/genericx86-64/resin-image-flasher-genericx86-64.resinos-img

(note again that the above file I mentioned is a symlink, use the target file this points to and burn that to an USB thumb drive )

We recommend using Etcher for burning the USB stick: www.etcher.io

Is this what you did?

I used./barys -d --resinio

I copied build/tmp/deploy/images/genericx86-64/resin-image-flasher-genericx86-64.resinos-img
to a new folder and rename.resinos-img to .img (So that etcher can load it). Burn to USB.

Copying to USB Stick manually:
Next I placed myiwlwifi-3168-22.ucode file into /lib/firmware
I placed resin-wifi01 from my preconfigured image into the newly baked one system connections folder.
Same thing I did for placing the config.json file of the preconfigured image to my newly baked one.

Boot up with USB Stick. Shutsdown, but does not show the device on the dashboard. No post-provisioning.
Remove the USB Stick. Boot from HDD.
Halts at following message:
> [OK] Started Config.json path watch
> Starting Docker Socket for the API.
> usb 1-8: new full-speed USB device number 8 using xhci_hcd

Did I miss something to copy to the new image?

One thing first. If you build it with the changes you mentioned above, you should already have that firmware in there. Did you not build it with your changes?

Second, can you disable resin-init-flasher.service from running? You could delete the symlink from the USB stick that makes it run or just rename the script so the service does not execute it. Mount the USB thumb drive on your computer and rename the script

<USB stick mount location>/usr/bin/resin-init-flasher

to something else.
Then boot with the USB stick again. It won’t provision this time but it won’t shutdown either so you can press CTRL + ALT + F2 and get to a login prompt if it is a development image.
Once you login, wait a half a minute to a minute to give the vpn service some time to auth. Then execute

journalctl --no-pager -u openvpn-resin

and paste the output here.
Also, check with

ifconfig

if there is any wifi interface with IP assigned. If not, run

journalctl --no-pager -u NetworkManager

and paste the output here while also double checking that the resin-wifi01 file is present in

/mnt/boot/system-connections/

and has the correct credentials (don’t paste that file here as it has your wifi credentials)

Thanks

One thing first. If you build it with the changes you mentioned above, you should already have that firmware in there. Did you not build it with your changes?

I have

PACKAGES =+ "${PN}-ibt ${PN}-rtl8723b-bt ${PN}-iwlwifi-3168"

FILES_${PN}-ibt = " \
    /lib/firmware/intel/ibt-11-5.ddc \
    /lib/firmware/intel/ibt-11-5.sfi \
    /lib/firmware/intel/ibt-12-16.ddc \
    /lib/firmware/intel/ibt-12-16.sfi \
    /lib/firmware/intel/ibt-hw-37.8.bseq \
    /lib/firmware/intel/ibt-hw-37.8.10-fw-1.10.3.11.e.bseq \
    "

FILES_${PN}-rtl8723b-bt = " \
    /lib/firmware/rtl_bt/rtl8723b_fw.bin \
    "

FILES_${PN}-iwlwifi-3168 = " \
    /lib/firmware/iwlwifi-3168-22.ucode \
    /lib/firmware/iwlwifi-3168-27.ucode \
    "

But after I flash the image on to the USB stick. /lib/firmware does not contain iwlwifi-3168-22.ucode (any iwlwifi 3168).

I believe it is possible to include any file, which is in this repo? git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

@floion I think it was the previous rev (2.7.8)… I just tried it again and it did shutdown properly and I rebooted as with a normal provisioning, but it just never shows up on resin.io

Sorry about that, there is one more thing you need to add. You need also

linux-firmware-iwlwifi-3168

added to https://github.com/resin-os/resin-intel/blob/master/layers/meta-resin-genericx86/recipes-core/packagegroups/packagegroup-resin-connectivity.bbappend#L1

@jgentes can you try to disable the flasher like I suggested in Intel NUC Kit NUC6CAYH Intel Celeron J3455 , Wifi not provisioning and then let us know when you can login on the console so we can further debug this?

Wow, it provisioned and is online via WIFI! Thanks

Now I just have to find which correct ibt firmware I need. Do you have list of all ucodes which are supported by this kernel version?

Is there also a way I can change wlp2s0 to wlan0? Thank you very much @floion for your help.