2017-05-26 20:26:25 +00:00
|
|
|
#!/bin/sh
|
|
|
|
|
2017-07-21 19:46:40 +00:00
|
|
|
. /etc/deviceinfo
|
|
|
|
|
2017-09-29 16:10:09 +00:00
|
|
|
# Enable udev OpenRC services and runlevels
|
|
|
|
# https://github.com/alpinelinux/aports/blob/master/main/eudev/setup-udev
|
|
|
|
setup-udev -n
|
|
|
|
|
|
|
|
# Enable other OpenRC services
|
2017-05-26 20:26:25 +00:00
|
|
|
for service in devfs dmesg; do
|
|
|
|
rc-update -q add $service sysinit
|
|
|
|
done
|
2017-10-01 00:51:32 +00:00
|
|
|
for service in hwclock modules sysctl hostname bootmisc swclock syslog; do
|
2017-05-26 20:26:25 +00:00
|
|
|
rc-update -q add $service boot
|
|
|
|
done
|
2017-10-13 19:18:24 +00:00
|
|
|
for service in dbus haveged sshd swapfile wpa_supplicant chronyd; do
|
2017-05-26 20:26:25 +00:00
|
|
|
rc-update -q add $service default
|
|
|
|
done
|
|
|
|
for service in mount-ro killprocs savecache; do
|
|
|
|
rc-update -q add $service shutdown
|
|
|
|
done
|
2017-09-18 19:17:30 +00:00
|
|
|
if [ "${deviceinfo_msm_refresher}" = "true" ]; then
|
|
|
|
rc-update -q add msm-fb-refresher boot
|
|
|
|
fi
|
2017-05-26 20:26:25 +00:00
|
|
|
|
2017-10-09 19:10:28 +00:00
|
|
|
# Prime swclock with a reasonable date/time on first boot
|
|
|
|
mkdir -p /run/openrc
|
|
|
|
touch /run/openrc/shutdowntime
|
|
|
|
|
2017-09-30 21:52:33 +00:00
|
|
|
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
|
|
|
|
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
|
2017-09-30 22:41:45 +00:00
|
|
|
# Set /etc/issue
|
|
|
|
{
|
2017-09-30 21:52:33 +00:00
|
|
|
echo 'Welcome to postmarketOS'
|
|
|
|
echo 'Kernel \r on an \m (\l)'
|
2017-10-02 22:41:19 +00:00
|
|
|
# setterm -powersave on -blank 5
|
|
|
|
echo -ne "\033[9;5]"
|
2017-09-30 22:41:45 +00:00
|
|
|
} | write_unless_modified /etc/issue
|
|
|
|
# Set /etc/motd
|
2017-09-30 21:52:33 +00:00
|
|
|
{
|
|
|
|
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
|
2017-07-25 05:02:51 +00:00
|
|
|
|
|
|
|
# Enable syslog to SHM. Note: size is 4048KiB, which *should* be More Than Enough(TM) for all but the most chattiest of devices.
|
|
|
|
sed s/=\"/=\""-C4048 "/ -i /etc/conf.d/syslog
|
2017-09-15 17:44:50 +00:00
|
|
|
|
|
|
|
# Enable wext, nl80211 & dbus control for wpa_supplicant
|
|
|
|
if ! grep -q Dwext /etc/conf.d/wpa_supplicant; then
|
2017-09-16 00:01:25 +00:00
|
|
|
sed -i 's/wpa_supplicant_args=\"/wpa_supplicant_args=\" -u -Dwext,nl80211/' /etc/conf.d/wpa_supplicant
|
2017-09-15 17:44:50 +00:00
|
|
|
fi
|
|
|
|
touch /etc/wpa_supplicant/wpa_supplicant.conf
|
|
|
|
|
2017-10-12 20:08:10 +00:00
|
|
|
# Enable the 'wheel' group
|
|
|
|
sed -i 's/# %wheel ALL=(ALL) ALL/%wheel ALL=(ALL) ALL/' /etc/sudoers
|
|
|
|
|
2017-10-07 16:14:49 +00:00
|
|
|
# Add user to video group for proper framebuffer permissions
|
2017-10-12 20:08:10 +00:00
|
|
|
username="$(getent passwd 1000 | cut -d ":" -f 1)"
|
|
|
|
usermod -a -G video "$username"
|
2017-10-13 19:18:24 +00:00
|
|
|
|
|
|
|
# Set chrony to quickly correct system time on first boot, if necessary
|
|
|
|
if ! grep -q "makestep" /etc/chrony/chrony.conf; then
|
|
|
|
echo "makestep 1 -1" >> /etc/chrony/chrony.conf
|
|
|
|
fi
|