2 # Filename: grml_kernel.sh
3 # Purpose: build kernel for grml
4 # Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
5 # Bug-Reports: see http://grml.org/bugs/
6 # License: This file is licensed under the GPL v2.
7 # Latest change: Mon Dec 20 18:36:06 CET 2004 [mika]
8 ################################################################################
14 MV=$(echo $VER|cut -d- -f1)
15 EV=$(echo $VER|cut -d- -f2-)
23 # RED: Failure or error message
25 # GREEN: Success message
27 # YELLOW: Descriptions
29 # BLUE: System messages
31 # MAGENTA: Found devices or drivers
38 if [[ "$1" == "" ]] || [[ "$1" == "-h" ]] || [[ "$1" == '--help' ]] ; then
41 $PN deb -> install debian packages
42 $PN get -> get kernel + patches
43 $PN extr -> extract kernel + patches
44 $PN patch -> patch kernel
45 $PN allpatch -> create all-in-on kernel patch
46 $PN build -> build kernel + modules
51 if [[ "$1" == deb ]] ; then
53 sudo apt-get install \\
54 kernel-headers-2.6.9-1 \\
56 kernel-source-2.6.9 \\
64 lirc-modules-source \\
71 if [[ "$1" == get ]] ; then
73 echo -e "${BLUE}Downloading vanilla kernel: ${NORMAL}"
74 wget -Nc ftp://ftp.at.kernel.org/pub/linux/kernel/v$KV/linux-$MV.tar.bz2 && echo -e "${GREEN}done${NORMAL}\n" || echo -e "${RED}error${NORMAL}\n"
76 [[ -d patches ]] || echo "Creating directory patches" && mkdir patches && cd patches
78 #echo -e "${BLUE}Downloading MPPE patch: ${NORMAL}"
79 #wget -Nc http://www.polbox.com/h/hs001/linux-2.6.9-mppe-mppc-1.1.patch.gz && echo -e "${GREEN}done${NORMAL}\n" || echo -e "${RED}error${NORMAL}\n"
80 #wget -Nc http://pptpclient.sourceforge.net/mppe/ppp-2.4.2_cvs20040216-linux-mppe.tar.gz
82 echo -e "${BLUE}Downloading ACX100 patch: ${NORMAL}"
83 #wget -Nc http://rhlx01.fht-esslingen.de/~andi/acx100/acx100-0.2.0pre8_plus_fixes_40.tar.bz2
84 wget -Nc http://rhlx01.fht-esslingen.de/~andi/acx100/acx100-0.2.0pre8_plus_fixes_43.tar.gz && echo -e "${GREEN}done${NORMAL}\n" || echo -e "${RED}error${NORMAL}\n"
86 echo -e "${BLUE}Downloading ACPI-DSDT patch: ${NORMAL}"
87 wget -Nc http://gaugusch.at/acpi-dsdt-initrd-patches/acpi-dsdt-initrd-patch-v0.7d-2.6.9.patch && echo -e "${GREEN}done${NORMAL}\n" || echo -e "${RED}error${NORMAL}\n"
89 echo -e "${BLUE}Downloading LOOP-AES patch: ${NORMAL}"
90 #wget -Nc http://loop-aes.sourceforge.net/loop-AES/loop-AES-v2.2d.tar.bz2
91 wget -Nc http://loop-aes.sourceforge.net/loop-AES/loop-AES-v3.0a.tar.bz2 && echo -e "${GREEN}done${NORMAL}\n" || echo -e "${RED}error${NORMAL}\n"
93 echo -e "${BLUE}Downloading squashfs patch: ${NORMAL}"
94 #wget -Nc http://heanet.dl.sourceforge.net/sourceforge/squashfs/squashfs2.0-r2.tar.gz
95 wget -Nc http://umn.dl.sourceforge.net/sourceforge/squashfs/squashfs2.1-r2.tar.gz && echo -e "${GREEN}done${NORMAL}\n" || echo -e "${RED}error${NORMAL}\n"
97 echo -e "${BLUE}Downloading Con Kolivas patch: ${NORMAL}"
98 #wget -Nc http://ck.kolivas.org/patches/2.6/2.6.9/2.6.9-ck3/patches/2.6.9-aic7xxx-fix.patch
99 #wget -Nc http://ck.kolivas.org/patches/2.6/2.6.9/2.6.9-ck3/patches/2.6.9-cpia-deadlock-fix.patch
100 #wget -Nc http://ck.kolivas.org/patches/2.6/2.6.9/2.6.9-ck3/patches/2.6.9-hpt366-fix.patch
101 #wget -Nc http://ck.kolivas.org/patches/2.6/2.6.9/2.6.9-ck3/patches/2.6.9-smbfs-leak-fix.patch
102 #wget -Nc http://ck.kolivas.org/patches/2.6/2.6.9/2.6.9-ck3/patches/2.6.9-usb-visor-fix.patch
103 #wget -Nc http://ck.kolivas.org/patches/2.6/2.6.9/2.6.9-ck3/patches/vm-pages_scanned-active_list.patch
104 #wget -Nc http://ck.kolivas.org/patches/2.6/2.6.9/2.6.9-ck1/patches/nvidia_compat.diff
105 wget -Nc http://ck.kolivas.org/patches/2.6/2.6.9/2.6.9-ck3/patch-2.6.9-ck3.bz2 && echo -e "${GREEN}done${NORMAL}\n" || echo -e "${RED}error${NORMAL}\n"
107 #echo -e "${BLUE}Downloading supermount patch: ${NORMAL}"
108 #wget -Nc http://kanotix.com/files/patches/supermount-ng207.diff
109 #wget -Nc http://ck.kolivas.org/patches/2.6/2.6.9/2.6.9-ck3/patches/supermount-ng207.diff
111 # http://kem.p.lodz.pl/~peter/cko/
112 # http://kem.p.lodz.pl/~peter/cko/patch-2.6.9-cko3.bz2
114 # echo -e "${BLUE}Downloading Philips USB Webcam Driver for Linux patch: ${NORMAL}"
115 # wget -Nc http://www.saillard.org/linux/pwc/patches/linux-2.6.9_pwc-10.0.6.patch.bz2 && echo -e "${GREEN}done${NORMAL}\n" || echo -e "${RED}error${NORMAL}\n"
117 echo -e "${BLUE}Downloading Synaptics TouchPad driver for XOrg/XFree86 patch: ${NORMAL}"
118 wget -Nc http://web.telia.com/~u89404340/touchpad/files/synaptics-0.13.6.tar.bz2 && echo -e "${GREEN}done${NORMAL}\n" || echo -e "${RED}error${NORMAL}\n"
120 echo -e "${BLUE}Downloading Linux event device protocol support for GPM patch: ${NORMAL}"
121 wget -Nc http://www.geocities.com/dt_or/input/2_6_9/i8042-tasklet-v3.patch.gz && echo -e "${GREEN}done${NORMAL}\n" || echo -e "${RED}error${NORMAL}\n"
123 echo -e "${BLUE}Downloading ACPI patch: ${NORMAL}"
124 #ftp://ftp.uk.kernel.org/pub/linux/kernel/people/lenb/acpi/patches/release/26-stable-release/acpi-20041105-26-stable-release.diff.bz2
125 wget -Nc ftp://ftp.at.kernel.org/pub/linux/kernel/people/lenb/acpi/patches/release/2.6.9/acpi-20041203-26-stable-release.diff.gz && echo -e "${GREEN}done${NORMAL}\n" || echo -e "${RED}error${NORMAL}\n"
127 echo -e "${BLUE}Downloading Orinoco patch: ${NORMAL}"
128 wget -Nc http://www.kismetwireless.net/code/orinoco-2.6.9-rfmon-dragorn-1.diff && echo -e "${GREEN}done${NORMAL}\n" || echo -e "${RED}error${NORMAL}\n"
130 echo -e "${BLUE}Downloading Swsusp patch: ${NORMAL}"
131 #wget -Nc http://kanotix.com/files/patches/software-suspend-2.1.5-for-2.6.9-kanotix-7.tar.bz2
132 wget -Nc http://download.berlios.de/softwaresuspend/software-suspend-2.1.5-for-2.6.9.tar.bz2 && echo -e "${GREEN}done${NORMAL}\n" || echo -e "${RED}error${NORMAL}\n"
134 echo -e "${BLUE}Downloading VIA VT6410 patch: ${NORMAL}"
135 wget -Nc http://kanotix.com/files/patches/VIA610.267.patch && echo -e "${GREEN}done${NORMAL}\n" || echo -e "${RED}error${NORMAL}\n"
137 echo -e "${BLUE}Downloading cloop patch: ${NORMAL}"
138 # wget -Nc http://kanotix.com/files/patches/2.6.8-cloop.patch
139 # http://www.knoppix.net/forum/viewtopic.php?t=13226
140 # http://cvs.sourceforge.net/viewcvs.py/morphix/cloop/
141 wget -Nc http://grml.org/kernel/patches/2.6.8-cloop.patch && echo -e "${GREEN}done${NORMAL}\n" || echo -e "${RED}error${NORMAL}\n"
143 echo -e "${BLUE}Downloading reiser4 patch: ${NORMAL}"
144 #http://kanotix.com/files/patches/reiser4-269mm1-linux-2.6.9.diff.bz2
145 #http://linuxberg.vc-graz.ac.at/mirror/reiserfs/tmp/reiser4-for-2.6.9-3.gz
146 wget -Nc ftp://ftp.namesys.com/pub/reiser4-for-2.6/2.6.9/reiser4-for-2.6.9-3.gz && echo -e "${GREEN}done${NORMAL}\n" || echo -e "${RED}error${NORMAL}\n"
148 echo -e "${BLUE}Downloading bluetooth patch: ${NORMAL}"
149 wget -Nc http://www.holtmann.org/linux/kernel/patch-2.6.9-mh5.gz && echo -e "${GREEN}done${NORMAL}\n" || echo -e "${RED}error${NORMAL}\n"
151 echo -e "${BLUE}Downloading iteraid patch: ${NORMAL}"
152 wget -Nc http://kem.p.lodz.pl/~peter/iteraid.patch.bz2 && echo -e "${GREEN}done${NORMAL}\n" || echo -e "${RED}error${NORMAL}\n"
154 echo -e "${BLUE}Downloading 2.6.9-ac patch: ${NORMAL}"
155 # http://kem.p.lodz.pl/~peter/2.6.9-ac/
156 # http://www.kernel.org/pub/linux/kernel/people/alan/linux-2.6/2.6.9/
157 wget -Nc http://www.kernel.org/pub/linux/kernel/people/alan/linux-2.6/2.6.9/patch-2.6.9-ac16.bz2 && echo -e "${GREEN}done${NORMAL}\n" || echo -e "${RED}error${NORMAL}\n"
159 #echo -e "${BLUE}Downloading vesafb-tng patch: ${NORMAL}"
160 # http://dev.gentoo.org/~spock/projects/vesafb-tng/
161 #wget -Nc http://dev.gentoo.org/~spock/projects/vesafb-tng/archive/vesafb-tng-0.9-rc4-r3-2.6.9.patch && echo -e "${GREEN}done${NORMAL}\n" || echo -e "${RED}error${NORMAL}\n"
163 ################################################################################
164 # wget -Nc http://kanotix.com/files/patches/lirc-linux-2.6.9-rc4-bk1-slh.diff.bz2
165 # apt-get ... lirc-modules-source
167 # wget -Nc http://kanotix.com/files/patches/eagle-usb-2.6.8.patch.bz2
168 # http://download.gna.org/eagleusb/eagle-usb-2.0.0/
170 # http://kanotix.com/files/patches/translucency.kernel.patch
171 # wget -Nc http://kanotix.com/files/patches/suse-extmod-legacy.patch
173 # wget -Nc http://eciadsl.flashtux.org/download/beta/2.6.x-usb.patch
174 # apt-get ... eciadsl
175 ################################################################################
177 ################################################################################
178 #wget -Nc http://kanotix.com/files/patches/2.6.9-kanotix-7-security.diff.bz2
179 #wget -Nc http://m6n.ath.cx/aml_method_exec_hack.patch
180 #wget -Nc ftp://ftp.isdn4linux.de/pub/isdn4linux/CVS-Snapshots/mISDN-CVS-2004-08-02.tar.bz2
181 #wget -Nc http://kanotix.com/files/patches/bootsplash-3.1.4-sp3-2.6.9-rc4.diff
182 #wget -Nc http://www.netraverse.com/member/downloads/files/mki-adapter26_1_3_7.patch
183 #wget -Nc http://www.netraverse.com/member/downloads/files/Kernel-Win4Lin3-2.6.8.1.patch
184 #wget -Nc ftp://ftp.uk.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.9-rc4/2.6.9-rc4-mm1/broken-out/bk-acpi.patch
185 #wget -Nc http://kanotix.com/files/patches/dvb-269rc4mm1-linux-2.6.9-rc4-bk1-slh.diff.bz2
186 # wget -Nc http://www.saillard.org/pwc/linux-2.6.9_pwc-10.0.6.patch.bz2
187 #wget -Nc http://www.clarkson.edu/~evanchsa/software/kernel/patches/trackpoint-2.6.9.patch
188 #wget -Nc ftp://ftp.uk.kernel.org/pub/linux/kernel/people/lenb/acpi/patches/release/26-stable-release/acpi-20041105-26-stable-release.diff.bz2
189 ################################################################################
192 if [[ "$1" == extr ]] ; then
194 # [[ -d patches.extracted ]] || echo "Creating directory patches.extracted" && mkdir patches.extracted
195 # cd patches.extracted
197 [[ -d linux-"$MV" ]] || echo "Extracting linux-"$MV".tar.bz2" && tar jxf linux-"$MV".tar.bz2 && echo "done"
200 for i in `ls *.gz` ; do
201 gzip -d "$i" && echo -e "${GREEN}extracted ${i}${NORMAL}"
204 for i in `ls *.bz2` ; do
205 bzip2 -d "$i" && echo -e "${GREEN}extracted ${i}${NORMAL}"
208 for i in `ls *.tar` ; do
209 tar xf "$i" && echo -e "${GREEN}extracted ${i}${NORMAL}"
214 if [[ "$1" == patch ]] ; then
215 [[ -d patches_info ]] && rm -rf patches_info
217 cd patches/acx100-0.2.0pre8_plus_fixes_43 && make inject KSRC=$HERE/linux-$VER 1>>../../patches_info/patches_information && echo "acx100-0.2.0pre8_plus_fixes_43 applied" >> ../../patches_info/patches_applied || exit 10
220 for patch in 2.6.8-cloop.patch \
221 acpi-20041203-26-stable-release.diff \
222 acpi-dsdt-initrd-patch-v0.7d-2.6.9.patch \
223 i8042-tasklet-v3.patch \
226 orinoco-2.6.9-rfmon-dragorn-1.diff \
227 reiser4-for-2.6.9-3 \
229 squashfs2.1-r2/linux-2.6.9/squashfs2.1-patch \
230 synaptics-0.13.6/alps.patch
231 do patch -p1 < ../patches/"$patch" 1>> ../patches_info/patches_information && echo "$patch applied" >> ../patches_info/patches_applied && echo "${GREEN}patch $patch applied.${NORMAL}"
234 # vesafb-tng-0.9-rc4-r3-2.6.9.patch -> eventuell probleme bei grml->booten
235 # patch-2.6.9-ck3 -> nur teile daraus verwenden
236 # linux-2.6.9-mppe-mppc-1.1.patch -> probleme
237 # linux-2.6.9_pwc-10.0.6.patch -> scheint bereits in ac vorhanden zu sein
239 #sed -i 's#-EXTRAVERSION =.*#-EXTRAVERSION = -ac16#' ../patches/patch-2.6.9-mh5
240 #sed -i 's#+EXTRAVERSION =.*#+EXTRAVERSION = -ac16#' ../patches/patch-2.6.9-mh5
241 patch -p1 < ../patches/patch-2.6.9-mh5 \
242 1>> ../patches_info/patches_information 2>> ../patches_info/patches_error ; \
243 echo "patch-2.6.9-mh5 applied" >> ../patches_info/patches_applied && \
244 echo "${GREEN}patch patch-2.6.9-mh5 applied.${NORMAL}"
246 rm -f drivers/block/loop.c include/linux/loop.h && \
247 patch -p1 < ../patches/loop-AES-v3.0a/kernel-2.6.9.diff \
248 1>> ../patches_info/patches_information 2>> ../patches_info/patches_error && \
249 echo "loop-AES-v3.0a applied" >> ../patches_info/patches_applied && \
250 echo "${GREEN}patch loop-aes applied.${NORMAL}"
252 rm ../patches/software-suspend-2.1.5-for-2.6.9/900-dm-low-memory-fix
253 ../patches/software-suspend-2.1.5-for-2.6.9/apply 1>> ../patches_info/patches_information && \
254 echo "software-suspend-2.1.5 applied" >> ../patches_info/patches_applied && \
255 echo "${GREEN}patch software-suspend-2.1.5 applied.${NORMAL}"|| exit 20
257 #for patch in `ls ~/2.6.9-ck3/*` ; do
259 for patch in 1g_lowmem1_i386.diff \
260 2.6.9-oom-kill-fix.patch \
261 269rc4-mingo_ll.diff \
262 back-sched-net-fix-scheduling-latencies-in-__release_sock.patch \
264 cddvd-cmdfilter-drop.patch \
265 cfq2-20041019.patch \
267 fix-bad-segment-coalescing-in-blk_recalc_rq_segments.patch \
272 supermount-ng207.diff \
273 vm-pages_scanned-active_list.patch ; do patch -p1 < "../2.6.9-ck3/$patch" 1>> ../patches_info/patches_information 2>> ../patches_info/patches_error && echo "$patch applied" >> ../patches_info/patches_applied_ck3 && echo "${GREEN}patch $patch applied.${NORMAL}" ; done
278 find . -name \*.rej | xargs cat >> ../patches_info/patches_reject_collected && echo "${RED}rejected patches collected in patches_info/patches_reject_collected${NORMAL}"
281 if [[ "$1" == allpatch ]] ; then
282 echo "${BLUE}Creating all_in_one_patch_$MV: ${NORMAL}"
283 [[ -d linux-2.6.9.plain ]] && diff -urN linux-$MV.plain \
284 linux-$MV > patches_info/all_in_one_patch_$MV && echo -e "${GREEN}done${NORMAL}"
287 #if [[ "$1" == rev ]] ; then
290 # for patch in 2.6.8-cloop.patch \
292 # synaptics-0.13.6/alps.patch ; do patch -p1 -R < ../patches/"$patch" ; echo "${GREEN}patch $patch --reversed.${NORMAL}" ; done
295 #if [[ "$1" == patch2 ]] ; then
296 # rm -rf acx100-0.2.0pre8_plus_fixes_34
297 # tar jxf acx100-0.2.0pre8_plus_fixes_40.tar.bz2 || exit 4
298 # #rm -rf ppp-2.4.2_cvs20040216-linux-mppe
299 # #tar zxf ppp-2.4.2_cvs20040216-linux-mppe.tar.gz || exit 3
300 # #rm -rf mISDN-CVS-2004-08-02
301 # #tar jxf mISDN-CVS-2004-08-02.tar.bz2 || exit 19
302 # rm -rf loop-AES-v2.2d
303 # tar jxf loop-AES-v2.2d.tar.bz2 || exit 23
304 # rm -rf squashfs2.0r2/
305 # tar zxf squashfs2.0-r2.tar.gz || exit 24
306 # rm -rf software-suspend-2.1.5-for-2.6.9/
307 # tar jxf software-suspend-2.1.5-for-2.6.9-kanotix-7.tar.bz2 || exit 25
308 # rm -rf synaptics-0.13.6
309 # tar jxf synaptics-0.13.6.tar.bz2 || exit 26
312 # tar jxf linux-$MV.tar.bz2 2>/dev/null || exit 1
313 # mv linux-$MV linux-$VER
315 # #cd ../ppp-2.4.2_cvs20040216-linux-mppe/
316 # #echo|./mppeinstall.sh /usr/src/linux-$VER || exit 6
318 # zcat ../linux-2.6.9-mppe-mppc-1.1.patch.gz | patch -p1 || exit 6
319 # cd ../acx100-0.2.0pre8_plus_fixes_40
320 # make inject KSRC=$HERE/linux-$VER || exit 7
322 # #cd ../mISDN-CVS-2004-06-01
323 # #./std2kern -k /usr/src/linux-$VER || exit 8
325 # ../software-suspend-2.1.5-for-2.6.9/apply || exit 10
326 # patch -p1 <../synaptics-0.13.6/alps.patch || exit 11
327 # zcat ../i8042-tasklet-v3.patch.gz|patch -p1 || exit 12
328 # patch -p1 <../2.6.x-usb.patch || exit 9
329 # #patch -p1 <../bootsplash-3.1.4-sp3-2.6.9-rc4.diff || exit 10
330 # #patch -p1 <../mki-adapter26_1_3_7.patch || exit 12
331 # #patch -p1 <../Kernel-Win4Lin3-2.6.8.1.patch || exit 13
332 # #patch -p1 <../bk-acpi.patch || exit 16
333 # #bzcat ../acpi-20041105-26-stable-release.diff.bz2 |patch -p1 || exit 17
334 # patch -p1 <../acpi-dsdt-initrd-patch-v0.7d-2.6.9.patch || exit 18
335 # patch -p1 <../VIA610.267.patch || exit 14
336 # bzcat ../eagle-usb-2.6.8.patch.bz2 |patch -p1 || exit 15
337 # patch -p1 <../suse-extmod-legacy.patch || exit 21
338 # patch -p1 <../2.6.8-cloop.patch || exit 33
339 # rm -f drivers/block/loop.c include/linux/loop.h
340 # patch -p1 <../loop-AES-v2.2d/kernel-2.6.9.diff || exit 22
341 # patch -p1 <../squashfs2.0r2/linux-2.6.8.1/squashfs2.0-patch || exit 25
342 # bzcat ../reiser4-269mm1-linux-2.6.9.diff.bz2|patch -p1 || exit 26
343 # patch -p1 <../translucency.kernel.patch || exit 27
344 # patch -p1 <../2.6.9-aic7xxx-fix.patch || exit 28
345 # patch -p1 <../2.6.9-cpia-deadlock-fix.patch || exit 29
346 # patch -p1 <../2.6.9-hpt366-fix.patch || exit 30
347 # patch -p1 <../2.6.9-smbfs-leak-fix.patch || exit 31
348 # patch -p1 <../2.6.9-usb-visor-fix.patch || exit 32
349 # patch -p1 <../vm-pages_scanned-active_list.patch || exit 33
350 # patch -p1 <../supermount-ng207.diff || exit 34
351 # #bzcat ../dvb-269rc4mm1-linux-2.6.9-rc4-bk1-slh.diff.bz2 | patch -p1 || exit 35
352 # bzcat ../linux-2.6.9_pwc-10.0.6.patch.bz2 | patch -p1 || exit 36
353 # patch -p1 <../nvidia_compat.diff || exit 37
354 # bzcat ../lirc-linux-2.6.9-rc4-bk1-slh.diff.bz2 | patch -p1 || exit 38
355 # bzcat ../2.6.9-kanotix-7-security.diff.bz2 | patch -p1 || exit 39
356 # patch -p1 <../aml_method_exec_hack.patch|| exit 40
357 # patch -p1 <../orinoco-2.6.9-rfmon-dragorn-1.diff|| exit 41
358 # perl -pi -e 's#(\s)(ATA_FLAG_SATA_RESET \|)#\1/\*\2\*/#' drivers/scsi/sata_nv.c
359 # perl -pi -e "s/^(EXTRAVERSION).*/\1 = -$EV/" Makefile
362 if [[ "$1" == build ]] ; then
363 fakeroot make-kpkg --us --uc --rootcmd fakeroot buildpackage modules
364 fakeroot make-kpkg --us --uc --rootcmd fakeroot kernel_image kernel_headers kernel_doc modules