AIC8800 虚拟网卡模式配置与 AP 热点设置

AIC8800 虚拟网卡模式配置与 AP 热点设置

36da41f6-da18-4b0e-9b1c-147933c9f518

文档:docs/UserGuide/Fhostif-UserGuide.pdf

MCU编译脚本:config/aic8800mc/target_wifi_fhostif/build_fhostif_wifi_case.sh

Linux驱动(需要编译):wifi/LinuxDriver/aic8800_netdrv

  • 安装驱动:sudo insmod aic8800_netdrv.ko .
  • 卸载驱动:sudo rmmod aic8800_netdrv.

🟢 以上列出的文件路径都是 AIC8800 官方 SDK 中的相对路径。

AP热点模式

编译代码

1、编译选项中添加 SOFTAP=on 后可在 Linux 上使用 custom_msg 开启 AP 模式。

建议同时修改 DHCP 的 DNS 地址,参见下文:修改AP热点默认分配的DNS地址

2、编译代码

cd /home/ubuntults/aic8800-sdk/config/aic8800mc/target_wifi_fhostif && bash ./build_tgt.sh && cd -

3、代码编译完成后下载到 MCU

设置AP模式

将开发板用数据线连接 PC

1、安装驱动:sudo insmod aic8800_netdrv.ko (可能需要先编译驱动)。

2、使用 custom_msg 开启 AP:custom_msg vnet0 8 aic8800 11111111 2.4G (可能需要先编译 custom_msg 这个应用)。

开启成功后 MCU 的控制台会返回它的 IP 地址:

3、将 PC 中 vnet0 的 IP 设置为 MCU 的 IP:sudo ifconfig vnet0 192.168.88.1

4、使用第三个设备(如手机)连接 MCU 的 AP 热点

Linux-[vnet0] ======== AIC8800MC ======== 手机

此时 Linux 不能 ping 通手机

5、使用 custom_msg vnet0 9 切换 AP 的模式为 AIC_MODE_AP_DIRECT

此时 Linux 可以 ping 通手机。

先开启 AIC_MODE_AP_DIRECT 模式则手机无法连接 MCU 的热点,原因尚未深究。

修改AP热点默认分配的DNS地址

默认是分配MCU的IP地址为DNS,无法正常联网。

共享 Linux 的网络

1、网络情况

       [ens33] 连接外网
       192.168.147.129
      /                                          / 手机1
Linux-                                          /  192.168.88.10
      \                                        /  
       [vnet0] ====usb==== AIC8800MC ----wifi--——  手机2
       192.168.88.1                            \   192.168.88.20
                                               \ 
                                                \ 其他设备……

2、目的:让 vnet0 连接的设备通过 ens33 连接互联网。

3、实现方法

首先保证网卡 vnet0 及其连接的其他设备的 IP 均在同一网段(只关心Linux上 vnet0 的配置即可,其他连接该 MCU 的设备由 DHCP 分配)。

在 Linux 上执行以下"修改配置"的操作(建议在执行这些操作前拍虚拟机快照):

# 开始之前先备份要修改的配置
sudo iptables-save > ~/backup/iptables_backup.txt
sudo cp /proc/sys/net/ipv4/ip_forward ~/backup/ip_forward_backup.txt

# 修改配置 (这些配置修改后立即生效)
sudo iptables -F
sudo iptables -A FORWARD -o ens33 -i vnet0 -s 192.168.88.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -F POSTROUTING
sudo iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE
# 这里只是将配置保存到"iptables.sav"文件,若实现开机自动加载需额外操作。
# sudo iptables-save | sudo tee /etc/iptables.sav
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

# 还原配置 (这些配置还原后立即生效)
# 一般情况下系统重启后iptables会恢复默认配置
sudo iptables -F
sudo iptables-restore < ~/backup/iptables_backup.txt
sudo cp ~/backup/ip_forward_backup.txt /proc/sys/net/ipv4/ip_forward

# 直接执行`iptables-save`可以显示出当前启用的所有规则

参考:

  1. Ubuntu通过双网卡+NAT实现共享上网 | 四号程序员 (coder4.com)
  2. linux启用NAT功能,双网卡共享网络,iptables简单实现_iptables -t nat -a postrouting -j masquerade-CSDN博客
  3. iptables的备份、恢复及防火墙脚本的基本使用-自学php网 (zixuephp.com)
posted @ 2025-02-11 19:01  路合华  阅读(35)  评论(0编辑  收藏  举报