annotate core/rc/rc.init @ 748:bf07ab3aaf7b

audio/ladspa: initial import, closes #1741
author David Demelier <markand@malikania.fr>
date Wed, 07 Aug 2019 20:20:00 +0200
parents 2bac0c29807f
children b7264d4a5172
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
564
79f1635bda5f core/etc: add shebang for busybox init
David Demelier <markand@malikania.fr>
parents: 560
diff changeset
1 #!/bin/sh
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 #
630
58211c615a8c core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents: 629
diff changeset
3 # /etc/rc.init -- system initialization script
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 #
405
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
5 # Copyright (c) 2019 David Demelier <markand@malikania.fr>
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
6 #
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
7 # Permission to use, copy, modify, and/or distribute this software for any
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
8 # purpose with or without fee is hereby granted, provided that the above
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
9 # copyright notice and this permission notice appear in all copies.
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
10 #
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
11 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
12 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
13 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
14 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
15 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
16 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
17 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
18 #
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
19
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 if [ -f /etc/rc.conf ]; then
405
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
21 . /etc/rc.conf
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 fi
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
23
406
0d51fe2867b5 core/sysvinit: add a banner
David Demelier <markand@malikania.fr>
parents: 405
diff changeset
24 if [ "${BANNER:-yes}" = "yes" ]; then
565
15992f10ced3 core/etc: use a more appropriate color
David Demelier <markand@malikania.fr>
parents: 564
diff changeset
25 printf "\nWelcome to \033[33;1mVanilla Linux\033[0m\n\n"
406
0d51fe2867b5 core/sysvinit: add a banner
David Demelier <markand@malikania.fr>
parents: 405
diff changeset
26 fi
0d51fe2867b5 core/sysvinit: add a banner
David Demelier <markand@malikania.fr>
parents: 405
diff changeset
27
575
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
28 if [ -n "$HOSTNAME" ]; then
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 echo "Setting hostname: $HOSTNAME"
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
30 hostname "$HOSTNAME"
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 fi
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
32
694
2bac0c29807f core/rc: improve messages and fix deletion
David Demelier <markand@malikania.fr>
parents: 630
diff changeset
33 echo "Setting kernel parameters."
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
34 sysctl -p >/dev/null 2>&1
575
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
35
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
36 echo -n "Mounting filesystems: "
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
37
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
38 if ! mountpoint /dev >/dev/null 2>&1; then
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
39 mount -t devtmpfs devtmpfs /dev >/dev/null 2>&1
575
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
40 echo -n "/dev "
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 fi
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
42
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
43 if ! mountpoint /proc >/dev/null 2>&1; then
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
44 mount -t proc proc /proc >/dev/null 2>&1
575
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
45 echo -n "/proc "
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
46 fi
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
47
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
48 if ! mountpoint /sys >/dev/null 2>&1; then
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
49 mount -t sysfs sysfs /sys >/dev/null 2>&1
575
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
50 echo -n "/sys "
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
51 fi
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
52
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
53 if ! mountpoint /run >/dev/null 2>&1; then
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
54 mount -t tmpfs tmpfs /run >/dev/null 2>&1
575
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
55 echo -n "/run "
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
56 fi
405
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
57
694
2bac0c29807f core/rc: improve messages and fix deletion
David Demelier <markand@malikania.fr>
parents: 630
diff changeset
58 echo ""
559
d6be16d7c5de core/etc: clean pid files
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
59
557
73e25417284b core/etc: take init scripts from sysvinit
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
60 #
73e25417284b core/etc: take init scripts from sysvinit
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
61 # Start a device service. Both eudev and busybox's mdev are supported but only
73e25417284b core/etc: take init scripts from sysvinit
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
62 # one at a time must be enabled.
73e25417284b core/etc: take init scripts from sysvinit
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
63 #
558
a85759a313b1 core/etc: mdev is actually named busybox.mdev
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
64 if [ -x /etc/rc.d/udevd ] && [ -x /etc/rc.d/busybox.mdev ]; then
a85759a313b1 core/etc: mdev is actually named busybox.mdev
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
65 echo "Warning: both /etc/rc.d/udevd and /etc/rc.d/busybox.mdev are enabled" 1>&2
557
73e25417284b core/etc: take init scripts from sysvinit
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
66 echo "Warning: using udevd instead" 1>&2
73e25417284b core/etc: take init scripts from sysvinit
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
67 fi
73e25417284b core/etc: take init scripts from sysvinit
David Demelier <markand@malikania.fr>
parents: 516
diff changeset
68
405
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
69 if [ -x /etc/rc.d/udevd ]; then
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
70 /etc/rc.d/udevd start
558
a85759a313b1 core/etc: mdev is actually named busybox.mdev
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
71 elif [ -x /etc/rc.d/busybox.mdev ]; then
a85759a313b1 core/etc: mdev is actually named busybox.mdev
David Demelier <markand@malikania.fr>
parents: 557
diff changeset
72 /etc/rc.d/busybox.mdev start
405
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
73 fi
01b5d3175215 vanilla: add proper support for udev and boot scripts
David Demelier <markand@malikania.fr>
parents: 184
diff changeset
74
575
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
75 # Make sure / is ro in case of initrd.
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
76 mount -o remount,ro /
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
77
575
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
78 # If /etc/forcefsck is there, force check.
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
79 if [ -f /etc/forcefsck ]; then
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
80 force="-f"
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
81 fi
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
82
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
83 fsck $force -A -T >/dev/null 2>&1
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
84
575
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
85 if [ "$?" -gt 1 ]; then
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
86 echo "* Filesystem check failed"
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
87 sulogin
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
88 reboot
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 fi
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
90
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 # Remount / and enable swap as the system is ready.
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
92 mount -o remount,rw /
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
93 swapon -a
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
94
694
2bac0c29807f core/rc: improve messages and fix deletion
David Demelier <markand@malikania.fr>
parents: 630
diff changeset
95 # Clean pid files before starting any services.
2bac0c29807f core/rc: improve messages and fix deletion
David Demelier <markand@malikania.fr>
parents: 630
diff changeset
96 find /var/run -type f -name "*.pid" -delete
2bac0c29807f core/rc: improve messages and fix deletion
David Demelier <markand@malikania.fr>
parents: 630
diff changeset
97
560
2f46816f1cd6 core/etc: enable font/keymap loading
David Demelier <markand@malikania.fr>
parents: 559
diff changeset
98 # Update shared library caches.
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
99 ldconfig
560
2f46816f1cd6 core/etc: enable font/keymap loading
David Demelier <markand@malikania.fr>
parents: 559
diff changeset
100
569
290ca0287e5d core/rc: make busybox init start /etc/rc.start
David Demelier <markand@malikania.fr>
parents: 566
diff changeset
101 if [ -n "$TIMEZONE" ] && [ "$TIMEZONE" != "UTC" ]; then
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 echo -n "Setting timezone: "
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
103
516
014d018468fb core: use new FHS
David Demelier <markand@malikania.fr>
parents: 406
diff changeset
104 if [ -f /share/zoneinfo/$TIMEZONE ]; then
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
105 ln -sf /share/zoneinfo/$TIMEZONE /etc/localtime
694
2bac0c29807f core/rc: improve messages and fix deletion
David Demelier <markand@malikania.fr>
parents: 630
diff changeset
106 echo "$TIMEZONE"
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
107 else
569
290ca0287e5d core/rc: make busybox init start /etc/rc.start
David Demelier <markand@malikania.fr>
parents: 566
diff changeset
108 echo "$TIMEZONE not found"
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
109 fi
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 fi
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
111
560
2f46816f1cd6 core/etc: enable font/keymap loading
David Demelier <markand@malikania.fr>
parents: 559
diff changeset
112 # Console font and keymap.
575
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
113 if [ -n "$FONT" ]; then
560
2f46816f1cd6 core/etc: enable font/keymap loading
David Demelier <markand@malikania.fr>
parents: 559
diff changeset
114 echo "Setting font: $FONT"
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
115 setfont $FONT
560
2f46816f1cd6 core/etc: enable font/keymap loading
David Demelier <markand@malikania.fr>
parents: 559
diff changeset
116 fi
2f46816f1cd6 core/etc: enable font/keymap loading
David Demelier <markand@malikania.fr>
parents: 559
diff changeset
117
575
3c0d8d9fe11e core/rc: simplify rc.init
David Demelier <markand@malikania.fr>
parents: 569
diff changeset
118 if [ -n "$KEYMAP" ]; then
560
2f46816f1cd6 core/etc: enable font/keymap loading
David Demelier <markand@malikania.fr>
parents: 559
diff changeset
119 echo "Setting keymap: $KEYMAP"
629
dbd752e285f6 core/rc: stay POSIX and support busybox
David Demelier <markand@malikania.fr>
parents: 575
diff changeset
120 loadkeys $KEYMAP
560
2f46816f1cd6 core/etc: enable font/keymap loading
David Demelier <markand@malikania.fr>
parents: 559
diff changeset
121 fi
2f46816f1cd6 core/etc: enable font/keymap loading
David Demelier <markand@malikania.fr>
parents: 559
diff changeset
122
559
d6be16d7c5de core/etc: clean pid files
David Demelier <markand@malikania.fr>
parents: 558
diff changeset
123 # Cleanup some files.
184
36f3ab3945d7 core/sysvinit: add basic init scripts
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 rm -f /etc/forcefsck
630
58211c615a8c core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents: 629
diff changeset
125
58211c615a8c core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents: 629
diff changeset
126 # Startup networking.
58211c615a8c core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents: 629
diff changeset
127 if [ -x /etc/rc.networking ]; then
58211c615a8c core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents: 629
diff changeset
128 /etc/rc.networking start
58211c615a8c core/rc: add basic rc.networking support
David Demelier <markand@malikania.fr>
parents: 629
diff changeset
129 fi