modifications of firstrun scripts (#3642)

* modifications of firstrun scripts

* Further making use of systemd statements to order firstboot scripts

* allow systemd ordering of ssh to avoid restarting in firstrun script

* suggested changes, add wants=first-boot-complete

* Remove SSH keys in debootstrap process

Co-authored-by: Igor Pecovnik <igor.pecovnik@gmail.com>
This commit is contained in:
Derek
2022-05-07 09:52:31 -04:00
committed by GitHub
parent 5e477fd42c
commit c8855aa08d
5 changed files with 17 additions and 8 deletions

View File

@@ -74,6 +74,9 @@ PRE_INSTALL_DISTRIBUTION_SPECIFIC
# install from apt.armbian.com # install from apt.armbian.com
[[ $EXTERNAL_NEW == prebuilt ]] && chroot_installpackages "yes" [[ $EXTERNAL_NEW == prebuilt ]] && chroot_installpackages "yes"
# remove existing ssh keys. They will be created in 1st boot process
rm -f $SDCARD/etc/ssh/ssh_host*
# stage: user customization script # stage: user customization script
# NOTE: installing too many packages may fill tmpfs mount # NOTE: installing too many packages may fill tmpfs mount
customize_image customize_image

View File

@@ -3,13 +3,15 @@
[Unit] [Unit]
Description=Armbian first run optional user configuration Description=Armbian first run optional user configuration
Wants=network-online.target Wants=network-online.target first-boot-complete.target
After=network.target network-online.target After=network.target network-online.target
Before=first-boot-complete.target
ConditionPathExists=/boot/armbian_first_run.txt ConditionPathExists=/boot/armbian_first_run.txt
ConditionPathExists=/root/.not_logged_in_yet ConditionPathExists=/root/.not_logged_in_yet
ConditionFirstBoot=yes
[Service] [Service]
Type=idle Type=oneshot
RemainAfterExit=yes RemainAfterExit=yes
ExecStart=/usr/lib/armbian/armbian-firstrun-config ExecStart=/usr/lib/armbian/armbian-firstrun-config
TimeoutStartSec=2min TimeoutStartSec=2min

View File

@@ -4,14 +4,16 @@
[Unit] [Unit]
Description=Armbian first run tasks Description=Armbian first run tasks
Before=getty.target system-getty.slice Wants=first-boot-complete.target
Before=getty.target system-getty.slice first-boot-complete.target ssh.service
After=armbian-resize-filesystem.service
ConditionFirstBoot=yes
[Service] [Service]
Type=simple Type=oneshot
RemainAfterExit=yes RemainAfterExit=yes
ExecStart=/usr/lib/armbian/armbian-firstrun start ExecStart=/usr/lib/armbian/armbian-firstrun start
TimeoutStartSec=2min TimeoutStartSec=2min
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View File

@@ -4,9 +4,11 @@
[Unit] [Unit]
Description=Armbian filesystem resize Description=Armbian filesystem resize
Before=basic.target Wants=first-boot-complete.target
Before=basic.target first-boot-complete.target
After=sysinit.target local-fs.target After=sysinit.target local-fs.target
DefaultDependencies=no DefaultDependencies=no
ConditionFirstBoot=yes
[Service] [Service]
Type=oneshot Type=oneshot

View File

@@ -56,7 +56,7 @@ case "$1" in
rm -f /etc/ssh/ssh_host* rm -f /etc/ssh/ssh_host*
read entropy_before </proc/sys/kernel/random/entropy_avail read entropy_before </proc/sys/kernel/random/entropy_avail
dpkg-reconfigure openssh-server >/dev/null 2>&1 dpkg-reconfigure openssh-server >/dev/null 2>&1
service sshd restart
read entropy_after </proc/sys/kernel/random/entropy_avail read entropy_after </proc/sys/kernel/random/entropy_avail
echo -e "\n### [firstrun] Recreated SSH keys (entropy: ${entropy_before} ${entropy_after})" >>${Log} echo -e "\n### [firstrun] Recreated SSH keys (entropy: ${entropy_before} ${entropy_after})" >>${Log}
@@ -129,7 +129,7 @@ case "$1" in
[[ $BRANCH == dev && $LINUXFAMILY == rockchip ]] && set_fixed_mac [[ $BRANCH == dev && $LINUXFAMILY == rockchip ]] && set_fixed_mac
[[ $BRANCH == current && $LINUXFAMILY == odroidc1 ]] && set_fixed_mac [[ $BRANCH == current && $LINUXFAMILY == odroidc1 ]] && set_fixed_mac
[[ $LINUXFAMILY == meson64 ]] && set_fixed_mac [[ $LINUXFAMILY == meson64 ]] && set_fixed_mac
systemctl disable armbian-firstrun
exit 0 exit 0
;; ;;