blob: a32a47bfea45af60053271f8700f34936b735965 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
#!/bin/sh
#set -e
Netbase ()
{
if [ -n "${NONETWORKING}" ]
then
return
fi
# FIXME: stop hardcoding overloading of initramfs-tools functions
. /scripts/functions
. /lib/live/boot/9990-initramfs-tools.sh
log_begin_msg "Preconfiguring networking"
IFFILE="/root/etc/network/interfaces"
if [ -L /root/etc/resolv.conf ] ; then
# assume we have resolvconf
DNSFILE="/root/etc/resolvconf/resolv.conf.d/base"
else
DNSFILE="/root/etc/resolv.conf"
fi
if [ "${STATICIP}" = "frommedia" ] && [ -e "${IFFILE}" ]
then
# will use existent /etc/network/interfaces
log_end_msg
return
fi
cat > "${IFFILE}" << EOF
auto lo
iface lo inet loopback
EOF
udevadm trigger
udevadm settle
if [ -z "${NETBOOT}" ] && [ -n "${STATICIP}" ] && [ "${STATICIP}" != "frommedia" ]
then
parsed=$(echo "${STATICIP}" | sed -e 's|,| |g')
for ifline in ${parsed}
do
ifname="$(echo ${ifline} | cut -f1 -d ':')"
ifaddress="$(echo ${ifline} | cut -f2 -d ':')"
ifnetmask="$(echo ${ifline} | cut -f3 -d ':')"
ifgateway="$(echo ${ifline} | cut -f4 -d ':')"
nameserver="$(echo ${ifline} | cut -f5 -d ':')"
cat >> "${IFFILE}" << EOF
allow-hotplug ${ifname}
iface ${ifname} inet static
address ${ifaddress}
netmask ${ifnetmask}
EOF
if [ -n "${ifgateway}" ]
then
cat >> "${IFFILE}" << EOF
gateway ${ifgateway}
EOF
fi
if [ -n "${nameserver}" ]
then
if [ -e "${DNSFILE}" ]
then
grep -v ^nameserver "${DNSFILE}" > "${DNSFILE}.tmp"
mv "${DNSFILE}.tmp" "${DNSFILE}"
fi
echo "nameserver ${nameserver}" >> "${DNSFILE}"
fi
done
else
if [ -z "${NETBOOT}" ] || [ -n "${DHCP}" ]
then
# default, dhcp assigned
method="dhcp"
else
# make sure that the preconfigured interface would not get reassigned by dhcp
# on startup by ifup script - otherwise our root fs might be disconnected!
method="manual"
fi
# iterate the physical interfaces and add them to the interfaces list and also add when ethdevice= called on cmdline
if [ "${method}" != dhcp ] || ([ ! -x /root/usr/sbin/NetworkManager ] && [ ! -x /root/usr/sbin/wicd ]) || [ ! -z "${ETHDEVICE}" ]
then
for interface in /sys/class/net/eth* /sys/class/net/ath* /sys/class/net/wlan*
do
[ -e ${interface} ] || continue
i="$(basename ${interface})"
cat >> "${IFFILE}" << EOF
allow-hotplug ${i}
iface ${i} inet ${method}
EOF
done
fi
if [ ! -f "${DNSFILE}" ] || [ -z "$(cat ${DNSFILE})" ]
then
if [ -f /netboot.config ]
then
# create a resolv.conf if it is not present or empty
cp /netboot.config /root/var/log/netboot.config
rc_search=$(cat netboot.config | awk '/domain/ { print $3 }')
rc_server0="$(cat netboot.config | awk '/dns0/ { print $5 }')"
cat > $DNSFILE << EOF
search ${rc_search}
domain ${rc_search}
nameserver ${rc_server0}
EOF
rc_server1=$(cat netboot.config | awk '/dns0/ { print $8 }')
if [ "${rc_server1}" != "0.0.0.0" ]
then
echo "nameserver ${rc_server1}" >> $DNSFILE
fi
cat $DNSFILE >> /root/var/log/netboot.config
fi
fi
fi
log_end_msg
}
|