I am trying to make wifi P2P work using i.MX 8M Plus with Yocto 4.0, and TI DP83867 phy.
I am basically following the instructions here:
issuing the command "iw phy" shows that
* P2P-client (Client)
* P2P-GO (Group owner)
* P2P-device
are supported, so in theory both phys support wifi P2P operation.
The other computer is an X86 system running Debian 11.
The command p2p_find sees on both i.mx8m plus and the x86 system the other system.
But when I ping the other system, the wifi driver crashes.
Am I missing something? I am thankful for any help on this topic,
Hello @elenagarcia,
I hope you are doing well.
Please share the console logs, dmesg logs and the sequence of commands you run to debug the issue.
Thanks & Regards,
Sanket Parekh
Thanks for approaching the issue,
The commands I issue are:
Firtst create a file named test.conf in /lib/firmware/nxp, with the following content:
ctrl_interface=/var/run/wpa_supplicant
update_config=1
device_name=mint
device_type=2-0050F204-1
p2p_listen_reg_class=81
p2p_listen_channel=1
p2p_oper_reg_class=81
p2p_oper_channel=1
p2p_go_intent=1
p2p_no_group_iface=1
Then I run:
Debian | Yocto i.mx8m plus |
/sbin/wpa_supplicant -i wlp3s0 -c p2p.conf -Dnl80211 | wpa_supplicant -i mlan0 -c wifi-p2p.conf -Dnl80211 |
/sbin/wpa_cli -i wlp3s0 | wpa_cli -i mlan0 |
The command p2p_find finds the MAC of the other system for each of the systems. The problems is when connecting:
Then I test the different autorization mechanisms, like described here:https://www.digi.com/resources/documentation/digidocs/90001515/reference/yocto/wlan_ug/r_wlanug_wifi...
The process of setting a pin on one of the peers is the following:
One peer must be the go (group owner)
p2p_group_add adds a group
interface lists the new interface for that group
wps_pin any creates a new random pin, which must be used to connect from the other device
On the other device:
connect <mac> <pin> join should connect the two peers
But this fails.
For both methods PCB and PIN, I see in the serial console of the i.mx8m plus that the wifi kernel driver crashes.
These are the output to the connect command:
mlan0: Trying to associate with d2: b2:0c:cd: 37:e2 (SSID='DIRECT-Jo' freq=2412 MHz) mlano: Association request to the driver failed
mlan0: CTRL-EVENT-SCAN-FAILED ret=-14 retry=1
rfkill: Cannot open RFKILL control device
mlan0: Trying to associate with d2: b2:0c:cd: 37: e2 (SSID='DIRECT-Jo' freq=2412 MHz) mlano: Association request to the driver failed
rfkill: Cannot open RFKILL control device
mlan0: Trying to associate with d2: b2:0c:cd: 37: e2 (SSID='DIRECT-Jo' freq=2412 MHz) mlano: Association request to the driver failed
nl80211: Failed to write to /proc/sys/net/ipv4/conf/mlan0/drop_unicast_in_12_multicast: No su ch file or directory
nl80211: Failed to set IPv4 unicast in multicast filter
rfkill: Cannot open RFKILL control device
mlan0: Trying to associate with d2: b2:0c:cd: 37:e2 (SSID='DIRECT-Jo' freq=2412 MHz) mlano: Association request to the driver failed
rfkill: Cannot open RFKILL control device
mlan0: Trying to associate with d2: b2:0c:cd: 37:e2 (SSID='DIRECT-Jo' freq=2412 MHz)
This is the serial console log:
[176.666698] mwifiex_sdio mmc0:0001:1: ===mwifiex driverinfo dump end=== [ 176.673365] mwifiex_sdio mmc0:0001:1: mwifiex firmware dump start ==
==
[176.701826] mwifiex_sdio mmc0:0001:1: Fail to pull ctrl_data
[ 176.707505] mwifiex_sdio mmc0:0001:1: firmware dump failed
[176.713027] mwifiex_sdio mmc0:0001:1: == mwifiex dump information to /sys/class/devcoredump start [176.722042] mwifiex_sdio mmc0:0001:1: == mwifiex dump information to /sys/class/devcoredump end [176.731013] mwifiex_sdio mmc0:0001:1: info: shutdown mwifiex...
[176.737814] mwifiex_sdio mmc0:0001:1: PREP_CMD: card is removed 176.743824] mwifiex_sdio mmc0:0001:1: PREP_CMD: card is removed
[176.825598] mmc0: card 0001 removed
[176.931210] mmc0: new ultra high speed SDR104 SDIO card at address 0001
[ 176.941738] Bluetooth: vendor=0x2df, device=0x9142, class-255, fn=2
[ 177.822697] mwifiex_sdio mmc0:0001:1: info: FW download over, size 621896 bytes 178.693716] btmrvl_sdio mmc0:0001:2: fail to parse irq_bt from device tree
178.700631] mwifiex_sdio mmc0:0001:1: WLAN FW is active
[ 178.746580] mwifiex_sdio mmc0:0001:1: Unknown api_id: 3
[ 178.751838] mwifiex_sdio mmc0:0001:1: Unknown api_id: 4
[178.757091] mwifiex_sdio mmc0:0001:1: Unknown GET_HW_SPEC TLV type: 0x217
[178.783054] mwifiex_sdio mmc0:0001:1: info: MWIFIEX VERSION: mwifiex 1.0 (16.68.1.p179) [178.791201] mwifiex_sdio mmc0:0001:1: driver_version = mwifiex 1.0 (16.68.1.p179)
Hello @elenagarcia,
I hope you are doing well.
Please check the suggestions below.
• Edit wifi_mod_para.conf configuration file to add p2p_enh=1 and host_mlme=1 parameter-value pairs
• Load the modules in the kernel:
modprobe moal mod_para=nxp/wifi_mod_para.conf
• Start the wpa_supplicant
killall wpa_supplicant
killall hostapd
wpa_supplicant -g/var/run/wpa_supplicant-global -D nl80211 –B &
Now one can start the wpa_cli
Thanks & Regards,
Sanket Parekh