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:
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