MT7628修改vlan不生效

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中的相关函数。
 

猜你喜欢

转载自blog.csdn.net/jhyBOSS/article/details/130014982