File: setup-network.sh

package info (click to toggle)
live-config 11.0.3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 860 kB
  • sloc: sh: 2,330; makefile: 128
file content (74 lines) | stat: -rwxr-xr-x 1,833 bytes parent folder | download | duplicates (4)
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
#!/bin/sh

Setup_network ()
{
	if [ -e /var/lib/live/config/setup-network ]; then
		return
	fi
	if [ -e /etc/init.d/live-config ] || [ -e /lib/systemd/system/live-config.service ]
	then
		/etc/init.d/mountkernfs.sh start > /dev/null 2>&1
		/etc/init.d/mountdevsubfs.sh start > /dev/null 2>&1
		/etc/init.d/networking start > /dev/null 2>&1

		# Now force adapter up if specified with either BOOTIF= or ethdevice= on cmdline
		for _PARAMETER in ${LIVE_CONFIG_CMDLINE}
		do
			case "${_PARAMETER}" in
				BOOTIF=*)
					BOOTIF="${_PARAMETER#*BOOTIF=}"
					;;
				ethdevice=*)
					ETHDEVICE="${_PARAMETER#*ethdevice=}"
					;;
			esac
		done
		if [ -n "${BOOTIF}" ]
		then
			# pxelinux sets BOOTIF to a value based on the mac address of the
			# network card used to PXE boot, so use this value for DEVICE rather
			# than a hard-coded device name from initramfs.conf. this facilitates
			# network booting when machines may have multiple network cards.
			# pxelinux sets BOOTIF to 01-$mac_address

			# strip off the leading "01-", which isn't part of the mac
			# address
			temp_mac=${BOOTIF#*-}

			# convert to typical mac address format by replacing "-" with ":"
			bootif_mac=""
			IFS='-'
			for x in $temp_mac
			do
				if [ -z "$bootif_mac" ]
				then
					bootif_mac="$x"
				else
					bootif_mac="$bootif_mac:$x"
				fi
			done
			unset IFS

			# look for devices with matching mac address, and set DEVICE to
			# appropriate value if match is found.

			for device in /sys/class/net/*
			do
				if [ -f "$device/address" ]
				then
					current_mac=$(cat "$device/address")

					if [ "$bootif_mac" = "$current_mac" ]
					then
						ifup --force "${device##*/}"
						break
					fi
				fi
			done
		elif [ -n "${ETHDEVICE}" ]
		then
			ifup --force "${ETHDEVICE}"
		fi
		touch /var/lib/live/config/setup-network
	fi
}