-
Notifications
You must be signed in to change notification settings - Fork 0
/
make_cdrom.sh
executable file
·81 lines (58 loc) · 1.89 KB
/
make_cdrom.sh
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/bin/sh
TY="$1"
alias cp='cp -v'
echo "Building cdrom type: $TY"
if [ "$TY" != "dev" -a "$TY" != "rel" ]; then
print "Invalid build type: $TY, expected dev or rel"
exit -1
fi
if [ "$TY" = "dev" ]; then
STRIP="strip --strip-debug"
else
STRIP="strip -s -R .comment -R .gnu.version"
fi
if [ ! -e cdrom/boot/grub/stage2_eltorito ]; then
mkdir -p cdrom/boot/grub
echo "Please copy grub's stage2_eltorito to cdrom/boot/grub."
exit -1
fi
# Copy system files to CDROM
cp build/$TY/kernel.bin cdrom/boot; $STRIP cdrom/boot/kernel.bin
cp build/$TY/sysbin/init.bin cdrom/boot; $STRIP cdrom/boot/init.bin
mkdir -p cdrom/sys/bin
for BIN in giosrv.bin login.bin terminal.bin shell.bin lua.bin luac.bin lx.bin; do
if [ -e build/$TY/sysbin/$BIN ]; then
cp build/$TY/sysbin/$BIN cdrom/sys/bin
$STRIP cdrom/sys/bin/$BIN
else
echo "Skipping binary $BIN: not found!"
fi
done
mkdir -p cdrom/sys/fonts
cp build/fonts/*.bf cdrom/sys/fonts
cp res/fonts/*.ttf cdrom/sys/fonts
mkdir -p cdrom/sys/keymaps
cp build/keymaps/*.km cdrom/sys/keymaps
cp build/keymaps/fr.km cdrom/sys/keymaps/default.km
cp -r res/cursors cdrom/sys/
mkdir -p cdrom/sys/lua
cp -r src/syslua/* cdrom/sys/lua
mkdir -p cdrom/sys/app
cp -r src/sysapp/* cdrom/sys/app
cp README.md cdrom
cp res/kogata-logo.png cdrom/logo.png
# Setup config files
mkdir -p cdrom/config/default
echo "root:/sys" > cdrom/config/default/sysdir
cat > cdrom/boot/grub/menu.lst <<EOF
timeout 10
default 0
title kogata OS, C terminal
kernel /boot/kernel.bin root=io:/disk/atapi0 root_opts=l init=root:/boot/init.bin config=default
title kogata OS, Lua init
kernel /boot/kernel.bin root=io:/disk/atapi0 root_opts=l init=root:/boot/init.bin config=default lx_init_app=login loop_exec=false
EOF
# Generate CDROM image
genisoimage -R -b boot/grub/stage2_eltorito -no-emul-boot \
-boot-load-size 4 -boot-info-table -input-charset ascii \
-A kogata-os -o cdrom.$TY.iso cdrom