summaryrefslogtreecommitdiff
path: root/debian/local/runsystem
blob: 150d4c9ccd182af2fd27368095b2112729b5895d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/bin/sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin
export PATH

# Create a minimal subset of device and server nodes
/usr/lib/hurd/setup-translators -m -k -p

/hurd/mach-defpager

# Touch the first tty so that the Hurd console is certain to pick it
# and not some random other tty.
sleep 1
touch /dev/tty1

echo -n "Starting the Hurd console..."
console -d vga -g -d pc_kbd -c /dev/vcs &
sleep 1

# Switch over
exec < /dev/tty1 > /dev/tty1 2>&1
echo "Console started."

# Set the console device used by /sbin/reopen-console
echo /dev/tty1 >/var/run/console-device

# Get all kernel parameters that can be exported as environment variables
envvars="$(echo $* | tr ' ' '\012' | egrep '^[-_/[:alnum:]]+=.*$')"

# Invoke init as linuxrc to work around pid != 1
init='/bin/busybox linuxrc'

# Parse kernel parameters
for i in $envvars ; do
    case "$i" in
        init="/sbin/init"|init="init")
            # Avoid endless loop
            : ;;
        init=*)
            init=${i#init=}
            ;;
        noshell=*)
            sed -i '/^tty[12]/s/^/#/' /etc/inittab
            ;;
    esac
done

# Preset the terminal type for /lib/debian-installer/detect-console
eval exec env - $envvars TERM=hurd TERM_TYPE=virtual $init