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

View File

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