1 | #!/bin/sh |
---|
2 | |
---|
3 | LLIUREX_GRUB_TOKENS_DIR="/etc/lliurex-grub-custom" |
---|
4 | TOKEN_DISTRIBUTOR="lliurex-distributor" |
---|
5 | TOKEN_GFXMODE="lliurex-gfxmode" |
---|
6 | TOKEN_GRUB_HIDDEN_TIMEOUT="lliurex-hiddent-timeout" |
---|
7 | TOKEN_GRUB_HIDDEN_TIMEOUT_2="lliurex-hiddent-timeout-2" |
---|
8 | TOKEN_GRUB_BACKGROUND="lliurex-grub-background" |
---|
9 | TOKEN_GRUB_RW="lliurex-grub-rw" |
---|
10 | TOKEN_GRUB_IFACES="lliurex-grub-ifaces" |
---|
11 | LLIUREX_GRUB_DEFAULT="/etc/lliurex-grub/grub.default" |
---|
12 | DISTRIBUTION="Lliurex Xenial" |
---|
13 | GRUB_DEFCFG_DIR="/etc/default/grub.d" |
---|
14 | GRUB_DEFCFG_FILE="${GRUB_DEFCFG_DIR}/lliurex_conf.cfg" |
---|
15 | |
---|
16 | mkdir -p ${LLIUREX_GRUB_TOKENS_DIR} |
---|
17 | |
---|
18 | if [ -f /etc/default/grub ]; then |
---|
19 | if [ ! -d ${GRUB_DEFCFG_DIR} ]; then |
---|
20 | mkdir ${GRUB_DEFCFG_DIR} |
---|
21 | fi |
---|
22 | cp /etc/default/grub ${LLIUREX_GRUB_DEFAULT} |
---|
23 | echo " [ LLiureX Grub Custom ] : Settings for LliureX Grub" |
---|
24 | # Set distribution only one time |
---|
25 | if [ ! -f ${LLIUREX_GRUB_TOKENS_DIR}/${TOKEN_DISTRIBUTOR} ] ; then |
---|
26 | echo " [ LLiureX Grub Custom ] : Setting DISTRIBUTION" |
---|
27 | sed -i "s%^GRUB_DISTRIBUTOR=.*%GRUB_DISTRIBUTOR=\"${DISTRIBUTION}\"%g" ${LLIUREX_GRUB_DEFAULT} || echo "Not find the line" |
---|
28 | echo "GRUB_DISTRIBUTOR=\"${DISTRIBUTION}\"" > ${GRUB_DEFCFG_FILE} |
---|
29 | date +%F_%R > ${LLIUREX_GRUB_TOKENS_DIR}/${TOKEN_DISTRIBUTOR} |
---|
30 | fi |
---|
31 | |
---|
32 | # Set GFXMODE only one time |
---|
33 | if [ ! -f ${LLIUREX_GRUB_TOKENS_DIR}/${TOKEN_GFXMODE} ] ; then |
---|
34 | echo " [ LLiureX Grub Custom ] : Setting GFXMODE" |
---|
35 | sed -i "s%^#GRUB_GFXMODE=.*%GRUB_GFXMODE=1024x768%g" ${LLIUREX_GRUB_DEFAULT} || echo "Not find the line" |
---|
36 | echo "GRUB_GFXMODE=1024x768" >> ${GRUB_DEFCFG_FILE} |
---|
37 | date +%F_%R > ${LLIUREX_GRUB_TOKENS_DIR}/${TOKEN_GFXMODE} |
---|
38 | fi |
---|
39 | |
---|
40 | |
---|
41 | # Set HIDDENT_TIMEOUT only one time |
---|
42 | if [ ! -f ${LLIUREX_GRUB_TOKENS_DIR}/${TOKEN_GRUB_HIDDEN_TIMEOUT} ] ; then |
---|
43 | echo " [ LLiureX Grub Custom ] : Setting HIDDENT_TIMEOUT" |
---|
44 | sed -i "s%^GRUB_HIDDEN_TIMEOUT_QUIET=true%#GRUB_HIDDEN_TIMEOUT_QUIET=true%g" ${LLIUREX_GRUB_DEFAULT} || echo "Not find the line" |
---|
45 | echo "GRUB_HIDDEN_TIMEOUT_QUIET=true" >> ${GRUB_DEFCFG_FILE} |
---|
46 | date +%F_%R > ${LLIUREX_GRUB_TOKENS_DIR}/${TOKEN_GRUB_HIDDEN_TIMEOUT} |
---|
47 | fi |
---|
48 | |
---|
49 | |
---|
50 | # Set HIDDENT_TIMEOUT only one time |
---|
51 | if [ ! -f ${LLIUREX_GRUB_TOKENS_DIR}/${TOKEN_GRUB_HIDDEN_TIMEOUT_2} ] ; then |
---|
52 | echo " [ LLiureX Grub Custom ] : Setting HIDDENT_TIMEOUT" |
---|
53 | sed -i "s%^GRUB_HIDDEN_TIMEOUT=.*%GRUB_HIDDEN_TIMEOUT=%g" ${LLIUREX_GRUB_DEFAULT} || echo "Not find the line" |
---|
54 | echo "GRUB_HIDDEN_TIMEOUT=" >> ${GRUB_DEFCFG_FILE} |
---|
55 | date +%F_%R > ${LLIUREX_GRUB_TOKENS_DIR}/${TOKEN_GRUB_HIDDEN_TIMEOUT_2} |
---|
56 | fi |
---|
57 | |
---|
58 | # Set GRUB_BACKGROUND only one time |
---|
59 | |
---|
60 | if [ ! -f ${LLIUREX_GRUB_TOKENS_DIR}/${TOKEN_GRUB_BACKGROUND} ] ; then |
---|
61 | echo " [ LLiureX Grub Custom ] : Setting GRUB_BACKGROUND" |
---|
62 | echo 'GRUB_BACKGROUND="/usr/share/lliurex-grub-custom/backgrounds/trusty.png"' >> ${LLIUREX_GRUB_DEFAULT} |
---|
63 | echo "GRUB_BACKGROUND=\"/usr/share/lliurex-grub-custom/backgrounds/trusty.png\"" >> ${GRUB_DEFCFG_FILE} |
---|
64 | date +%F_%R > ${LLIUREX_GRUB_TOKENS_DIR}/${TOKEN_GRUB_BACKGROUND} |
---|
65 | fi |
---|
66 | |
---|
67 | # Set GRUB rw only one time |
---|
68 | |
---|
69 | #if [ ! -f ${LLIUREX_GRUB_TOKENS_DIR}/${TOKEN_GRUB_RW} ] ; then |
---|
70 | # echo " [ LLiureX Grub Custom ] : Setting GRUB_RW" |
---|
71 | # sed -i "s%^GRUB_CMDLINE_LINUX_DEFAULT=.*%GRUB_CMDLINE_LINUX_DEFAULT=\"quiet splash rw\"%g" /etc/default/grub || echo "Not find the line" |
---|
72 | # date +%F_%R > ${LLIUREX_GRUB_TOKENS_DIR}/${TOKEN_GRUB_RW} |
---|
73 | #fi |
---|
74 | |
---|
75 | # Set Default boot options for GRUB_CMDLINE_LINUX_DEFAULT |
---|
76 | if [ ! -f ${LLIUREX_GRUB_TOKENS_DIR}/${TOKEN_GRUB_IFACES} ] ; then |
---|
77 | echo " [ LLiureX Grub Custom ] : Setting default Linux cmdline" |
---|
78 | sed -i "s%^GRUB_CMDLINE_LINUX_DEFAULT=.*%GRUB_CMDLINE_LINUX_DEFAULT=\"net.ifnames=0 quiet splash rw\"%g" ${LLIUREX_GRUB_DEFAULT} || echo "Not find the line" |
---|
79 | echo "GRUB_CMDLINE_LINUX_DEFAULT=\"net.ifnames=0 quiet splash rw\"" >> ${GRUB_DEFCFG_FILE} |
---|
80 | IFACES=`ls /sys/class/net|egrep -v '^lo$'` |
---|
81 | I=0 |
---|
82 | for x in $IFACES; do |
---|
83 | echo " [ LLiureX Grub Custom ] : Fixing $x into /etc/network/interfaces" |
---|
84 | sed -i "s%$x%eth$I%g" /etc/network/interfaces || echo "Not found interface $x into /etc/network/interfaces" |
---|
85 | I=$(($I+1)) |
---|
86 | done |
---|
87 | date +%F_%R > ${LLIUREX_GRUB_TOKENS_DIR}/${TOKEN_GRUB_IFACES} |
---|
88 | fi |
---|
89 | fi |
---|
90 | |
---|
91 | |
---|
92 | # Template for diversions |
---|
93 | ORIG_FILE="/etc/grub.d/10_linux" |
---|
94 | OUR_FILE="/etc/lliurex-grub/10_linux_lliurex" |
---|
95 | OUR_PACKAGE="lliurex-grub-custom" |
---|
96 | |
---|
97 | GRUB_DEFAULT_FILE="/etc/default/grub" |
---|
98 | case $1 in |
---|
99 | |
---|
100 | configure) |
---|
101 | mkdir -p /etc/lliurex-grub/ |
---|
102 | if dpkg-divert --package ${OUR_PACKAGE} --add --rename --divert /etc/lliurex-grub/10_linux.real ${ORIG_FILE} ; then |
---|
103 | ln -fs ${OUR_FILE} ${ORIG_FILE} |
---|
104 | else |
---|
105 | echo "Unabe to divert file ${ORIG_FILE}" |
---|
106 | fi |
---|
107 | if dpkg-divert --package ${OUR_PACKAGE} --divert ${GRUB_DEFAULT_FILE}.ubuntu --rename ${GRUB_DEFAULT_FILE} ; then |
---|
108 | cp ${LLIUREX_GRUB_DEFAULT} ${GRUB_DEFAULT_FILE} |
---|
109 | ucf --purge ${GRUB_DEFAULT_FILE} |
---|
110 | ucfr --purge --force grub-pc ${GRUB_DEFAULT_FILE} |
---|
111 | ucfr grub-pc ${GRUB_DEFAULT_FILE} |
---|
112 | ucfr ${OUR_PACKAGE} ${GRUB_DEFAULT_FILE}.ubuntu |
---|
113 | ucf ${LLIUREX_GRUB_DEFAULT} ${GRUB_DEFAULT_FILE} |
---|
114 | echo "Diverted ${GRUB_DEFAULT_FILE} file" |
---|
115 | else |
---|
116 | echo "Unable to divert file ${ORIG_FILE}" |
---|
117 | fi |
---|
118 | ;; |
---|
119 | *) |
---|
120 | echo "Nothing to do" |
---|
121 | ;; |
---|
122 | esac |
---|
123 | |
---|
124 | # Other Stuff # |
---|
125 | |
---|
126 | |
---|
127 | # To clean initramfs scripts |
---|
128 | if type update-initramfs >/dev/null 2>&1; then |
---|
129 | update-initramfs -u || true |
---|
130 | fi |
---|
131 | |
---|
132 | |
---|
133 | #DEBHELPER# |
---|
134 | |
---|
135 | |
---|
136 | |
---|
137 | update-grub2 || true |
---|
138 | |
---|
139 | #DEBHELPER# |
---|