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.
This commit is contained in:
Gábor Stefanik 2024-01-23 19:33:55 +01:00
parent 8fca0973ab
commit 221f2d0f8e
3 changed files with 18 additions and 1 deletions

View File

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

View File

@ -23,6 +23,8 @@ if mount --version >/dev/null 2>&1; then
fi fi
if [ "${CHROOT}" = False ]; then 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 -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/sda" || mknod -m 600 "/dev/sda" b 8 0
test -b "/dev/sda1" || mknod -m 600 "/dev/sda1" b 8 1 test -b "/dev/sda1" || mknod -m 600 "/dev/sda1" b 8 1

View File

@ -54,6 +54,9 @@ build: bash-2.05b
improve: setup_repo improve: setup_repo
improve: update_env improve: update_env
improve: merged_usr improve: merged_usr
improve: populate_device_nodes
define: CONSOLES = ( INTERACTIVE == True && CHROOT == False )
improve: open_console ( CONSOLES == True )
build: flex-2.5.11 build: flex-2.5.11
build: tcc-0.9.27 build: tcc-0.9.27
improve: musl_libdir improve: musl_libdir
@ -80,7 +83,6 @@ build: perl5.004-05
build: perl5.005-03 build: perl5.005-03
build: perl-5.6.2 build: perl-5.6.2
uninstall: perl-5.000 perl-5.003 perl5.004-05 perl5.005-03 uninstall: perl-5.000 perl-5.003 perl5.004-05 perl5.005-03
improve: populate_device_nodes
build: autoconf-2.52 build: autoconf-2.52
build: automake-1.6.3 build: automake-1.6.3
build: automake-1.6.3 build: automake-1.6.3
@ -128,11 +130,13 @@ jump: linux ( CHROOT == False )
jump: move_disk ( KERNEL_BOOTSTRAP == True ) jump: move_disk ( KERNEL_BOOTSTRAP == True )
improve: finalize_job_count improve: finalize_job_count
improve: finalize_fhs improve: finalize_fhs
improve: open_console ( CONSOLES == True )
improve: swap ( SWAP_SIZE != 0 ) improve: swap ( SWAP_SIZE != 0 )
build: musl-1.2.4 build: musl-1.2.4
build: curl-8.5.0 build: curl-8.5.0
improve: get_network ( CHROOT == False ) improve: get_network ( CHROOT == False )
build: bash-5.2.15 build: bash-5.2.15
improve: open_console ( CONSOLES == True )
build: xz-5.4.1 build: xz-5.4.1
build: file-5.44 build: file-5.44
build: libtool-2.4.7 build: libtool-2.4.7