meta-digi-del: Generate interfaces file on the fly and add ifup.
The interfaces file is different depending on whether we have single or dual wired ethernet and whether we have a wireless or non wireless module. Also, add an ifup script to set the mac addresses fetched from the kernel command line. This commit autogenerates the /etc/network/interfaces file. Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
This commit is contained in:
parent
e54bc6182f
commit
68c5a90ebf
|
|
@ -0,0 +1,48 @@
|
||||||
|
#!/bin/sh -l
|
||||||
|
#===============================================================================
|
||||||
|
#
|
||||||
|
# ifup
|
||||||
|
#
|
||||||
|
# Copyright (C) 2013 by Digi International Inc.
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License version 2 as published by
|
||||||
|
# the Free Software Foundation.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# !Description: Set network interfaces MAC addresses.
|
||||||
|
#
|
||||||
|
#===============================================================================
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# loopback methods are directly handled by ifup
|
||||||
|
[ "${METHOD}" = "loopback" ] && exit 0
|
||||||
|
|
||||||
|
# Do nothing if interface does not exist
|
||||||
|
[ ! -h /sys/class/net/${IFACE} ] && exit 0
|
||||||
|
|
||||||
|
if [ -h /sys/class/net/eth0 ]; then
|
||||||
|
driver="$(readlink -f -n /sys/class/net/eth0 | sed 's,\/,\n,g' | awk '/fec/ {print}')"
|
||||||
|
case ${driver} in
|
||||||
|
fec.*)
|
||||||
|
macaddr=`cat /proc/cmdline | sed 's,\s,\n,g' | awk '/ethaddr1/ {print}' | sed 's,ethaddr1=,,g'`
|
||||||
|
;;
|
||||||
|
sms.*)
|
||||||
|
macaddr=`cat /proc/cmdline | sed 's,\s,\n,g' | awk '/ethaddr3/ {print}' | sed 's,ethaddr3=,,g'`
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
if [ "${macaddr}" ]; then
|
||||||
|
/sbin/ifconfig eth0 hw ether ${macaddr}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -h /sys/class/net/eth1 ]; then
|
||||||
|
macaddr=`cat /proc/cmdline | sed 's,\s,\n,g' | awk '/ethaddr3/ {print}' | sed 's,ethaddr3=,,g'`
|
||||||
|
if [ "${macaddr}" ]; then
|
||||||
|
/sbin/ifconfig eth1 hw ether ${macaddr}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
@ -1,32 +1,3 @@
|
||||||
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
|
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
|
||||||
|
|
||||||
# The loopback interface
|
# Dummy file - will be autogenerated in target.
|
||||||
auto lo
|
|
||||||
iface lo inet loopback
|
|
||||||
|
|
||||||
# Wireless interfaces
|
|
||||||
auto wlan0
|
|
||||||
iface wlan0 inet dhcp
|
|
||||||
wireless_mode managed
|
|
||||||
wireless_essid any
|
|
||||||
wpa-driver wext
|
|
||||||
wpa-conf /etc/wpa_supplicant.conf
|
|
||||||
|
|
||||||
iface atml0 inet dhcp
|
|
||||||
|
|
||||||
# Wired or wireless interfaces
|
|
||||||
auto eth0
|
|
||||||
iface eth0 inet dhcp
|
|
||||||
iface eth1 inet dhcp
|
|
||||||
|
|
||||||
# Ethernet/RNDIS gadget (g_ether)
|
|
||||||
# ... or on host side, usbnet and random hwaddr
|
|
||||||
iface usb0 inet static
|
|
||||||
address 192.168.7.2
|
|
||||||
netmask 255.255.255.0
|
|
||||||
network 192.168.7.0
|
|
||||||
gateway 192.168.7.1
|
|
||||||
|
|
||||||
# Bluetooth networking
|
|
||||||
iface bnep0 inet dhcp
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,79 @@
|
||||||
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:"
|
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:"
|
||||||
|
|
||||||
PR_append = "+${DISTRO}.r0"
|
PR_append = "+${DISTRO}.r0"
|
||||||
|
|
||||||
|
DEPENDS="virtual/kernel"
|
||||||
|
|
||||||
|
SRC_URI += "file://ifup"
|
||||||
|
|
||||||
|
do_install_append(){
|
||||||
|
install -m 0755 ${WORKDIR}/ifup ${D}${sysconfdir}/network/if-up.d
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst_${PN} () {
|
||||||
|
#!/bin/sh
|
||||||
|
cat << EOF > $D${sysconfdir}/network/interfaces
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat $D/boot/config* | /bin/grep CONFIG_BLK_DEV_LOOP=y
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
cat << EOF >> $D${sysconfdir}/network/interfaces
|
||||||
|
# The loopback interface
|
||||||
|
auto lo
|
||||||
|
iface lo inet loopback
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat $D/boot/config* | /bin/grep CONFIG_FEC=y
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
# Primary wired interface
|
||||||
|
cat << EOF >> $D${sysconfdir}/network/interfaces
|
||||||
|
auto eth0
|
||||||
|
# Use for dhcp
|
||||||
|
# iface eth0 inet dhcp
|
||||||
|
iface eth0 inet static
|
||||||
|
address 192.168.42.30
|
||||||
|
netmask 255.255.255.0
|
||||||
|
network 192.168.42.0
|
||||||
|
gateway 192.168.42.1
|
||||||
|
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Secondary wired interface
|
||||||
|
cat $D/boot/config* | /bin/grep CONFIG_SMSC911X=y
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
cat << EOF >> $D${sysconfdir}/network/interfaces
|
||||||
|
auto eth1
|
||||||
|
# Use for dhcp
|
||||||
|
# iface eth1 inet dhcp
|
||||||
|
iface eth1 inet static
|
||||||
|
address 192.168.44.30
|
||||||
|
netmask 255.255.255.0
|
||||||
|
network 192.168.44.0
|
||||||
|
gateway 192.168.44.1
|
||||||
|
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Wireless interface
|
||||||
|
cat $D/boot/config* | /bin/grep CONFIG_WIRELESS=y
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
cat << EOF >> $D${sysconfdir}/network/interfaces
|
||||||
|
auto wlan0
|
||||||
|
# Use for dhcp
|
||||||
|
# iface wlan0 inet dhcp
|
||||||
|
iface wlan0 inet static
|
||||||
|
address 192.168.43.30
|
||||||
|
netmask 255.255.255.0
|
||||||
|
network 192.168.43.0
|
||||||
|
wireless_mode managed
|
||||||
|
wireless_essid any
|
||||||
|
wpa-driver wext
|
||||||
|
wpa-conf /etc/wpa_supplicant.conf
|
||||||
|
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
CONFFILES_${PN} = "${sysconfdir}/hosts"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue