]> glassweightruler.freedombox.rocks Git - Ventoy.git/blob - LiveCDGUI/VTOY/init
Suppress some prompt window when install Ventoy.
[Ventoy.git] / LiveCDGUI / VTOY / init
1 #!/bin/sh
2 #
3 # Porteus Kiosk initialization script.
4 # Author: T.Jokiel <http://porteus-kiosk.org>
5 #
6 # 2021 longpanda admin@ventoy.net
7 #
8
9
10 /bin/busybox --install -s
11 mount -nt proc proc /proc
12 grep -q -w debug /proc/cmdline || { echo 0 >/proc/sys/kernel/printk 2>/dev/null; clear; }
13 mount -nt sysfs sysfs /sys
14 mount -nt devtmpfs none /dev
15 mkdir -p /dev/shm; chmod 1777 /dev/shm
16
17 grep -q -w debug /proc/cmdline && touch /tmp/lspci || quiet=yes
18
19 # Use memory as aufs
20 mount -nt tmpfs -o size=75% tmpfs /memory
21 mkdir -p /memory/xino /memory/changes /memory/images /memory/copy2ram
22
23 # Setup aufs
24 mount -nt aufs -o nowarn_perm,xino=/memory/xino/.aufs.xino,br:/memory/changes=rw aufs /union
25
26
27 #Draw background
28 if [ -z "$quiet" ]; then
29 echo "##################################################"
30 echo "Starting Ventoy Live GUI <https://www.ventoy.net>"
31 echo "##################################################"
32 else
33 mkdir -p /lib /opt/000 /opt/001; lspci >/tmp/lspci
34 mount -o loop /000-kernel.xzm /opt/000
35 mount -o loop /001-core.xzm /opt/001
36 [ `uname -m` = x86_64 ] && prefix="-x86-64"
37 ln -sf /opt/000/lib/firmware /lib/firmware
38 ln -sf /opt/000/lib/modules /lib/modules
39 ln -sf /opt/001/lib64/libc.so.6 /lib/libc.so.6
40 ln -sf /opt/001/lib64/ld-linux"$prefix".so.2 /lib/ld-linux"$prefix".so.2
41 ln -s /opt/001/bin/kmod /bin/modprobe
42
43 vga=`lspci | grep 0300: | head -n1 | cut -d: -f3-4 | sed s/:/d0000/g`; [ "$vga" ] && driver="$(grep -i $vga /lib/modules/`uname -r`/modules.alias 2>/dev/null | head -n1 | rev | cut -d" " -f1 | rev)"
44
45 # Nvidia quirk:
46 [ "$driver" ] || { lspci | grep 0300: | head -n1 | cut -d: -f3 | grep -q "10de" && driver=nouveau; }
47
48 # VirtualBox quirk:
49 [ "$driver" = vboxvideo ] || modprobe $driver 2>/dev/null
50 test -e /dev/fb0 || { cp /opt/001/sbin/v86d /sbin; modprobe uvesafb mode_option=1024x768-32; }
51 if test -e /dev/fb0; then
52 rm -r /lib; ln -sf /opt/001/lib64 /lib; ln -sf /opt/001/usr/lib64 /usr/lib
53 /opt/001/usr/bin/fbv -a -c -u -i -k -e -r /VTOY/background.png 2>/dev/null &
54 fi
55 fi
56
57
58 cp -a /*.xzm /memory/copy2ram/
59
60 # Populate aufs with modules:
61 for x in `ls -1 /memory/copy2ram/ | grep \\.xzm$`; do
62 mkdir -p /memory/images/$x
63 mount -nt squashfs -o loop /memory/copy2ram/$x /memory/images/$x 2>/dev/null
64 if [ $? -eq 0 ]; then
65 mount -no remount,add:1:/memory/images/$x=rr aufs /union
66 fi
67 done
68
69
70
71
72 #clean
73 if [ -n "$quiet" ]; then
74 while [ "`pidof fbv`" ]; do
75 usleep 500000
76 done
77 umount /opt/000 /opt/001 2>/dev/null
78 rm -r /lib
79 fi
80
81
82
83 mkdir -p /union/opt/scripts/
84 echo 123 > /union/opt/scripts/extras
85
86 echo "c2::respawn:/sbin/agetty --autologin root 38400 tty2 linux" >> /union/etc/inittab
87 echo "c3::respawn:/sbin/agetty --autologin root 38400 tty3 linux" >> /union/etc/inittab
88 echo "c4::respawn:/sbin/agetty --autologin root 38400 tty4 linux" >> /union/etc/inittab
89
90
91 sed "s/root:[^:]*:/root::/g" -i /union/etc/shadow
92 rm -f /union/etc/X11/xorg.conf.d/10-xorg.conf
93 rm -f /union/lib64/udev/rules.d/10-kiosk-auto_mount.rules
94 cp -a /VTOY/autostart /union/etc/xdg/openbox/autostart
95 cp -a /VTOY/*.png /union/ventoy/
96
97 mkdir -p /union/usr/local/sbin
98 mv /VTOY/ntfs-3g.tar.gz /union/usr/local/sbin/
99 mv /VTOY/busybox /union/usr/local/sbin/
100
101
102 cp -a /bin/busybox /union/bin; ln -sf /union/lib /lib
103 cp -a /VTOY/wallpaper.png /union/usr/share/wallpapers/ 2>/dev/null
104
105 #to suppress error message
106 mkdir -p /mnt/fake/docs
107 echo 11 > /mnt/fake/docs/kiosk.sgn
108
109 # swith_root
110 exec /sbin/switch_root /union /sbin/init
111