1"use strict";(globalThis.webpackChunktechnexion_wiki=globalThis.webpackChunktechnexion_wiki||[]).push([[17325],{28453(e,n,t){t.d(n,{R:()=>o,x:()=>a});var i=t(96540);const s={},r=i.createContext(s);function o(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(r.Provider,{value:n},e.children)}},65624(e,n,t){t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>d});const i=JSON.parse('{"id":"embedded-software/linux/usage-guides/networking-wireless/testing-wireless-lan-wifi","title":"Testing Wireless LAN (WiFi)","description":"Add document description here","source":"@site/docs/embedded-software/linux/usage-guides/networking-wireless/testing-wireless-lan-wifi.md","sourceDirName":"embedded-software/linux/usage-guides/networking-wireless","slug":"/embedded-software/linux/usage-guides/networking-wireless/testing-wireless-lan-wifi","permalink":"/docs/embedded-software/linux/usage-guides/networking-wireless/testing-wireless-lan-wifi","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"title":"Testing Wireless LAN (WiFi)","description":"Add document description here"},"sidebar":"embSoftwareSidebar","previous":{"title":"Playing Audio to Bluetooth Speaker using Pulseaudio and Bluez (Yocto)","permalink":"/docs/embedded-software/linux/usage-guides/networking-wireless/playing-audio-to-bluetooth-speaker-using-pulseaudio-and-bluez-yocto"},"next":{"title":"Using a Cellular Modem and SIM Card","permalink":"/docs/embedded-software/linux/usage-guides/networking-wireless/using-a-cellular-modem-and-sim-card-on-technexion-products"}}');var s=t(74848),r=t(28453);const o={title:"Testing Wireless LAN (WiFi)",description:"Add document description here"},a=void 0,c={},d=[{value:"Test Wireless LAN in Station (STA) mode",id:"test-wireless-lan-in-station-sta-mode",level:2},{value:"WIFI connection",id:"wifi-connection",level:3},{value:"Test WIFI Access Point (AP) mode",id:"test-wifi-access-point-ap-mode",level:2},{value:"Clean the stored settings of hotspot.",id:"clean-the-stored-settings-of-hotspot",level:3},{value:"Switch off wifi",id:"switch-off-wifi",level:3},{value:"Switch on wifi",id:"switch-on-wifi",level:3},{value:"Operating WIFI in Concurrent Mode",id:"operating-wifi-in-concurrent-mode",level:2},{value:"Check that all of the required interfaces are present",id:"check-that-all-of-the-required-interfaces-are-present",level:3},{value:"Setup the tethering peer and make the p2p0 port enter forwarding state",id:"setup-the-tethering-peer-and-make-the-p2p0-port-enter-forwarding-state",level:3},{value:"Connecting the wifi to another access point",id:"connecting-the-wifi-to-another-access-point",level:3},{value:"Connecting and testing concurrent mode",id:"connecting-and-testing-concurrent-mode",level:3},{value:"Troubleshooting",id:"troubleshooting",level:3}];function l(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"test-wireless-lan-in-station-sta-mode",children:"Test Wireless LAN in Station (STA) mode"}),"\n",(0,s.jsxs)(n.p,{children:['In station mode, unit establishes a connection to a nearby access point. This is normally abbreviated as "STA" mode. The other mode is ',(0,s.jsx)(n.strong,{children:"Access Point"}),' mode (or "AP" mode). AP mode is covered further down in this article.']}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://www.youtube.com/watch?v=zZygEr8K6cQ",children:(0,s.jsx)(n.img,{src:"https://img.youtube.com/vi/zZygEr8K6cQ/0.jpg",alt:"Tutorial how-to setup Wi-Fi STA or AP mode on TechNexion Hardware."})})}),"\n",(0,s.jsx)(n.h3,{id:"wifi-connection",children:"WIFI connection"}),"\n",(0,s.jsx)(n.p,{children:"Check if the wifi module is loaded."}),"\n",(0,s.jsx)(n.p,{children:"For QCA WLAN:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"~# lsmod\nModule Size Used by\nwlan 4673536 0\n"})}),"\n",(0,s.jsx)(n.p,{children:'Run "connmanctl" in interactive mode.'}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"~# connmanctl\n"})}),"\n",(0,s.jsx)(n.p,{children:"Scan and list the wifi hotspots, then register the agent to handle user requests."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:"connmanctl> scan wifi\nScan completed for wifi\nconnmanctl> services\n hotspot wifi_4439c4970d84_544543484e4558494f4e_managed_psk\nconnmanctl> agent on\nAgent registered\nConnect to the hotspot and enter the passphrase.\n connmanctl> connect wifi_4439c4970d84_544543484e4558494f4e_managed_psk\n Agent RequestInput wifi_4439c4970d84_544543484e4558494f4e_managed_psk\n Passphrase = [ Type=psk, Requirement=mandatory, Alternates=[ WPS ] ]\n WPS = [ Type=wpspin, Requirement=alternate ]\n Passphrase?\n Connected wifi_4439c4970d84_544543484e4558494f4e_managed_psk\n"})}),"\n",(0,s.jsx)(n.p,{children:'Quit the interactive mode of "connmanctl":'}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:"connmanctl> quit\n"})}),"\n",(0,s.jsx)(n.p,{children:"Test if wifi actually works."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"~# ping www.google.com\nPING www.google.com (203.66.124.251): 56 data bytes\n64 bytes from 203.66.124.251: seq=0 ttl=59 time=4.905 ms\n64 bytes from 203.66.124.251: seq=1 ttl=59 time=12.278 ms\n64 bytes from 203.66.124.251: seq=2 ttl=59 time=4.307 ms\n"})}),"\n",(0,s.jsx)(n.p,{children:"For the next boot, connman will automatically connect to the hotspot you used before."}),"\n",(0,s.jsx)(n.h2,{id:"test-wifi-access-point-ap-mode",children:"Test WIFI Access Point (AP) mode"}),"\n",(0,s.jsx)(n.p,{children:"In this tutorial, the unit is connected via physical Ethernet port to a local network."}),"\n",(0,s.jsx)(n.p,{children:"In our default builds in Yocto when you connect an Ethernet cable to the unit, the unit will attempt to establish a network connection to the local network, including getting an IP address from the local DHCP server. If for some reason this doesn't occur, you can start a DHCP client yourself to get an IP address:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"~# udhcpc -i eth0\nudhcpc: started, v1.27.2\nudhcpc: sending discover\nudhcpc: sending select for 10.20.30.157\nudhcpc: lease of 10.20.30.157 obtained, lease time 1200\n/etc/udhcpc.d/50default: Adding DNS 10.20.30.240\n/etc/udhcpc.d/50default: Adding DNS 1.1.1.1\n/etc/udhcpc.d/50default: Adding DNS 168.95.192.1\n"})}),"\n",(0,s.jsx)(n.p,{children:"Create hotspot with WPA + WPA2 passphrase."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"~# connmanctl tether wifi on <ssid> <passphrase>\n"})}),"\n",(0,s.jsx)(n.p,{children:"e.g."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"~# connmanctl tether wifi on SAP 12345678\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Use another device such as a mobile phone to connect to the access point ",(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"SAP"})})," to get wifi connectivity."]}),"\n",(0,s.jsx)(n.admonition,{type:"info",children:(0,s.jsx)(n.p,{children:"Unlike a station connection to an Access Point, tether interfaces are not persistent across reboots."})}),"\n",(0,s.jsx)(n.h3,{id:"clean-the-stored-settings-of-hotspot",children:"Clean the stored settings of hotspot."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"~# rm /var/lib/connman/*/settings\n"})}),"\n",(0,s.jsx)(n.h3,{id:"switch-off-wifi",children:"Switch off wifi"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"~# connmanctl disable wifi\n"})}),"\n",(0,s.jsx)(n.h3,{id:"switch-on-wifi",children:"Switch on wifi"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"~# connmanctl enable wifi\n"})}),"\n",(0,s.jsx)(n.h2,{id:"operating-wifi-in-concurrent-mode",children:"Operating WIFI in Concurrent Mode"}),"\n",(0,s.jsx)(n.p,{children:"In many situations there may not be a wired connection available. TechNexion wireless modules such as the QCA9377 can operate in concurrent mode. In concurrent mode, it can be treated as an access point and can also establish a connection to a local access point as a Station, and then bridge the two connections. One example where you might find this useful in when provisioning a device into a wireless network for the first time."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://www.youtube.com/watch?v=syVJlS_FVl0",children:(0,s.jsx)(n.img,{src:"https://img.youtube.com/vi/syVJlS_FVl0/0.jpg",alt:"Configure Wi-Fi Concurrent Mode on TechNexion SOMs"})})}),"\n",(0,s.jsxs)(n.p,{children:["If when you boot your unit and after running ",(0,s.jsx)(n.code,{children:"ifconfig"})," you do ",(0,s.jsx)(n.strong,{children:"not"})," see a ",(0,s.jsx)(n.code,{children:"p2p0"})," interface, the QCA9377 kernel driver (loadable module) has not been built to enable the P2P node, so this much be turned to enable concurrent mode for NAT/forwarding usage by re-compiling wifi module. By default, distributions built with Yocto Project enable the P2P interface."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"CONFIG_P2P_INTERFACE=y\n"})}),"\n",(0,s.jsxs)(n.p,{children:["For more detail information for building the wifi module, please refer to the following link: ",(0,s.jsx)(n.a,{href:"https://github.com/TechNexion/qcacld-2.0",children:"https://github.com/TechNexion/qcacld-2.0"})]}),"\n",(0,s.jsx)(n.h3,{id:"check-that-all-of-the-required-interfaces-are-present",children:"Check that all of the required interfaces are present"}),"\n",(0,s.jsxs)(n.p,{children:["After enabling the P2P node of wifi driver and boot up the system to\ncheck the P2P0 node is exist or not?To check the mainly two nodes\n",(0,s.jsx)(n.strong,{children:"p2p0"})," and ",(0,s.jsx)(n.strong,{children:"wlan0"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"root@xore-imx8mm:~# ifconfig -a\neth0 Link encap:Ethernet HWaddr a6:4a:23:a5:03:f4\n UP BROADCAST MULTICAST DYNAMIC MTU:1500 Metric:1\n RX packets:0 errors:0 dropped:0 overruns:0 frame:0\n TX packets:0 errors:0 dropped:0 overruns:0 carrier:0\n collisions:0 txqueuelen:1000\n RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)\nlo Link encap:Local Loopback\n inet addr:127.0.0.1 Mask:255.0.0.0\n inet6 addr: ::1/128 Scope:Host\n UP LOOPBACK RUNNING MTU:65536 Metric:1\n RX packets:2 errors:0 dropped:0 overruns:0 frame:0\n TX packets:2 errors:0 dropped:0 overruns:0 carrier:0\n collisions:0 txqueuelen:1000\n RX bytes:140 (140.0 B) TX bytes:140 (140.0 B)\np2p0 Link encap:Ethernet HWaddr 02:1f:7b:b5:8f:f6\n BROADCAST MULTICAST MTU:1500 Metric:1\n RX packets:0 errors:0 dropped:0 overruns:0 frame:0\n TX packets:0 errors:0 dropped:0 overruns:0 carrier:0\n collisions:0 txqueuelen:3000\n RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)\nwlan0 Link encap:Ethernet HWaddr 00:1f:7b:31:8f:f6\n BROADCAST MULTICAST MTU:1500 Metric:1\n RX packets:0 errors:0 dropped:0 overruns:0 frame:0\n TX packets:0 errors:0 dropped:0 overruns:0 carrier:0\n collisions:0 txqueuelen:3000\n RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)\n"})}),"\n",(0,s.jsx)(n.p,{children:"To ensure all of wireless network setting has been cleared."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"root@xore-imx8mm:~# rm -rf /var/lib/connman/\n"})}),"\n",(0,s.jsx)(n.p,{children:"The Yocto system was using CONNMAN utility for networking management in default and executed the connmanctl utility in the command line:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"root@xore-imx8mm:~# connmanctl\n"})}
1),"\n",(0,s.jsx)(n.h3,{id:"setup-the-tethering-peer-and-make-the-p2p0-port-enter-forwarding-state",children:"Setup the tethering peer and make the p2p0 port enter forwarding state"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"connmanctl> tether wifi myAP 12345678\nWifi SSID set\nWifi passphrase set\n"})}),"\n",(0,s.jsx)(n.p,{children:"where: SSID = myAP; passphrase = 12345678"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:'connmanctl> tether wifi on\nconnmanctl> [ 369.346704] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.\nEnabled tethering for wifi\nconnmanctl> [ 369.669782] tether: port 1(p2p0) entered blocking state\n[ 369.675374] tether: port 1(p2p0) entered disabled state\n[ 369.680937] device p2p0 entered promiscuous mode\n[ 369.685632] audit: type=1700 audit(1588753496.488:4): dev=p2p0 prom=256 old_prom=0 auid=4294967295 uid=0 gid=0 ses=4294967295\n[ 369.686241] IPv6: ADDRCONF(NETDEV_CHANGE): p2p0: link becomes ready\n[ 369.697038] audit: type=1300 audit(1588753496.488:4): arch=c00000b7 syscall=29 success=yes exit=0 a0=14 a1=89a2 a2=fffffad79818 a3=ffffffffffffffff items=0 ppid=1 pid=2804 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="connmand" exe="/usr/sbin/connmand" key=(null)\n[ 369.704286] tether: port 1(p2p0) entered blocking state\n[ 369.731672] audit: type=1327 audit(1588753496.488:4): proctitle=2F7573722F7362696E2F636F6E6E6D616E64002D6E\n[ 369.736871] tether: port 1(p2p0) entered forwarding state\n'})}),"\n",(0,s.jsx)(n.h3,{id:"connecting-the-wifi-to-another-access-point",children:"Connecting the wifi to another access point"}),"\n",(0,s.jsx)(n.p,{children:"Adapt the wireless antenna and start to do scan the useful access point\nin the near field:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"connmanctl> scan wifi\nScan completed for wifi\n"})}),"\n",(0,s.jsx)(n.p,{children:"List the services to show the access points available:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"connmanctl> services\nTECHNEXION-RDTEST wifi_021f7bb58ff6_544543484e4558494f4e2d524454455354_managed_psk\nTECHNEXION-RDTEST wifi_001f7b318ff6_544543484e4558494f4e2d524454455354_managed_psk\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Select the service id based on the ",(0,s.jsx)(n.strong,{children:"physical MAC address"})," of wlan0 node:"]}),"\n",(0,s.jsx)(n.admonition,{title:"NOTE",type:"info",children:(0,s.jsxs)(n.p,{children:["When the P2P interface is enabled, for every access point service available (physically), you will see two services listed. One of them includes the physical MAC address of the wlan0 interface (always starts with ",(0,s.jsx)(n.code,{children:"wifi_001f7b..."})," in TechNexion products). The other is a slightly modified virtual service belonging to the p2p0 interface (usually starts with ",(0,s.jsx)(n.code,{children:"wifi_0"}),(0,s.jsx)(n.strong,{children:(0,s.jsx)(n.code,{children:"2"})}),(0,s.jsx)(n.code,{children:"1f7b"}),"). When tethering, you need to connect to the service with the physical MAC address of ",(0,s.jsx)(n.code,{children:"wlan0"}),"."]})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:'connmanctl> agent on\nAgent registered\nconnmanctl> connect wifi_001f7b318ff6_544543484e4558494f4e2d524454455354_managed_psk\nAgent RequestInput wifi_001f7b318ff6_544543484e4558494f4e2d524454455354_managed_psk\n Passphrase = [ Type=psk, Requirement=mandatory, Alternates=[ WPS ] ]\n WPS = [ Type=wpspin, Requirement=alternate ]\nPassphrase? <Enter access point password here>\nonnmanctl> [ 1619.839276] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready\n[ 1630.578209] ip_tables: (C) 2000-2006 Netfilter Core Team\n[ 1630.589920] nf_conntrack version 0.5.0 (16384 buckets, 65536 max)\n[ 1630.606166] audit: type=1325 audit(1588754757.424:6): table=nat family=2 entr
1ies=0\n[ 1630.684170] audit: type=1300 audit(1588754757.424:6): arch=c00000b7 syscall=273 success=yes exit=0 a0=a a1=419fd0 a2=0 a3=aitems=0 ppid=2804 pid=2908 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295comm="modprobe" exe="/bin/kmod" key=(null)\n[ 1630.709978] audit: type=1327 audit(1588754757.424:6): proctitle=2F7362696E2F6D6F6470726F62650069707461626C655F6E6174002D71\n[ 1630.872002] audit: type=1325 audit(1588754757.512:7): table=nat family=2 entries=5\n[ 1630.879669] audit: type=1300 audit(1588754757.512:7): arch=c00000b7 syscall=208 success=yes exit=0 a0=1b a1=0 a2=40 a3=1f02ea00items=0 ppid=1 pid=2804 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295comm="connmand" exe="/usr/sbin/connmand" key=(null)\n[ 1630.906405] audit: type=1327 audit(1588754757.512:7): proctitle=2F7573722F7362696E2F636F6E6E6D616E64002D6E\nconnmanctl> quit\n'})}),"\n",(0,s.jsx)(n.p,{children:"After leaving the connection manager, we could check there is a tether peer was added and assigned a IP address of class c network segment."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"root@xore-imx8mm:~# ifconfig\neth0 Link encap:Ethernet HWaddr a6:4a:23:a5:03:f4\n UP BROADCAST MULTICAST DYNAMIC MTU:1500 Metric:1\n RX packets:0 errors:0 dropped:0 overruns:0 frame:0\n TX packets:0 errors:0 dropped:0 overruns:0 carrier:0\n collisions:0 txqueuelen:1000\n RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)\nlo Link encap:Local Loopback\n inet addr:127.0.0.1 Mask:255.0.0.0\n inet6 addr: ::1/128 Scope:Host\n UP LOOPBACK RUNNING MTU:65536 Metric:1\n RX packets:6882 errors:0 dropped:0 overruns:0 frame:0\n TX packets:6882 errors:0 dropped:0 overruns:0 carrier:0\n collisions:0 txqueuelen:1000\n RX bytes:495500 (483.8 KiB) TX bytes:495500 (483.8 KiB)\np2p0 Link encap:Ethernet HWaddr 02:1f:7b:b5:8f:f6\n inet6 addr: fe80::1f:7bff:feb5:8ff6/64 Scope:Link\n UP BROADCAST RUNNING MULTICAST DYNAMIC MTU:1500 Metric:1\n RX packets:0 errors:0 dropped:0 overruns:0 frame:0\n TX packets:64 errors:0 dropped:0 overruns:0 carrier:0\n collisions:0 txqueuelen:3000\n RX bytes:0 (0.0 B) TX bytes:11196 (10.9 KiB)\ntether Link encap:Ethernet HWaddr 02:1f:7b:b5:8f:f6\n inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0\n inet6 addr: fe80::e02d:e4ff:fed6:dbb7/64 Scope:Link\n UP BROADCAST RUNNING MULTICAST DYNAMIC MTU:1500 Metric:1\n RX packets:0 errors:0 dropped:0 overruns:0 frame:0\n TX packets:44 errors:0 dropped:0 overruns:0 carrier:0\n collisions:0 txqueuelen:1000\n RX bytes:0 (0.0 B) TX bytes:7855 (7.6 KiB)\nwlan0 Link encap:Ethernet HWaddr 00:1f:7b:31:8f:f6\n inet addr:xx.xx.xx.99 Bcast:10.88.88.255 Mask:255.255.255.0\n inet6 addr: fe80::21f:7bff:fe31:8ff6/64 Scope:Link\n UP BROADCAST RUNNING MULTICAST DYNAMIC MTU:1500 Metric:1\n RX packets:100 errors:0 dropped:0 overruns:0 frame:0\n TX packets:53 errors:0 dropped:0 overruns:0 carrier:0\n collisions:0 txqueuelen:3000\n RX bytes:12613 (12.3 KiB) TX bytes:10497 (10.2 KiB)\n"})}),"\n",(0,s.jsx)(n.p,{children:"Now the wifi concurrent mode setup is complete."}),"\n",(0,s.jsx)(n.h3,{id:"connecting-and-testing-concurrent-mode",children:"Connecting and testing concurrent mode"}),"\n",(0,s.jsx)(n.p,{children:"There are so many ways to find or scan the SSID of access point that we just set earlier (e.g. PC or cell phone). You can use your cell phone to connect to the hotspot (myAP) as usual and start using the Internet or networking."}),"\n",(0,s.jsx)(n.h3,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Duplicated AP name shows when scanning wifi hotspots:"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"e.g."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"connmanctl> services\n TECHNEXION(5G) wifi_001f7b311132_544543484e4558494f4e28354729_managed_psk\n TECHNEXION(5G) wifi_021f7bb51132_544543484e4558494f4e28354729_managed_psk\n"})}),"\n",(0,s.jsx)(n.p,{children:"The string:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"wifi_001f7b311132_544543484e4558494f4e28354729_managed_psk\n"})}),"\n",(0,s.jsxs)(n.p,{children:["The prefix ",(0,s.jsx)(n.code,{children:"001f7b"})," is the MAC address specifically for TechNexion WIFI chip."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"wifi_021f7bb51132_544543484e4558494f4e28354729_managed_psk\n"})}),"\n",(0,s.jsxs)(n.p,{children:["The prefix ",(0,s.jsx)(n.code,{children:"021f7b"})," is the virtual MAC address generated for p2p interface. (Note: This virtual MAC address follows the ",(0,s.jsx)(n.a,{href:"https://en.wikipedia.org/wiki/MAC_address",children:"administered addresses"})," rule to be generated.)"]}),"\n",(0,s.jsxs)(n.p,{children:["If you don't want ",(0,s.jsx)(n.code,{children:"p2p"})," to show in hotspot scan: ",(0,s.jsx)(n.code,{children:"iw dev p2p0 del"})]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.