]> git.plutz.net Git - blast/blobdiff - modules/default.mk
bugfixes
[blast] / modules / default.mk
index 47f958b8b69f72883d79389bae391b8d78bc4e9c..f93fd24797b87a45d81e1129823f01435183be12 100644 (file)
@@ -2,24 +2,51 @@ ifdef imagesize
   ROOT_MB := $(shell printf '%i\n' "$$(( ${imagesize} - ${BOOT_MB} - 3 ))")
 endif
 
-PACKAGES += btrfs-tools bzip2 ca-certificates cron deborphan firmware-linux-free gzip htop ifupdown iputils-ping irqbalance isc-dhcp-client less make net-tools nmap ntpdate openssh-client psmisc rsync sshfs sudo traceroute unzip vim wget wireless-tools wpasupplicant xz-utils zip
+PACKAGES += btrfs-progs bzip2 ca-certificates cron deborphan firmware-linux-free gzip htop ifupdown iputils-ping irqbalance isc-dhcp-client less make net-tools nmap ntpdate openssh-client psmisc rsync sshfs sudo traceroute unzip vim wget wireless-tools wpasupplicant xz-utils zip
 
 ifdef packages
   PACKAGES += $(subst ${comma_},${space_},${packages})
 endif
 
-export DEBCONF
+export DEBCONF RPICONFIG
 
 define DEBCONF :=
+${DEBCONF}
+
 keyboard-configuration keyboard-configuration/model    select  Generic 105-key (Intl) PC
 keyboard-configuration keyboard-configuration/variant  select  English (US) - English (Macintosh)
 endef
 
-.PHONY: _debconf_selections
+define RPICONFIG :=
+${RPICONFIG}
+
+dtoverlay=vc4-fkms-v3d,cma-256
+endef
+
+.PHONY: _debconf_selections _raspberry_config _keyboard
 _install: _debconf_selections
 _debconf_selections: ${SYSROOT}
        printf '%s\n' "$${DEBCONF}" |chroot "$${SYSROOT}" debconf-set-selections
 
+ifdef keyboard
+  _config: _keyboard
+endif
+_keyboard: ${CFGROOT}
+       -sed -Ei 's;^XKBLAYOUT=.*$$;XKBLAYOUT="${keyboard}";;' "$${CFGROOT}/etc/default/keyboard"
+
+ifdef raspi
+  _config: _raspberry_config _raspberry_initrd
+endif
+
+_raspberry_config: ${CFGROOT}
+       printf '%s\n' "$${RPICONFIG}" >>"$${CFGROOT}/boot/config.txt"
+
+_raspberry_initrd: ${CFGROOT}
+       printf 'nilfs2\n' >>"$${CFGROOT}/etc/initramfs-tools/modules"
+       k="$$(echo "$${CFGROOT}"/lib/modules/*-v7+)"; \
+       chroot $${CFGROOT} update-initramfs -c -k "$${k##*/}"; \
+       printf 'initramfs initrd.img-%s\n' "$${k##*/}" >>"$${CFGROOT}/boot/config.txt"
+
 .PHONY: _timezone _locales
 
 ifdef timezone
@@ -51,6 +78,11 @@ ifdef rootpass
   _config: _rootpass
 endif
 
+ifdef rootkey
+  export rootkey
+  _config: _rootkey
+endif
+
 ifdef users
   _config: _users
 endif
@@ -63,13 +95,21 @@ endif
 _rootpass: ${CFGROOT}
        chroot "$${CFGROOT}" usermod -p "$$(openssl passwd "$${rootpass}")" root
 
+${rootkey}.pub:
+       [ -f "$@" ] || ssh-keygen -N '' -f "$${rootkey}"
+
+_rootkey: ${CFGROOT} ${rootkey}.pub
+       mkdir -m 700 "$${CFGROOT}/root/.ssh/"
+       cp "$${rootkey}.pub" "$${CFGROOT}/root/.ssh/authorized_keys"
+
 _users: ${CFGROOT}
        for u in $(subst ${comma_},${space_},${users}); do \
-               chroot "$${CFGROOT}" useradd -m -s /bin/bash -p "$$(openssl passwd "")" "$$u"; \
+               chroot "$${CFGROOT}" useradd -s /bin/bash -p "$$(openssl passwd "")" "$$u"; \
        done
 
 _hostname: ${CFGROOT}
-       printf '%s\n' "$${hostname}" "$${CFGROOT}/etc/hostname"
+       printf '%s\n' "$${hostname}" >"$${CFGROOT}/etc/hostname"
+       sed -Ei "s;^127\.0\.0\.1.*$$;&  $${hostname};" "$${CFGROOT}/etc/hosts"
 
 ifdef wifi
   _config: ${CFGROOT}/etc/network/interfaces.d/wifi
@@ -82,6 +122,6 @@ ifdef wifi
     export wifi
     ${CFGROOT}/etc/network/interfaces.d/wifi: ${CFGROOT}
        printf 'auto wlan0\nallow-hotplug wlan0\n\niface wlan0 inet dhcp\n' >$@
-       printf '  wireless-ssid "%s"\n' "$$wifi" >>$@
+       printf '  wireless-essid "%s"\n' "$$wifi" >>$@
   endif
 endif