logo

live-bootstrap

Mirror of <https://github.com/fosslinux/live-bootstrap>
commit: 221f2d0f8eabd58d73159ef8cc71eead19532840
parent 8fca0973abb40b370f919f99f31a817fbc35cdca
Author: Gábor Stefanik <netrolller.3d@gmail.com>
Date:   Tue, 23 Jan 2024 19:33:55 +0100

Open shells on virtual terminals for monitoring in interactive mode

We spawn a shell:
- When Bash is first built, on tty2. This shell uses the old Bash,
  so interactive mode needs to be emulated using redirection. Thus,
  entering commands needs to be done using Enter followed by Ctrl+D,
  and certain redirection features are unavailable.
- After moving the system to disk, on tty2. Old Bash, same limitations.
- After 2nd Bash is built, on tty3. This is a fully functional shell.

This is disabled in chroot-like bootstrap modes, or when -i is not set.

Diffstat:

Asteps/improve/open_console.sh11+++++++++++
Msteps/improve/populate_device_nodes.sh2++
Msteps/manifest6+++++-
3 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/steps/improve/open_console.sh b/steps/improve/open_console.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +# SPDX-FileCopyrightText: 2024 Gábor Stefanik <netrolller.3d@gmail.com> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +if bash --version | grep -q 'GPLv3'; then + env - PATH=${PREFIX}/bin PS1="\w # " openvt -- bash -i +else + bash -c 'while true; do printf "[early Bash - use Ctrl+D] $(pwd) # "; $(cat /dev/tty2); done' &> /dev/tty2 & +fi diff --git a/steps/improve/populate_device_nodes.sh b/steps/improve/populate_device_nodes.sh @@ -23,6 +23,8 @@ if mount --version >/dev/null 2>&1; then fi if [ "${CHROOT}" = False ]; then + test -c "/dev/tty1" || mknod -m 666 "/dev/tty1" c 4 1 + test -c "/dev/tty2" || mknod -m 666 "/dev/tty2" c 4 2 test -c "/dev/console" || mknod -m 666 "/dev/console" c 5 1 test -b "/dev/sda" || mknod -m 600 "/dev/sda" b 8 0 test -b "/dev/sda1" || mknod -m 600 "/dev/sda1" b 8 1 diff --git a/steps/manifest b/steps/manifest @@ -54,6 +54,9 @@ build: bash-2.05b improve: setup_repo improve: update_env improve: merged_usr +improve: populate_device_nodes +define: CONSOLES = ( INTERACTIVE == True && CHROOT == False ) +improve: open_console ( CONSOLES == True ) build: flex-2.5.11 build: tcc-0.9.27 improve: musl_libdir @@ -80,7 +83,6 @@ build: perl5.004-05 build: perl5.005-03 build: perl-5.6.2 uninstall: perl-5.000 perl-5.003 perl5.004-05 perl5.005-03 -improve: populate_device_nodes build: autoconf-2.52 build: automake-1.6.3 build: automake-1.6.3 @@ -128,11 +130,13 @@ jump: linux ( CHROOT == False ) jump: move_disk ( KERNEL_BOOTSTRAP == True ) improve: finalize_job_count improve: finalize_fhs +improve: open_console ( CONSOLES == True ) improve: swap ( SWAP_SIZE != 0 ) build: musl-1.2.4 build: curl-8.5.0 improve: get_network ( CHROOT == False ) build: bash-5.2.15 +improve: open_console ( CONSOLES == True ) build: xz-5.4.1 build: file-5.44 build: libtool-2.4.7