#!/bin/sh # # Copyright (C) 2013 OpenWrt.org # . /lib/ramips.sh ramips_set_preinit_iface() { RT3X5X=`cat /proc/cpuinfo | egrep "(RT3.5|RT5350|MT7628|MT7688)"` MT762X=`cat /proc/cpuinfo | egrep "MT7620"` if [ -n "${RT3X5X}" ]; then swconfig dev rt305x set reset 1 elif [ -n "${MT762X}" ]; then # The mt7530 switch driver enables VLAN by default, but # failsafe uses eth0, making the device unreachable: # https://dev.openwrt.org/ticket/18768 case "${MT762X}" in *MT7620*) mt762x_switchdev=mt7620 ;; esac swconfig dev $mt762x_switchdev set reset 1 swconfig dev $mt762x_switchdev set enable_vlan 0 swconfig dev $mt762x_switchdev set apply 1 fi if echo $RT3X5X | egrep -q "(RT5350|MT7628|MT7688)"; then # This is a dirty hack to get by while the switch # problem is investigated. When VLAN is disabled, ICMP # pings work as expected, but TCP connections time # out, so telnetting in failsafe is impossible. The # likely reason is TCP checksumming hardware getting # disabled: # https://www.mail-archive.com/openwrt-devel@lists.openwrt.org/msg19870.html swconfig dev rt305x set enable_vlan 1 swconfig dev rt305x vlan 1 set ports "0 6" swconfig dev rt305x port 6 set untag 0 swconfig dev rt305x set apply 1 ip link add link eth0 name eth0.1 type vlan id 1 ip link set eth0 up ifname=eth0.1 else ifname=eth0 fi } boot_hook_add preinit_main ramips_set_preinit_iface