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的方法。

相关推荐
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ8 小时前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器
05大叔10 小时前
网络基础知识 域名,JSON格式,AI基础
运维·服务器·网络
安当加密10 小时前
无需改 PAM!轻量级 RADIUS + ASP身份认证系统 实现 Linux 登录双因子认证
linux·运维·服务器
皙然10 小时前
深入理解TCP流量控制
网络·网络协议·tcp/ip
woho77889911 小时前
不同网段IP的网络打印机,打印、扫描设置
运维·服务器·网络
耗子会飞12 小时前
小白学习固定VM虚拟机的centos服务器的IP
运维·服务器·centos
阿达_优阅达13 小时前
告别手工对账:xSuite 如何帮助 SAP 企业实现财务全流程自动化?
服务器·数据库·人工智能·自动化·sap·企业数字化转型·xsuite
IMPYLH13 小时前
Linux 的 chroot 命令
linux·运维·服务器
克莱因35814 小时前
Linux Cent OS7 at定时任务
linux·运维·服务器