7b7c1db0ff
Comment out the initstepslew line in /etc/chrony/chrony.conf. initstepslew can delay booting while chrony sets the time. The makestep 1 -1 line in the configuration also causes chrony to step the time (whenever the offset is greater than 1s), making initstepslew redundant.
95 lines
3.2 KiB
Bash
95 lines
3.2 KiB
Bash
#!/bin/sh -e
|
|
|
|
# Enable udev OpenRC services and runlevels
|
|
# https://github.com/alpinelinux/aports/blob/master/main/eudev/setup-udev
|
|
setup-udev -n
|
|
|
|
# Enable other OpenRC services
|
|
for service in devfs dmesg devmappings; do
|
|
rc-update -q add $service sysinit
|
|
done
|
|
for service in hwclock modules sysctl hostname bootmisc swclock syslog; do
|
|
rc-update -q add $service boot
|
|
done
|
|
for service in dbus haveged sshd swapfile wpa_supplicant chronyd local networkmanager; do
|
|
rc-update -q add $service default
|
|
done
|
|
for service in mount-ro killprocs savecache; do
|
|
rc-update -q add $service shutdown
|
|
done
|
|
|
|
# Prime swclock with a reasonable date/time on first boot
|
|
mkdir -p /run/openrc
|
|
touch /run/openrc/shutdowntime
|
|
|
|
# Replace a config file from stock Alpine, unless apk reports that the user has
|
|
# modified it (note that this does not allow properly updating these configs
|
|
# when postmarketos-base gets updated yet, see issue pmaports#258).
|
|
write_unless_modified() {
|
|
# Redirect the stdin to the file unless it has been modified
|
|
# $1: file path
|
|
if apk audit "$(dirname "$1")" | grep -q "${1:1}"; then
|
|
echo "- NOT modifying (file was changed before): $1"
|
|
else
|
|
echo "- Modifying: $1"
|
|
cat > "$1"
|
|
fi
|
|
}
|
|
|
|
# Install /etc/fstab
|
|
{
|
|
echo '# <file system> <mount point> <type> <options> <dump> <pass>'
|
|
echo 'LABEL="pmOS_root" / ext4 relatime,data=ordered 0 1'
|
|
echo 'LABEL="pmOS_boot" /boot auto defaults 0 2'
|
|
} | write_unless_modified /etc/fstab
|
|
|
|
# Set /etc/issue
|
|
{
|
|
echo 'Welcome to postmarketOS'
|
|
echo 'Kernel \r on an \m (\l)'
|
|
# setterm -powersave on -blank 5
|
|
echo -ne "\033[9;5]"
|
|
} | write_unless_modified /etc/issue
|
|
|
|
# Set /etc/motd
|
|
{
|
|
echo 'Welcome to postmarketOS!'
|
|
echo ''
|
|
echo 'This distribution is based on Alpine Linux.'
|
|
echo 'Read both our wikis to find a large amount of how-to guides and'
|
|
echo 'general information about administrating and development.'
|
|
echo 'See <https://wiki.postmarketos.org> and <https://wiki.alpinelinux.org>.'
|
|
echo ''
|
|
echo 'You may change this message by editing /etc/motd.'
|
|
echo ''
|
|
} | write_unless_modified /etc/motd
|
|
|
|
# Enable syslog to SHM. Note: size is 4048KiB, which *should* be More Than Enough(TM) for all but the most chattiest of devices.
|
|
echo "- Modifying: /etc/conf.d/syslog"
|
|
sed s/=\"/=\""-C4048 "/ -i /etc/conf.d/syslog
|
|
|
|
# Enable nl80211,wext & dbus control for wpa_supplicant
|
|
if ! grep -q Dnl80211,wext /etc/conf.d/wpa_supplicant; then
|
|
echo "- Modifying: /etc/conf.d/wpa_supplicant"
|
|
sed -i 's/wpa_supplicant_args=\"/wpa_supplicant_args=\" -u -Dnl80211,wext/' \
|
|
/etc/conf.d/wpa_supplicant
|
|
fi
|
|
touch /etc/wpa_supplicant/wpa_supplicant.conf
|
|
|
|
# Enable the 'wheel' group
|
|
echo "- Modifying: /etc/sudoers"
|
|
sed -i 's/# %wheel ALL=(ALL) ALL/%wheel ALL=(ALL) ALL/' /etc/sudoers
|
|
|
|
# Set chrony to quickly correct system time whenever it differs from
|
|
# ntp time by more than 1s.
|
|
if ! grep -q "makestep" /etc/chrony/chrony.conf; then
|
|
echo "- Modifying: /etc/chrony/chrony.conf (adding makestep)"
|
|
echo "makestep 1 -1" >> /etc/chrony/chrony.conf
|
|
fi
|
|
|
|
# Comment out initstepslew in the chrony configuration to avoid a delay
|
|
# during boot.
|
|
if grep -q "^initstepslew" /etc/chrony/chrony.conf; then
|
|
echo "- Modifying: /etc/chrony/chrony.conf (removing initstepslew)"
|
|
sed -i 's/^initstepslew/#initstepslew/' /etc/chrony/chrony.conf
|
|
fi
|