RK3568-11.0 设置WiFi p2p静态IP

客户反应RK3568-11的盒子连接USB无线投屏设备,通过RK3568的热点通信,需要设置p2p的IP为固定IP

App创建WiFi p2p组 ,mWifiP2pManager.createGroup 或者打开WLAN热点就会分配p2p0 IP地址。

复制代码
wlan0     Link encap:Ethernet  HWaddr 80:e4:da:00:11:32  Driver rtl8852bs
          inet addr:192.168.0.109  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::7e03:d509:2d8:b5ee/64 Scope: Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2862 errors:0 dropped:2 overruns:0 frame:0
          TX packets:666 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1116038 TX bytes:148511

p2p0      Link encap:Ethernet  HWaddr f2:06:88:66:9c:17  Driver rtl8852bs
          inet addr:192.168.188.243  Bcast:192.168.188.255  Mask:255.255.255.0
          inet6 addr: fe80::f006:88ff:fe66:9c17/64 Scope: Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:54 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 TX bytes:0

方法1 使用命令可以临时修改IP地址

bash 复制代码
adb shell
su
ip addr flush dev p2p0
ip addr add 192.168.49.100/24 dev p2p0


ifconfig

p2p0      Link encap:Ethernet  HWaddr f2:06:88:66:9c:17  Driver rtl8852bs
          inet addr:192.168.49.100  Bcast:0.0.0.0  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:56 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 TX bytes:0
  • ip addr flush dev p2p0 清空
  • 确认网段不与 wlan0/eth0 冲突

方法2 App 代码执行

java 复制代码
// 示例:设置 p2p0 静态 IP
public void setP2pStaticIp(String iface, String ip, String prefix) {
    try {
        String cmd1 = "ip addr flush dev " + iface;
        String cmd2 = "ip addr add " + ip + "/" + prefix + " dev " + iface;
        // 需要 su
        Process p1 = Runtime.getRuntime().exec(new String[]{"su", "-c", cmd1});
        p1.waitFor();
        Process p2 = Runtime.getRuntime().exec(new String[]{"su", "-c", cmd2});
        p2.waitFor();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

// 调用示例
setP2pStaticIp("p2p0", "192.168.49.100", "24");

方法3 开机自动设置,执行脚本

java 复制代码
/data/local/p2p_static_ip.sh

#!/system/bin/sh
# 等待 P2P 网卡 up
sleep 3
ip addr flush dev p2p0
ip addr add 192.168.49.100/24 dev p2p0
ip route add 192.168.49.0/24 dev p2p0

service p2p_static_ip /data/local/p2p_static_ip.sh
    class main
    user root
    group root
    oneshot

使用命令设置p2p0的静态IP后,虽然可以生效,但是手机连接这个WIFI热点后无法上网。

看来还需要继续研究一下,p2p0分配IP的方法。

相关推荐
lwx91485219 小时前
Linux-Shell算术运算
linux·运维·服务器
黄昏晓x20 小时前
Linux ---- UDP和TCP
linux·tcp/ip·udp
此刻觐神20 小时前
IMX6ULL开发板学习-01(Linux文件目录和目录相关命令)
linux·服务器·学习
航Hang*20 小时前
第3章:Linux系统安全管理——第2节:部署代理服务
linux·运维·服务器·开发语言·笔记·系统安全
fengfuyao98520 小时前
VC++基于服务器的点对点文件传输实例
服务器·开发语言·c++
favour_you___20 小时前
epoll惊群问题与解决
服务器·网络·tcp/ip·epoll
炜宏资料库21 小时前
产业集团总部大楼智能化系统项目规划方案精讲
运维·服务器·数据库
一个欠登儿程序员21 小时前
在国产服务器上通过 Docker 部署 Windows 虚拟机
服务器·windows·docker
.select.21 小时前
TCP 3
服务器·网络·tcp/ip
l2ohvef21 小时前
Windows 7 虚拟机 VMware Tools 安装失败:无法自动安装VSock 驱动程序
linux·运维·服务器