Android 增加Vlan功能
一、 802.1Q VLAN
- 1 配置 kernel 支持 VLAN
例如Amlogic方案:
M3项目在kernel目录下;M6项目在common目录下运行如下命令:
make menuconfig
Networking support >
Networking options >
<*> 802.1Q VLAN Support
[*] GVRP (GARP VLAN Registration Protocol) support
或直接修改kernel配置文件。
CONFIG_VLAN_8021Q=y
CONFIG_STP=y
CONFIG_GARP=y
- 2 判断kernel是否编译了vlan
在开发板上执行命令:
cat /proc/kallsyms | grep vlan_netdev_ops
如果搜索不到,那kernel中很可能没有把vlan编译进去。
- 3 源码路径
kernel/net/8021q
- 4 添加接口到VLAN中
将eth添加到VLAN 12中:
$ vconfig add eth0 12
WARNING: Could not open /proc/net/vlan/config. Maybe you need to load the 8021q module, or maybe you are not using PROCFS??
ERROR: trying to add VLAN #12 to IF -:eth0:- error: Package not installed
如上信息可能是kernel不支持VLAN。
$ vconfig add eth0 12
WARNING: Could not open /proc/net/vlan/config. Maybe you need to load the 8021q module, or maybe you are not using PROCFS??
Added VLAN with VID == 12 to IF -:eth0:-
或者命令:
ifm vlan add eth0 12
第一次添加VLAN虚拟网卡的时候会出现上述Warning,这是因为/proc/net/vlan/config这个专门用来保存VLAN信息的文件还未创建。
#netcfg
eth0 UP 10.68.7.32/24 0x00001043 00:c0:15:db:9e:09
eth0.12 DOWN 0.0.0.0

本文详细介绍了在Android设备上配置和使用VLAN的方法,包括在内核层面支持VLAN的设置,通过命令行添加和移除VLAN接口,以及在不同场景下VLAN接口的网络通信情况。

1957

被折叠的 条评论
为什么被折叠?



