base-files: add preinit ifname detection based on board.json
Make use of the existing board.d to autodetect lan ifname in a generic way. Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
This commit is contained in:
parent
0f1ae840c9
commit
c18edcec45
1 changed files with 29 additions and 0 deletions
|
@ -9,6 +9,33 @@ preinit_ip_config() {
|
||||||
ip -4 address add $pi_ip/$pi_netmask broadcast $pi_broadcast dev $1
|
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() {
|
preinit_ip() {
|
||||||
# if the preinit interface isn't specified and ifname is set in
|
# if the preinit interface isn't specified and ifname is set in
|
||||||
# preinit.arch use that interface
|
# preinit.arch use that interface
|
||||||
|
@ -18,6 +45,8 @@ preinit_ip() {
|
||||||
|
|
||||||
if [ -n "$pi_ifname" ]; then
|
if [ -n "$pi_ifname" ]; then
|
||||||
preinit_ip_config $pi_ifname
|
preinit_ip_config $pi_ifname
|
||||||
|
elif [ -d "/etc/board.d/" ]; then
|
||||||
|
preinit_config_board
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue