mirror of
https://github.com/fosslinux/live-bootstrap.git
synced 2026-03-23 19:46:31 +01:00
fix(runtime): verify tty and devpts before running guix
This commit is contained in:
parent
2b16d6d531
commit
4e12d7a4bb
2 changed files with 39 additions and 5 deletions
|
|
@ -32,6 +32,23 @@ have_user() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
have_tty_device() {
|
||||||
|
for dev in /dev/tty /dev/tty[0-9]* /dev/ttyS*; do
|
||||||
|
if [ -c "${dev}" ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
verify_terminal_devices() {
|
||||||
|
mount | grep ' on /dev ' >/dev/null 2>&1 &&
|
||||||
|
mount | grep ' on /dev/pts ' >/dev/null 2>&1 &&
|
||||||
|
test -c /dev/ptmx &&
|
||||||
|
test -c /dev/pts/ptmx &&
|
||||||
|
have_tty_device
|
||||||
|
}
|
||||||
|
|
||||||
mkdir -p /proc /sys /dev "${guix_localstate_dir}/daemon-socket" /var/lib/guix /root/.config/guix
|
mkdir -p /proc /sys /dev "${guix_localstate_dir}/daemon-socket" /var/lib/guix /root/.config/guix
|
||||||
mount | grep ' on /proc ' >/dev/null 2>&1 || mount -t proc proc /proc
|
mount | grep ' on /proc ' >/dev/null 2>&1 || mount -t proc proc /proc
|
||||||
mount | grep ' on /sys ' >/dev/null 2>&1 || mount -t sysfs sysfs /sys
|
mount | grep ' on /sys ' >/dev/null 2>&1 || mount -t sysfs sysfs /sys
|
||||||
|
|
@ -40,6 +57,17 @@ if ! mount | grep ' on /dev/pts ' >/dev/null 2>&1; then
|
||||||
mkdir -p /dev/pts
|
mkdir -p /dev/pts
|
||||||
mount -t devpts devpts /dev/pts
|
mount -t devpts devpts /dev/pts
|
||||||
fi
|
fi
|
||||||
|
test -c /dev/tty || mknod -m 666 /dev/tty c 5 0
|
||||||
|
test -c /dev/ptmx || mknod -m 666 /dev/ptmx c 5 2
|
||||||
|
test -c /dev/tty0 || mknod -m 666 /dev/tty0 c 4 0
|
||||||
|
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/ttyS0 || mknod -m 666 /dev/ttyS0 c 4 64
|
||||||
|
|
||||||
|
if ! verify_terminal_devices; then
|
||||||
|
echo "Missing terminal devices required for Guix: /dev/ptmx, /dev/pts/ptmx, or /dev/tty*" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
if ! have_group guixbuild; then
|
if ! have_group guixbuild; then
|
||||||
groupadd --system guixbuild
|
groupadd --system guixbuild
|
||||||
|
|
|
||||||
|
|
@ -82,6 +82,15 @@ setup_kernel_devices() {
|
||||||
test -c /dev/ttyS0 || mknod -m 666 /dev/ttyS0 c 4 64
|
test -c /dev/ttyS0 || mknod -m 666 /dev/ttyS0 c 4 64
|
||||||
}
|
}
|
||||||
|
|
||||||
|
have_tty_device() {
|
||||||
|
for dev in /dev/tty /dev/tty[0-9]* /dev/ttyS*; do
|
||||||
|
if [ -c "${dev}" ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
verify_kernel_devices() {
|
verify_kernel_devices() {
|
||||||
mount | grep ' on /dev ' &> /dev/null &&
|
mount | grep ' on /dev ' &> /dev/null &&
|
||||||
mount | grep ' on /proc ' &> /dev/null &&
|
mount | grep ' on /proc ' &> /dev/null &&
|
||||||
|
|
@ -90,12 +99,9 @@ verify_kernel_devices() {
|
||||||
mount | grep ' on /dev/pts ' &> /dev/null &&
|
mount | grep ' on /dev/pts ' &> /dev/null &&
|
||||||
mount | grep ' on /dev/shm ' &> /dev/null &&
|
mount | grep ' on /dev/shm ' &> /dev/null &&
|
||||||
test -c /dev/console &&
|
test -c /dev/console &&
|
||||||
test -c /dev/tty &&
|
|
||||||
test -c /dev/ptmx &&
|
test -c /dev/ptmx &&
|
||||||
test -c /dev/tty0 &&
|
test -c /dev/pts/ptmx &&
|
||||||
test -c /dev/tty1 &&
|
have_tty_device
|
||||||
test -c /dev/tty2 &&
|
|
||||||
test -c /dev/ttyS0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setup_kernel_devices
|
setup_kernel_devices
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue