11
8
2018
4

与 Android 进行 WLAN Direct 连接

本文来自依云'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 pdc 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 上是「只读模式」,只能看,所有交互操作无效。

参考资料

Category: 网络 | Tags: linux 网络 Android | Read Count: 479
anonymous 说:
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

Avatar_small
依云 说:
Nov 10, 2018 05:39:57 PM

原来是这样,感谢!

Arch 说:
Nov 15, 2018 03:12:36 PM

依云大佬,请问下。Linux桌面系统下,笔记本带独显和集显,默认只用到了集显,平时一直用集显开发观察了下速度没什么影响,我以后买笔记本只买集显,CPU和内存尽量配到上限是否就行?现在笔记本带一个GTX 1050一直没有用上在笔记本内吃灰。N卡驱动不想打(里面坑太多怕弄坏系统) ,我不在linux笔记本上打游戏和渲染。特地咨询做下次更换笔记本前提准备。把独显的价钱用到CPU和内存上。多谢。

Avatar_small
依云 说:
Nov 15, 2018 08:22:12 PM

是啊。我的双显卡的独显也很少用得上。之前我跑火狐还用它的,后来启用 webrender 了,然后用独显会崩。现在只有 minecraft 能用上了。

不过现在不容易买到只有集显的本子了吧。另外独显还可以用来跑机器学习什么的。我的N卡用大黄蜂也没出什么问题。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

部分静态文件存储由又拍云存储提供。 | Theme: Aeros 2.0 by TheBuckmaker.com