summaryrefslogtreecommitdiff
path: root/initramfs-tools
diff options
context:
space:
mode:
authorAndrew Cady <d@jerkface.net>2016-04-19 15:15:09 -0400
committerAndrew Cady <d@jerkface.net>2016-04-19 15:15:09 -0400
commitceee310706bfc18d9ef5850ecc8a956ea6c83cee (patch)
tree4da5c1e9feb63f9fcbf6d10be303591c9b21874e /initramfs-tools
parente98c4babea202d692a5dac8c05efc64a44e8aedc (diff)
make the samizdat boot menu show up
Diffstat (limited to 'initramfs-tools')
-rwxr-xr-xinitramfs-tools/hooks/samizdat18
-rw-r--r--initramfs-tools/scripts/samizdat36
2 files changed, 47 insertions, 7 deletions
diff --git a/initramfs-tools/hooks/samizdat b/initramfs-tools/hooks/samizdat
index d9e0974..edcaea5 100755
--- a/initramfs-tools/hooks/samizdat
+++ b/initramfs-tools/hooks/samizdat
@@ -3,14 +3,20 @@
3 3
4. /usr/share/initramfs-tools/hook-functions 4. /usr/share/initramfs-tools/hook-functions
5 5
6for f in ./old-school/*; do 6for f in ./old-school/*; do copy_exec "$f" /bin; done
7 copy_exec "$f" /bin
8done
9 7
10path_execs='mountpoint' 8path_execs='mountpoint'
11for c in $path_execs; do 9
12 copy_exec "$(which $c)" /bin 10for c in $path_execs; do copy_exec "$(which $c)" /bin; done
13done 11
12absolute_path_copies='/lib/terminfo/l/linux'
13
14for f in $absolute_path_copies; do copy_exec "$f" "$f"; done
15
16samizdat_execs_dir=/home/d/src/samizdat # TODO
17samizdat_execs='wait_for_files samizdat-pinentry dynmenu'
18
19for c in $samizdat_execs; do copy_exec ${samizdat_execs_dir}/$c /bin; done
14 20
15copy_exec vol_id.txt /lib/samizdat/vol_id.txt 21copy_exec vol_id.txt /lib/samizdat/vol_id.txt
16 22
diff --git a/initramfs-tools/scripts/samizdat b/initramfs-tools/scripts/samizdat
index 3f2ee43..89eb3ab 100644
--- a/initramfs-tools/scripts/samizdat
+++ b/initramfs-tools/scripts/samizdat
@@ -1,3 +1,5 @@
1klogd -c1 # TODO: This should be even earlier. Can it go on the kernel command line?
2
1mountroot() 3mountroot()
2{ 4{
3 set -x 5 set -x
@@ -16,7 +18,11 @@ mountroot()
16 samizdat_install_udev_rules 18 samizdat_install_udev_rules
17 19
18 openvt -c 13 sh 20 openvt -c 13 sh
19 sleep 100 21
22 mkfifo "$MENUFIFO" || panic "mkfifo '$MENUFIFO' failed"
23 bootmenu
24
25 sleep 1000
20 set +x 26 set +x
21} 27}
22 28
@@ -40,4 +46,32 @@ samizdat_restart_udev()
40 killall systemd-udevd 46 killall systemd-udevd
41 /lib/systemd/systemd-udevd --resolve-names=never --debug >/var/log/udevd-systemd.log 2>&1 & 47 /lib/systemd/systemd-udevd --resolve-names=never --debug >/var/log/udevd-systemd.log 2>&1 &
42 udevadm hwdb --update # rule is not executed by 'udevadm trigger' otherwise. not sure why 48 udevadm hwdb --update # rule is not executed by 'udevadm trigger' otherwise. not sure why
49}
50
51
52# TODO: do not duplicate these functions from common.sh
53
54export MENUFIFO=/menu.fifo
55
56addmenu()
57{
58 cat <<END >>$MENUFIFO # mind the tabs
59setItem "$1" "dummy" "$2" "$3"
60END
61}
62
63menutitle()
64{
65 printf 'setTitle "%s"\n' "$1" >>$MENUFIFO
66 printf 'setWelcomeText "%s"\n' "$2" >>$MENUFIFO
67}
68
69bootmenu()
70{
71 local do_trigger="$1" no_panic="$2"
72 /bin/openvt -f -c 7 -- dynmenu "$MENUFIFO" &&
73 chvt 7 &&
74 menutitle 'Samizdat\n\nAs the Internet develops there are\ntransitions in the management arrangements.\nThe time has come to take\na small step in one of those transitions.' 'Choose an installation target.'
75# menutitle 'Samizdat\nfreedom from surveillance\nno trusted authorities' 'Choose an installation target.'
76 addmenu "ramdisk" "[ Boot to RAM without installing anything ]" "menu-select boot-ram"
43} \ No newline at end of file 77} \ No newline at end of file