syslinux: no ui, no escape
This one was suggested by enp@ for industrial use where some extra protection for the boot process might be quite desirable. If no syslinux ui was specified (the stock configuration paths ensure there is one) or if it was set to "none" explicitly, then there's no boot: prompt (let alone any menu). If there's a need to ensure that the boot process is not interruptable by Ctrl/Shift/Caps Lock/Scroll Lock.
This commit is contained in:
parent
78a660aed6
commit
46e3c94707
@ -4,6 +4,8 @@ ifeq (distro,$(IMAGE_CLASS))
|
|||||||
distro/syslinux: distro/.init \
|
distro/syslinux: distro/.init \
|
||||||
use/syslinux/localboot.cfg use/syslinux/ui/vesamenu use/hdt; @:
|
use/syslinux/localboot.cfg use/syslinux/ui/vesamenu use/hdt; @:
|
||||||
|
|
||||||
|
distro/syslinux-test: distro/.init use/hdt use/syslinux/timeout/1 use/syslinux/noescape.cfg; @:
|
||||||
|
|
||||||
distro/dos: distro/.init use/dos use/syslinux/ui/menu; @:
|
distro/dos: distro/.init use/dos use/syslinux/ui/menu; @:
|
||||||
distro/rescue: distro/.base use/rescue use/syslinux/ui/menu; @:
|
distro/rescue: distro/.base use/rescue use/syslinux/ui/menu; @:
|
||||||
distro/live-systemd: distro/.base use/live/base use/systemd; @:
|
distro/live-systemd: distro/.base use/live/base use/systemd; @:
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
Добавление поддержки syslinux; требуется для инсталяторов, live/rescue;
|
Добавление поддержки syslinux; требуется для инсталяторов, live/rescue;
|
||||||
реализуется в рамках stage1.
|
реализуется в рамках stage1.
|
||||||
|
|
||||||
|
Самостоятельное творческое использование на данный момент подразумевает
|
||||||
|
знакомство с /usr/share/doc/syslinux-*/syslinux.txt и изучение кусочков
|
||||||
|
конфигурации, которые уже существуют.
|
||||||
|
|
||||||
Цели config.mk:
|
Цели config.mk:
|
||||||
* use/syslinux/ui/% -- конфигурирование интерфейса (см. cfg.in/00*.cfg);
|
* use/syslinux/ui/% -- конфигурирование интерфейса (см. cfg.in/00*.cfg);
|
||||||
при использовании автоматически добавляют syslinux в FEATURES;
|
при использовании автоматически добавляют syslinux в FEATURES;
|
||||||
@ -17,8 +21,3 @@
|
|||||||
|
|
||||||
Здесь производится первичная обработка конфигурационных данных,
|
Здесь производится первичная обработка конфигурационных данных,
|
||||||
окончательно проверяемых и используемых уже в инструментальном чруте.
|
окончательно проверяемых и используемых уже в инструментальном чруте.
|
||||||
|
|
||||||
TODO: может потребоваться обобщение механизма генерации с учётом
|
|
||||||
многоуровневых меню и включаемых файлов (которыми лучше не злоупотреблять
|
|
||||||
из соображений скорости инициализации загрузчика); требуется обеспечить
|
|
||||||
брендирование заголовков.
|
|
||||||
|
1
features.in/syslinux/cfg.in/01none.cfg
Normal file
1
features.in/syslinux/cfg.in/01none.cfg
Normal file
@ -0,0 +1 @@
|
|||||||
|
prompt 0
|
2
features.in/syslinux/cfg.in/02noescape.cfg
Normal file
2
features.in/syslinux/cfg.in/02noescape.cfg
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
noescape 1
|
||||||
|
|
@ -17,8 +17,8 @@ endif
|
|||||||
ifdef SYSLINUX_UI
|
ifdef SYSLINUX_UI
|
||||||
SYSLINUX_MODULES := $(SYSLINUX_MODULES) $(SYSLINUX_UI)
|
SYSLINUX_MODULES := $(SYSLINUX_MODULES) $(SYSLINUX_UI)
|
||||||
else
|
else
|
||||||
$(warning no syslinux ui configured, default is plain text prompt)
|
$(warning no syslinux ui configured, default is now none)
|
||||||
SYSLINUX_UI := prompt
|
SYSLINUX_UI := none
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# SUBPROFILES are considered SYSLINUX_CFG too
|
# SUBPROFILES are considered SYSLINUX_CFG too
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
# copy modules; see also ../../generate.mk
|
# copy modules; see also ../../generate.mk
|
||||||
|
|
||||||
MODDIR="/usr/lib/syslinux"
|
MODDIR="/usr/lib/syslinux"
|
||||||
|
CFG="$GLOBAL_BOOTLOADER.cfg"
|
||||||
|
|
||||||
mkdir -p "$WORKDIR/syslinux"
|
mkdir -p "$WORKDIR/syslinux"
|
||||||
cd "$WORKDIR/syslinux"
|
cd "$WORKDIR/syslinux"
|
||||||
@ -30,7 +31,18 @@ if [ -n "$SYSLINUX_MODULES" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# number ordering sponsored by shell's pathname expansion
|
# number ordering sponsored by shell's pathname expansion
|
||||||
grep -hv '^#' .in/[0-9][0-9]*.cfg > "$GLOBAL_BOOTLOADER.cfg"
|
grep -hv '^#' .in/[0-9][0-9]*.cfg > "$CFG"
|
||||||
|
|
||||||
|
# there should be either DEFAULT or UI directive there
|
||||||
|
if ! egrep -i '^(default|ui)' "$CFG"; then
|
||||||
|
DEFAULT="$(grep -i '^label ' "$CFG" | head -1 | cut -f2 -d' ')"
|
||||||
|
if [ -n "$DEFAULT" ]; then
|
||||||
|
echo "default $DEFAULT" >> "$CFG"
|
||||||
|
else
|
||||||
|
echo "error: no DEFAULT or UI directive and cannot guess" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# snippets are not going into the actual image
|
# snippets are not going into the actual image
|
||||||
if [ "$DEBUG" != 2 ]; then rm -r .in/; fi
|
if [ "$DEBUG" != 2 ]; then rm -r .in/; fi
|
||||||
|
Loading…
Reference in New Issue
Block a user