本文来自依云's Blog,转载请注明。
首先 iw list 看是否支持。如果支持,那就
iw dev wlan0 interface add p2p0 type __p2pdev
这样其实并不会多出一个叫 p2p0 的网络接口。iw dev 能看到多了个「Unnamed/non-netdev」设备。不执行这个也可以连接上 WLAN Direct,但是当前的 managed Wi-Fi 连接会断掉。执行之后再连接,managed 连接会持续,iw dev 里会有两个 Unnamed,不知道何故。另外这个 type __p2pdev
加上去了我就不知道怎么删除了。试了几个命令,结果搞得内核 oops 了……
然后是 wpa_supplicant 配置文件:
ctrl_interface=/run/wpa_supplicant_p2p ap_scan=1 device_name=起一个名字 device_type=1-0050F204-1 driver_param=use_p2p_group_interface=1
wpa_supplicant 跑起来。注意这里的接口名还是那个 managed 接口的。
wpa_supplicant -i wlan0 -c p2p_config.conf
然后 wpa_cli 连过去操作:
wpa_cli -p /run/wpa_supplicant_p2p
首先用 p2p_find 开启搜索。这时候对端设备能够看到自己了。使用 p2p_connect 对端MAC pbc go_intent=0 连接,在对端接受连接即可。go_intent=0 是让对方作为 group owner,这样对端 Android 才会提供 DHCP 服务(否则要本地提供了)。
然后就可以给自己添加 IP 地址了。此时是可以用 dhcpcd 的,然而直接跑的话它会抢走默认路由,所以知道地址范围之后手动加一个好了:
ip a add 192.168.49.22/24 dev p2p-wlan0-1
Android 设备的地址是 192.168.49.1。
之后就可以用 adb connect 然后 scrcpy 了。
PS: Android 很喜欢四十几的 IP 段呢。USB 网络共享是 192.168.42.129/24,Wi-Fi 网络共享是 192.168.43.1/24,而 WLAN Direct 是 192.168.49.1/24。不知道蓝牙网络共享是多少呢。
PPS: scrcpy 在我的 XZ2C 上运行完美,但是在 MIUI 10 上需要去开发者选项里开启选项「USB 调试(安全设置)」,否则会是「只读模式」,只能看,所有交互操作无效。
Nov 09, 2018 02:39:31 AM
> PPS: scrcpy 在我的 XZ2C 上运行完美,但是在 MIUI 10 上是「只读模式」,只能看,所有交互操作无效。
https://github.com/Genymobile/scrcpy/blob/master/FAQ.md#mouse-clicks-do-not-work
Nov 10, 2018 05:39:57 PM
原来是这样,感谢!
Nov 15, 2018 03:12:36 PM
依云大佬,请问下。Linux桌面系统下,笔记本带独显和集显,默认只用到了集显,平时一直用集显开发观察了下速度没什么影响,我以后买笔记本只买集显,CPU和内存尽量配到上限是否就行?现在笔记本带一个GTX 1050一直没有用上在笔记本内吃灰。N卡驱动不想打(里面坑太多怕弄坏系统) ,我不在linux笔记本上打游戏和渲染。特地咨询做下次更换笔记本前提准备。把独显的价钱用到CPU和内存上。多谢。
Nov 15, 2018 08:22:12 PM
是啊。我的双显卡的独显也很少用得上。之前我跑火狐还用它的,后来启用 webrender 了,然后用独显会崩。现在只有 minecraft 能用上了。
不过现在不容易买到只有集显的本子了吧。另外独显还可以用来跑机器学习什么的。我的N卡用大黄蜂也没出什么问题。
Nov 17, 2018 09:42:30 PM
试了下,在我这边不需要添加新的网络接口那一步,直接使用 `wpa_cli` 就可以创建并连接成功了,但发现不太好用(不知是不是我的网卡出的问题,因为之前经常需要重连)。只有第一次连接,电脑端是作为 Group Client,之后的连接都是作为 Group Owner(即便使用了 `go_indent=0` 参数)。
BTW: p2p_cancel 或 p2p_group_remove 不知能不能删除那个 `type __p2pdev`
>>> 使用 p2p_connect 对端MAC pdc go_intent=0 连接,在对端接受连接即可。
这里有个 typo,应该是 pbc 的。
Nov 18, 2018 12:45:27 PM
我后来又尝试了连接到 XZ2C,也遇到了一堆问题:
1. pbc 不能用,只能去手机上输入 pin
2. 记住之后因为输入不了 pin 就连不上了
3. managed 总是会断开
这东西文档资料少,遇到莫名其妙的问题就没办法了 ¯\_(ツ)_/¯
Nov 18, 2018 01:26:51 PM
这里有些资料文档,可以去看下
https://w1.fi/cgit/hostap/plain/wpa_supplicant/README-P2P
https://w1.fi/wpa_supplicant/devel/p2p.html
https://w1.fi/wpa_supplicant/devel/ctrl_iface_page.html
Aug 08, 2019 07:39:07 PM
您好依云先生:
我想在Android P系统的 命令行上 连接wifi但是确实不会弄。
可以指点下吗谢谢!