-
Notifications
You must be signed in to change notification settings - Fork 157
/
Copy pathstart_chroot_script
executable file
·105 lines (84 loc) · 3.79 KB
/
start_chroot_script
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
#!/usr/bin/env bash
# Network
# Adds to /boot configuration files that let you set up wifi network before booting
# Written by Guy Sheffer <guysoft at gmail dot com> and Gina Häußge <gina@octoprint.org>
# GPL V3
########
set -x
set -e
export LC_ALL=C
source /common.sh
install_cleanup_trap
if [ "${NETWORK_WPA_SUPPLICANT}" == "yes" ]; then
unpack /filesystem/wpa-supplicant/boot /"${BASE_BOOT_MOUNT_PATH}"
DIST_NETWORK_FILE=/"${BASE_BOOT_MOUNT_PATH}"/${DIST_NAME,,}-wpa-supplicant.txt
# allow configuring multiple wifi networks via /boot/DIST_NAME-wpa-supplicant.txt
mv /"${BASE_BOOT_MOUNT_PATH}"/custompios-wpa-supplicant.txt ${DIST_NETWORK_FILE}
if [ "${BASE_DISTRO}" == "ubuntu" ] || [ "${BASE_DISTRO}" == "armbian" ]; then
echo "ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev" > /etc/wpa_supplicant/wpa_supplicant.conf
echo "update_config=1" >> /etc/wpa_supplicant/wpa_supplicant.conf
fi
cat /etc/wpa_supplicant/wpa_supplicant.conf >> ${DIST_NETWORK_FILE} # append distributed conf to our own
rm -f /etc/wpa_supplicant/wpa_supplicant.conf # remove distributed conf
# create symlink
ln -s "${DIST_NETWORK_FILE}" /etc/wpa_supplicant/wpa_supplicant.conf
# copy /etc/wpa_supplicant/ifupdown.sh to /etc/ifplugd/action.d/ifupdown - for wlan auto reconnect
[ -f /etc/ifplugd/action.d/ifupdown ] && mv /etc/ifplugd/action.d/ifupdown /etc/ifplugd/action.d/ifupdown.original
[ -f /etc/wpa_supplicant/ifupdown.sh ] && ln -s /etc/wpa_supplicant/ifupdown.sh /etc/ifplugd/action.d/ifupdown
fi
if [ "${NETWORK_NETWORK_MANAGER}" == "yes" ]; then
unpack filesystem/network-manager/root / root
unpack filesystem/network-manager/boot /"${BASE_BOOT_MOUNT_PATH}"
if [ "${BASE_BOARD}" == "debian_lepotato" ]; then
apt_update_skip
apt-get install -y network-manager
fi
# mv /"${BASE_BOOT_MOUNT_PATH}"/wifi.nmconnection ${DIST_NETWORK_FILE}
systemctl_if_exists enable copy-network-manager-config@wlan0.service
fi
if [ "${BASE_DISTRO}" == "raspbian" ]; then
# Workaround rfkill not unblocking on boot
rm /var/lib/systemd/rfkill/*
if [ -f "/var/lib/NetworkManager/NetworkManager.state" ]; then
sed -i 's/WirelessEnabled=false/WirelessEnabled=true/g' /var/lib/NetworkManager/NetworkManager.state
fi
fi
if [ ! -f "/etc/rc.local" ];then
echo 'exit 0' >> /etc/rc.local
fi
# prevent ntp updates from failing due to some Rpi3 weirdness, see also "Fix SSH" further below
apt_update_skip
apt-get install -y iptables
sed -i 's@exit 0@@' /etc/rc.local
echo '/sbin/iptables -t mangle -I POSTROUTING 1 -o wlan0 -p udp --dport 123 -j TOS --set-tos 0x00' >> /etc/rc.local
echo 'exit 0' >> /etc/rc.local
# Install powersave option
if [ "$NETWORK_DISABLE_PWRSAVE" == "yes" ]; then
# Copy pwrsave script
unpack filesystem/usr/local/bin /usr/local/bin root
# Use rc.local
if [ "$NETWORK_PWRSAVE_TYPE" == "rclocal" ]; then
echo_green "Modifying /etc/rc.local ..."
sed -i 's@exit 0@@' /etc/rc.local
(echo "# Disable WiFi Power Management"; \
echo 'echo "Disabling power management for wlan0 ..."' ; \
echo "/usr/local/bin/pwrsave off"; echo "exit 0") >> /etc/rc.local
fi
# Use service
if [ "$NETWORK_PWRSAVE_TYPE" == "service" ]; then
echo_green "Installing disable-wifi-pwr-mgmt service ..."
unpack filesystem/etc/systemd/system /etc/systemd/system root
systemctl_if_exists enable disable-wifi-pwr-mgmt.service
fi
# Use udev rule
if [ "$NETWORK_PWRSAVE_TYPE" == "udev" ]; then
echo_green "Installing WiFi Power Management udev rule ..."
unpack filesystem/etc/udev/rules.d /etc/udev/rules.d root
fi
# strip out unneeded script, depending on choose
if [ "$NETWORK_PWRSAVE_TYPE" != "udev" ]; then
rm -f /usr/local/bin/pwrsave-udev
else
rm -f /usr/local/bin/pwrsave
fi
fi