yocto wi-fi with wl12xx

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

yocto wi-fi with wl12xx

Jump to solution
4,885 Views
michaeldiamond
Contributor III

Has anyone gotten the WIFI on the nitrogen6x to work with yocto?  We have a custom board that is loosly based on the nitrogen6x that has worked in LTIB.  We have used wifi with the LTIB images but are now just switching to yocto dizzy with an updated kernal(Starting with version3.10.17-1.0.2). All the documentation we read said the wifi works but we have had no success.

We have tried the default image from boundary devices on the nitrogen 6x and this is what happens.  When we try to bring up the wlan0 (ifconfig wlan0 up) we get the message

ifconfig: SIOCSIFFLAGS: Operation not possible due to RF-kill.

We noticed that the kernel module is no longer wl12xx_sdio and am not sure what else has changed. We see the kernel module wl12xx, wcore and wcore_sdio.  We have tried to modprobe all three of those.  When we try to set the essid we get the following error;
Cannot read /proc/net/wireless
Error for wireless request “Set ESSID” (8B1A) :
SET failed on device wlan0 ; Invalid argument.

What are we missing?  Being brand new to yocto and the updated kernel with device tree we have surely missed something.

Labels (5)
Tags (2)
0 Kudos
Reply
1 Solution
2,159 Views
michaeldiamond
Contributor III

Thank you for this we will look into it.

We were actually able to get it working for the default driver in the kernel.  For anyone else using this card this is what boundary devices sent us and what we did.

"

You can unblock wlan by typing “rfkill unblock wlan”. Then use wpa_supplicant to connect to your WAP.

I edited /etc/wpa_supplicant.conf to have:

network={
ssid=”My wireless SSID”
psk=”my WPA password”
}

Then I “killall wpa_supplicant”
Then start “wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dnl80211″
Then I just statically set my IP and routes and the such. I was able to ping my machine from my Nitrogen6x over my wireless.

For convenience you can script this in one of the boot scripts so its all automatic. Let me know if you have any other questions
-Ian"


What we now do is the following

$ rfkill unblock wlan

$ ifconfig wlan0 up

$ wpa_passphrase essid passphrase

This returns;

network={

ssid=”My wireless SSID”

psk=”my WPA password”

}

Edit the wpa_supplicant.conf file with the info that the wpa_passphrase returns. we also add a few extra commands in the wpa_sufflicant.conf file so our file looks like the following.

ctrl_interface=/var/run/wpa_supplicant

ctrl_interface_group=0

update_config=1

network={

        ssid="essid"

        #psk="my passphrase"

        psk=Hex number returned by wpa_passphrase

        scan_ssid=1

        proto=WPA RSN

        key_mgmt=WPA-PSK

        pairwise=CCMP TKIP

        group=CCMP TKIP

}

Then we run the following commands;

$ killall wpa_supplicant

$ wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dnl80211

$ udhcpc -i wlan0


Now we were able to ping google and other sites.


View solution in original post

0 Kudos
Reply
2 Replies
2,159 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hello Michael,

     The issue you met should be related to kernel version. the kernel version in LTIB you used before should be linux 3.0.35 , but in kernel 3.10.17, driver architecture has been changed, so you had better get new wl12xx driver for linux kerenl 3.10.17 from TI team. the following link should be helpful for you :

http://e2e.ti.com/support/wireless_connectivity/f/307/t/384826

     Please try it !

Regards,

Weidong

2,160 Views
michaeldiamond
Contributor III

Thank you for this we will look into it.

We were actually able to get it working for the default driver in the kernel.  For anyone else using this card this is what boundary devices sent us and what we did.

"

You can unblock wlan by typing “rfkill unblock wlan”. Then use wpa_supplicant to connect to your WAP.

I edited /etc/wpa_supplicant.conf to have:

network={
ssid=”My wireless SSID”
psk=”my WPA password”
}

Then I “killall wpa_supplicant”
Then start “wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dnl80211″
Then I just statically set my IP and routes and the such. I was able to ping my machine from my Nitrogen6x over my wireless.

For convenience you can script this in one of the boot scripts so its all automatic. Let me know if you have any other questions
-Ian"


What we now do is the following

$ rfkill unblock wlan

$ ifconfig wlan0 up

$ wpa_passphrase essid passphrase

This returns;

network={

ssid=”My wireless SSID”

psk=”my WPA password”

}

Edit the wpa_supplicant.conf file with the info that the wpa_passphrase returns. we also add a few extra commands in the wpa_sufflicant.conf file so our file looks like the following.

ctrl_interface=/var/run/wpa_supplicant

ctrl_interface_group=0

update_config=1

network={

        ssid="essid"

        #psk="my passphrase"

        psk=Hex number returned by wpa_passphrase

        scan_ssid=1

        proto=WPA RSN

        key_mgmt=WPA-PSK

        pairwise=CCMP TKIP

        group=CCMP TKIP

}

Then we run the following commands;

$ killall wpa_supplicant

$ wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dnl80211

$ udhcpc -i wlan0


Now we were able to ping google and other sites.


0 Kudos
Reply