mtk官方openwrt修改 switch的方法
新做的板子上将P0设置为WAN口,烧写firmware后,wan口一直无法获取IP地址;
在/etc/config/network中配置switch也没用。
【最终的解决办法】
在package/ramips/applications/switch/files/switch.sh中修改
# work for 7620 and 7621
根据自己的情况修改为WLLLL或者LLLLW
setup_switch()
{
# config6855Esw LLLLW
config6855Esw WLLLL
}
或者是
在package/ramips/applications/switch/files/switch-7621.sh中修改
setup_switch()
{
echo "7621 use an independent gmac as lan, LLLLW"
restore6855Esw
config6855Esw LLLLW
}
reset_switch()
{
echo "7621 use an independent gmac as lan & wan"
restore6855Esw
}
注意:
一)如果你设置p0为wan口的话,不需要make kernel_menuconfig 将switch修改成WLLLL;
即便是LLLLW划分,按照前面的方法修改“config6855Esw WLLLL”后,wan口就可以正常工作了。
[ 16.940000] change HW-TRAP to 0x17ccd
[ 16.944000] set LAN/WAN LLLLW
另外:可以看到在/etc/init.t/network start/restart时都会调用到setup_switch()函数;
package/network/config/netifd/files/etc/init.d/network
init_switch() {
setup_switch() { return 0; }
include /lib/network
setup_switch
}
start_service() {
init_switch
procd_open_instance
procd_set_param command /sbin/netifd
procd_set_param respawn
procd_set_param watch network.interface
[ -e /proc/sys/kernel/core_pattern ] && {
procd_set_param limits core="unlimited"
echo '/tmp/%e.%p.%s.%t.core' > /proc/sys/kernel/core_pattern
}
procd_close_instance
}
reload_service() {
init_switch
ubus call network reload
/sbin/wifi reload_legacy
}
二)如果要设置成其他switch模式,例如多wan口的话,应该可以参考原生sdk中的source\user\rt2880_app\scripts\config_vlan.sh中的相关函数。