#! /bin/bash
+# modified from upstream fai example
error=0; trap 'error=$(($?>$error?$?:$error))' ERR # save maximum error code
if ifclass DHCPC && [ $FAI_ACTION = "install" -o $FAI_ACTION = "dirinstall" ]
then
- cat > $target/etc/network/interfaces <<-EOF
- # generated by FAI
+ if ifclass VM; then
+ cat > $target/etc/network/interfaces <<-EOF
+ # generated by FAI
auto lo $NIC1
iface lo inet loopback
iface $NIC1 inet dhcp
EOF
+ else
+ cat > $target/etc/network/interfaces <<-EOF
+ # generated by FAI
+ auto lo br0
+ iface lo inet loopback
+ iface $NIC1 inet manual
+ # make a bridge by default so we can have bridged vms.
+ iface br0 inet dhcp
+ bridge_ports eth0
+ bridge_stp on
+ bridge_maxwait 0
+ bridge_fd 0
+EOF
+ fi
elif [ $FAI_ACTION = "install" -o $FAI_ACTION = "dirinstall" ]
then
- [ -n "$IPADDR" ] && cat > $target/etc/network/interfaces <<-EOF
- # generated by FAI
+ [ -n "$IPADDR" ] && cat > $target/etc/network/interfaces <<-EOF
+ # generated by FAI
auto lo $NIC1
iface lo inet loopback
iface $NIC1 inet static
address $IPADDR
netmask $NETMASK
broadcast $BROADCAST
- gateway $GATEWAYS
+ gateway $GATEWAYS
+ hwaddress ether $(cat /sys/class/net/$NIC1/address)
EOF
[ -n "$NETWORK" ] && echo "localnet $NETWORK" > $target/etc/networks
if [ ! -L $target/etc/resolv.conf -a -e /etc/resolv.conf ]; then