mtk公式のopenwrtスイッチを変更する方法
新しく作成したボードでは P0 が WAN ポートとして設定されていますが、ファームウェアをプログラムした後、WAN ポートは IP アドレスを取得できず、
/etc/config/network でスイッチを設定しても無駄です。
【最終的な解決策】
# package/ramips/applications/switch/files/switch.sh の
7620 および 7621 の work を、
状況に応じて WLLLL または LLLLW に変更します。
setup_switch()
{ # config6855Esw LLLLW config6855Esw WLLLL }
または、
package/ramips/applications/switch/files/switch-7621.sh で変更します。
setup_switch()
{ echo "7621 独立した gmac を lan、LLLLW として使用します" restore6855Esw config6855Esw LLLLW }
reset_switch()
{ echo "7621 独立した gmac を lan と wan として使用します" restore6855Esw }
注:
1) p0 を wan ポートとして設定した場合、スイッチを WLLLL に変更するために kernel_menuconfig を作成する必要はありません。
LLLLW パーティションであっても、前述の方法に従って「config6855Esw WLLLL」を変更すると、wan ポートが正常に動作するようになります。
[ 16.940000] HW-TRAP を 0x17ccd に変更
[ 16.944000] LAN/WAN LLLLW を設定
さらに: /etc/init.t/network start/restart; package/network/config/netifd/files/etc/init.d/networkのときに setup_switch() 関数が呼び出されることがわかります。
init_switch() { setup_switch() { 0 を返す; }
/lib/network
setup_switchを含める
}
start_service() { init_switch
procd_open_instance
procd_set_param コマンド /sbin/netifd
procd_set_param respawn
procd_set_param watch network.interface
[ -e /proc/sys/kernel/core_pattern ] && { procd_set_param 制限 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 }
2) 複数の WAN ポートなど、他のスイッチ モードに設定する場合は、ネイティブ SDK のsource\user\rt2880_app\scripts\config_vlan.sh 内の関連関数を参照する必要があります。