From f47e09cff15771d5ce01cb2bd3d1f8d539a68c0e Mon Sep 17 00:00:00 2001 From: Michael Shigorin Date: Fri, 21 Aug 2020 12:07:56 +0300 Subject: [PATCH] e2k, e2k.mk: merge boot, fixup and x11 bits This commit is packing a bunch of changes that went into RELENG-e2k-workstation during its forked development; it covers three distinct things: - boot.conf preparation for firmware to load the image; - fixup of packages common for e2k images; - major cleanup of obsolete/unused cruft (unified kernel and reliable xorg autodetection allow us to move away from canned machine-specific configurations for the most part). --- conf.d/e2k.mk | 33 +------------ features.in/e2k/config.mk | 67 ++++++--------------------- features.in/e2k/scripts.d/20-e2k-boot | 50 ++++++++++++++++++++ 3 files changed, 65 insertions(+), 85 deletions(-) create mode 100755 features.in/e2k/scripts.d/20-e2k-boot diff --git a/conf.d/e2k.mk b/conf.d/e2k.mk index 9bc69c7a..208359ee 100644 --- a/conf.d/e2k.mk +++ b/conf.d/e2k.mk @@ -51,21 +51,14 @@ ifeq (distro,$(IMAGE_CLASS)) distro/.e2k-rescue: distro/.base mixin/e2k-base use/rescue/.base +net-eth @$(call set,META_VOL_ID,ALT Rescue for Elbrus) -distro/e2k-101-rescue: distro/.e2k-rescue - @$(call add,KFLAVOURS,elbrus-1cp) - -# NB: this one is NOT suited for a particular processor yet! -# (that's to be done downstream) distro/.e2k-installer-base: distro/.base mixin/e2k-base \ - use/install2 use/install2/packages use/e2k/install2 \ + use/install2 use/install2/packages use/e2k \ use/volumes/regular use/net-ssh +net-eth @$(call set,INSTALLER,altlinux-generic) @$(call set,META_PUBLISHER,BaseALT Ltd) @$(call set,META_VOL_SET,ALT) @$(call set,META_VOL_ID,ALT for Elbrus) @$(call set,META_APP_ID,ALT/$(ARCH)) - @$(call add,INSTALL2_PACKAGES,agetty) - @$(call add,INSTALL2_PACKAGES,ifplugd) ### for net-eth link status @$(call add,INSTALL2_BRANDING,alterator) @$(call add,THE_PACKAGES,agetty gpm fdisk parted smartmontools pv sshfs) @$(call add,THE_PACKAGES,make-initrd dhcpcd hdparm nfs-clients vim-console) @@ -78,28 +71,4 @@ distro/.e2k-installer-base: distro/.base mixin/e2k-base \ distro/.e2k-installer-sysv: distro/.e2k-installer-base +sysvinit; @: distro/.e2k-installer: distro/.e2k-installer-base +systemd; @: -distro/e2k-801-builder: distro/.e2k-installer-sysv \ - use/e2k/install2/801 use/dev/groups/builder; @: - -distro/alt-jeos-401: distro/.e2k-installer-sysv use/e2k/install2/401 - @$(call set,META_VOL_ID,ALT JeOS 401) - -distro/alt-jeos-801: distro/.e2k-installer-sysv use/e2k/install2/801 - @$(call set,META_VOL_ID,ALT JeOS 801) - -distro/alt-jeos-101: distro/.e2k-installer-sysv use/e2k/install2/101 - @$(call set,META_VOL_ID,ALT JeOS 101) - -distro/e2k-101-mate: distro/.e2k-installer use/e2k/101 \ - mixin/e2k-desktop mixin/e2k-mate - @$(call add,THE_PACKAGES,LibreOffice-integrated LibreOffice-gnome) - @$(call add,THE_PACKAGES,LibreOffice-langpack-ru) - -distro/e2k-4xx-installer: distro/.e2k-installer-sysv use/e2k/install2/4xx - @$(call set,INSTALLER,altlinux-server) - @$(call add,BASE_PACKAGES,make-initrd-mdadm make-initrd-lvm) - -distro/.e2k-installer-mate: distro/.e2k-installer \ - mixin/e2k-desktop mixin/e2k-mate; @: - endif diff --git a/features.in/e2k/config.mk b/features.in/e2k/config.mk index f28f9139..c639eead 100644 --- a/features.in/e2k/config.mk +++ b/features.in/e2k/config.mk @@ -1,61 +1,22 @@ -use/e2k: +use/e2k: use/tty/S0 @$(call add_feature) @$(call add,BASE_PACKAGES,installer-feature-e2k-fix-clock-stage3) - -# at least one of these is requisite -use/e2k/1cp use/e2k/4c use/e2k/8c: use/e2k/%: use/e2k - @$(call set,KFLAVOURS,elbrus-$*) + @$(call add,LIVE_PACKAGES,installer-feature-e2k-fix-boot-stage2) + @$(call add,LIVE_PACKAGES,installer-feature-e2k-ignore-cf-stage2) + @$(call add,LIVE_PACKAGES,livecd-installer-features) + @$(call add,LIVE_PACKAGES,blacklist-ide) # avoid overwriting hda + @$(call add,STAGE2_PACKAGES,agetty) + @$(call add,INSTALL2_PACKAGES,installer-feature-e2k-xorg-conf-stage2) + @$(call add,INSTALL2_PACKAGES,installer-feature-e2k-fix-boot-stage2) + @$(call add,INSTALL2_PACKAGES,installer-feature-fstrim-stage2) + @$(call add,INSTALL2_PACKAGES,blacklist-ide) # avoid overwriting hda + @$(call add,INSTALL2_PACKAGES,ifplugd) # for net-eth link status + @$(call add,INSTALL2_CLEANUP_PACKAGES,llvm) + @$(call set,KFLAVOURS,elbrus-def) # no other flavours for now + @$(call xport,STAGE2_BOOTARGS) use/e2k/x11: use/e2k use/x11 @$(call add,THE_PACKAGES,xorg-server xinit) -use/e2k/x11/401: use/e2k/x11 use/e2k/4c - @$(call add,THE_PACKAGES,xorg-conf-e401-radeon) - @$(call add,THE_PACKAGES,xorg-drv-ati) - -use/e2k/x11/801: use/e2k/x11 use/e2k/8c - @$(call add,THE_PACKAGES,xorg-conf-e801-radeon) - @$(call add,THE_PACKAGES,xorg-drv-ati) - -use/e2k/x11/.101: use/e2k/x11 use/e2k/1cp; @: - -use/e2k/x11/101/modesetting: use/e2k/x11/.101 - @$(call add,THE_PACKAGES,xorg-conf-e101-modesetting) - @$(call add,THE_PACKAGES,dummy-xorg-drv-vivante) - -use/e2k/x11/101/mga2: use/e2k/x11/.101 - @$(call add,THE_PACKAGES,xorg-conf-e101-mga2) - @$(call add,THE_PACKAGES,xorg-drv-mga2 vivante_glx) - -use/e2k/x11/101: use/e2k/x11/101/modesetting - @$(call add,MAIN_PACKAGES,xorg-conf-e101-mga2) - @$(call add,MAIN_PACKAGES,xorg-drv-mga2 vivante_glx) - -use/e2k/install2: use/e2k - @$(call add,INSTALL2_PACKAGES,installer-feature-e2k-xorg-conf-stage2) - @$(call add,INSTALL2_PACKAGES,installer-feature-e2k-fix-boot-stage2) - @$(call add,INSTALL2_PACKAGES,installer-feature-fstrim-stage2) - @$(call add,INSTALL2_CLEANUP_PACKAGES,llvm) - -use/e2k/install2/desktop: use/e2k/install2 - @$(call add,INSTALL2_PACKAGES,installer-feature-e2k-ignore-cf-stage2) - -use/e2k/install2/4xx: use/e2k/install2 use/e2k/4c - @$(call add,INSTALL2_PACKAGES,xorg-conf-e4xx-fbdev) - -use/e2k/install2/401: use/e2k/install2/desktop use/e2k/4c - @$(call add,INSTALL2_PACKAGES,xorg-conf-e401-modesetting) - -use/e2k/install2/801: use/e2k/install2/desktop use/e2k/8c - @$(call add,INSTALL2_PACKAGES,xorg-conf-e801-modesetting) - -use/e2k/install2/101: use/e2k/install2/desktop use/e2k/1cp - @$(call add,INSTALL2_PACKAGES,xorg-conf-e101-modesetting) - @$(call add,INSTALL2_PACKAGES,dummy-xorg-drv-vivante) - use/e2k/sound/401: @$(call add,THE_PACKAGES,setup-alsa-elbrus-401) - -use/e2k/401: use/e2k/install2/401 use/e2k/x11/401 use/e2k/sound/401; @: -use/e2k/801: use/e2k/install2/801 use/e2k/x11/801; @: -use/e2k/101: use/e2k/install2/101 use/e2k/x11/101; @: diff --git a/features.in/e2k/scripts.d/20-e2k-boot b/features.in/e2k/scripts.d/20-e2k-boot new file mode 100755 index 00000000..e2e04806 --- /dev/null +++ b/features.in/e2k/scripts.d/20-e2k-boot @@ -0,0 +1,50 @@ +#!/bin/sh + +echo "** 20-e2k-boot START" + +cd "$WORKDIR" + +# slightly different logic as there's no boot *menu*: +# ensure the user can install this if possible +[ -f live ] && default=live +[ -f rescue ] && default=rescue +[ -f altinst ] && default=install + +cat > boot.conf << EOF +# USB Flash note: write the contents including .disk/ onto +# an ext2 formatted drive with "altinst" filesystem label + +default=$default +timeout=3 +EOF + +for i in live altinst rescue; do + [ -f "$i" ] || continue + + if [ "$i" = "altinst" ]; then + label=install + stage2= + else + label="$i" + stage2="stagename=$i" + fi + + cat >> boot.conf << EOF + +label=$label + partition=0 + image=/alt0/vmlinux.0 + cmdline=console=ttyS0,115200 console=tty0 hardreset fastboot live automatic=method:cdrom ${stage2:+$stage2 }${GLOBAL_STAGE2_BOOTARGS:+$GLOBAL_STAGE2_BOOTARGS }${GLOBAL_BOOT_LANG:+lang=$GLOBAL_BOOT_LANG} + initrd=/alt0/full.cz + +label=${label}_flash + partition=0 + image=/alt0/vmlinux.0 + cmdline=console=ttyS0,115200 console=tty0 hardreset fastboot live lowmem automatic=method:disk,label:altinst,directory:/ ${stage2:+$stage2 }${GLOBAL_STAGE2_BOOTARGS:+$GLOBAL_STAGE2_BOOTARGS }${GLOBAL_BOOT_LANG:+lang=$GLOBAL_BOOT_LANG} + initrd=/alt0/full.cz +EOF +done + +ls -lh + +echo "** 20-e2k-boot END"