#!/bin/sh # Copyright (C) 2006 OpenWrt.org # Copyright (C) 2010 Vertical Communications preinit_ip_config() { grep -q "$1" /proc/net/dev || return ip link set dev $1 up ip -4 address add $pi_ip/$pi_netmask broadcast $pi_broadcast dev $1 } preinit_config_board() { /bin/board_detect /tmp/board.json [ -f "/tmp/board.json" ] || return . /usr/share/libubox/jshn.sh json_init json_load "$(cat /tmp/board.json)" json_select network json_select "lan" json_get_vars ifname json_select .. json_select .. [ -n "$ifname" ] || return # only use the first one ifname=${ifname%% *} # trim any vlan ids ifname=${ifname%\.*} preinit_ip_config $ifname } preinit_ip() { # if the preinit interface isn't specified and ifname is set in # preinit.arch use that interface if [ -z "$pi_ifname" ]; then pi_ifname=$ifname fi if [ -n "$pi_ifname" ]; then preinit_ip_config $pi_ifname elif [ -d "/etc/board.d/" ]; then preinit_config_board fi } preinit_ip_deconfig() { [ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc/net/dev && { ip -4 address flush dev $pi_ifname ip link set dev $pi_ifname down } } preinit_net_echo() { [ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc/net/dev && { { [ "$pi_preinit_net_messages" = "y" ] || { [ "$pi_failsafe_net_message" = "true" ] && [ "$pi_preinit_no_failsafe_netmsg" != "y" ] } } && netmsg $pi_broadcast "$1" } } preinit_echo() { preinit_net_echo $1 echo $1 } pi_indicate_preinit() { preinit_net_echo "Doing Lede Preinit\n" set_state preinit } boot_hook_add preinit_main preinit_ip boot_hook_add preinit_main pi_indicate_preinit