-
Notifications
You must be signed in to change notification settings - Fork 4
/
grub.cfg
executable file
·194 lines (170 loc) · 4.85 KB
/
grub.cfg
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
if serial --port=0x3F8 --speed=115200;then
set has_serial=true
terminal_input --append serial
terminal_output --append serial
else
clear
fi
terminal_input --append console
terminal_output --append console
if [ x"${grub_platform}" = xefi ]; then
insmod efi_gop
insmod efi_uga
else
insmod vbe
insmod vga
insmod vga_text
fi
set extra_initrd="extra.lzma"
set info="info.txt"
set vid=0x058f
set pid=0x6387
set sn=A8ODN02468
set mac1=0011322CA603
set rootdev=/dev/md0
set netif_num=1
set extra_args_3617='earlycon=uart8250,io,0x3f8,115200n8 earlyprintk loglevel=15'
#set extra_args_3617=''
set common_args_3617='console=ttyS0,115200n8 elevator=elevator'
set sata_args='sata_uid=1 sata_pcislot=5 synoboot_satadom=1 DiskIdxMap=0C SataPortMap=1 SasIdxMap=0'
set default='0'
set timeout='1'
set fallback='1'
if [ -s $prefix/grubenv ]; then
load_env
if [ -n "$saved_entry" ]; then
set default="${saved_entry}"
fi
fi
VERSION="with Jun's Mod v1.03b"
search --file -s /bzImage
function savedefault {
if [ -s $prefix/grubenv ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function do_option {
if [ $# -lt 2 ]; then
eval "set value=\"\$$1\""
echo "current $1: $value"; return;
fi
set key=$1
shift
set $key="$*"
if [ -s $prefix/grubenv ]; then
save_env $key
fi
}
function vid { do_option vid $@; }
function pid { do_option pid $@; }
function sn { do_option sn $@; }
function mac1 { do_option mac1 $@; }
function mac2 { do_option mac2 $@; }
function mac3 { do_option mac3 $@; }
function mac4 { do_option mac4 $@; }
function rootdev { do_option rootdev $@; }
function append { do_option extra_args_3617 $@; }
function vidpid {
if [ $# -lt 2 ]; then
echo "usage: vidpid 0xVVVV 0xPPPP"; return;
fi
set usb_args="vid=$1 pid=$2"
if [ -s $prefix/grubenv ]; then
save_env usb_args
fi
}
function showtips {
if [ -n "$has_serial" ]; then
terminal_output --remove serial
fi
echo "Screen will stop updating shortly, please open http://find.synology.com to continue."
echo
echo
if [ -n "$has_serial" ]; then
terminal_output --append serial
fi
}
function loadinitrd {
if [ -s $img/$info ]; then
if [ -n "$has_serial" ]; then
terminal_output --remove serial
fi
cat $img/$info
if [ -n "$has_serial" ]; then
terminal_output --append serial
fi
fi
# if [ -s $img/$extra_initrd ]; then
# initrd $img/rd.gz $img/$extra_initrd
# else
# initrd $img/rd.gz
# fi
}
function common_add_option {
eval "set value=\"\$$1\""
if [ -z $value ]; then return 1; fi
set common_args="$common_args $1=$value"
}
function common_add_option_ex {
eval "set value=\"\$$1\""
if [ -z $value ]; then return 1; fi
set common_args="$common_args $2=$value"
}
function loadlinux {
set model=$1
set bootdev=$2
shift 2
if [ -n $vid -a -n $pid ]; then
set usb_args="vid=$vid pid=$pid"
fi
eval "set common_args=\"\$common_args_$model\""
eval "set extra_args=\"\$extra_args_$model\""
eval "set bootdev_args=\"\$${bootdev}_args\""
common_add_option_ex rootdev root
common_add_option sn
if common_add_option mac1; then set netif_num=1; fi
if common_add_option mac2; then set netif_num=2; fi
if common_add_option mac3; then set netif_num=3; fi
if common_add_option mac4; then set netif_num=4; fi
common_add_option netif_num
if [ -z $zImage ]; then
set zImage=bzImage
fi
linux $img/$zImage $common_args $bootdev_args $extra_args $@
}
menuentry "DS3617xs 6.2 Baremetal $VERSION - Github/laris/synoboot-grub2-unusb-disk" --class os {
set img=/boot
savedefault
loadlinux 3617
loadinitrd
showtips
}
menuentry "DS3617xs 6.2 Baremetal $VERSION" --class os {
set img=
savedefault
loadlinux 3617 usb
loadinitrd
showtips
}
menuentry "DS3617xs 6.2 Baremetal $VERSION Reinstall" --class os {
set img=
loadlinux 3617 usb mfg
loadinitrd
showtips
}
#menuentry "DS3617xs 6.2 Baremetal AMD $VERSION" --class os {
# set img=
# set zImage=bzImage
# savedefault
# loadlinux 3617 usb
# loadinitrd
# showtips
#}
menuentry "DS3617xs 6.2 VMWare/ESXI $VERSION" --class os {
set img=
savedefault
loadlinux 3617 sata
loadinitrd
showtips
}