wok-tiny annotate linux/receipt @ rev 187
Add bootlife (again)
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sun Feb 04 18:58:39 2024 +0000 (4 months ago) |
parents | d5c772484b59 |
children |
rev | line source |
---|---|
pascal@94 | 1 # SliTaz package receipt. |
pascal@94 | 2 |
pascal@94 | 3 PACKAGE="linux" |
pascal@174 | 4 VERSION="2.6.20" |
pascal@94 | 5 CATEGORY="base-system" |
pascal@94 | 6 SHORT_DESC="The Linux kernel." |
pascal@94 | 7 TARGET="i486" |
pascal@94 | 8 MAINTAINER="devel@slitaz.org" |
pascal@94 | 9 LICENSE="GPL2" |
pascal@94 | 10 TARBALL="$PACKAGE-$VERSION.tar.bz2" |
pascal@94 | 11 WEB_SITE="http://www.kernel.org/" |
pascal@94 | 12 WGET_URL="https://www.kernel.org/pub/linux/kernel/v${VERSION:0:3}/$TARBALL" |
pascal@94 | 13 AUTO_SELECTION="always" |
pascal@94 | 14 |
pascal@107 | 15 DEPENDS="" |
pascal@174 | 16 BUILD_DEPENDS="slitaz-toolchain perl git lzma wget upx" |
pascal@143 | 17 INSTALL_DEPENDS="lz4 grep" |
pascal@94 | 18 |
pascal@107 | 19 case "$TARGET" in |
pascal@174 | 20 i486) SUGGESTED="memtest ipxe plop tfttest x86test";; # bundle may install a boot menu |
pascal@107 | 21 esac |
pascal@107 | 22 |
pascal@139 | 23 S2bin() |
pascal@139 | 24 { |
pascal@141 | 25 [ -s $stuff/$1.S ] && |
pascal@178 | 26 cc $2 -o $1.o -Wa,-algms=$1.lst -c $stuff/$1.S && |
pascal@183 | 27 objcopy --only-section=.text -O binary $1.o $1.bin |
pascal@139 | 28 } |
pascal@139 | 29 |
pascal@173 | 30 rootfs() |
pascal@173 | 31 { |
pascal@173 | 32 [ -s $stuff/root.cpio ] && cp $stuff/root.cpio . && |
pascal@173 | 33 sed -i 's|CONFIG_INITRAMFS_SOURCE="|&root.cpio|' .config |
pascal@173 | 34 } |
pascal@173 | 35 |
pascal@178 | 36 setup_code() |
pascal@178 | 37 { |
pascal@178 | 38 echo $((514 + $(od -An -j 513 -N 1 -i $1))) |
pascal@178 | 39 } |
pascal@178 | 40 |
pascal@94 | 41 # Rules to configure and make the package. |
pascal@94 | 42 compile_rules() |
pascal@94 | 43 { |
pascal@173 | 44 export CFLAGS="-march=i386 -Os -pipe -fomit-frame-pointer" |
pascal@174 | 45 for i in $stuff/linux-$VERSION-*.u ; do |
pascal@174 | 46 patch -p0 < $i |
pascal@174 | 47 done |
pascal@116 | 48 sed -i 's/O_CREAT/&|O_TRUNC/' init/initramfs.c |
pascal@174 | 49 sed -i 's|hostname|echo tank|' scripts/mkcompile_h |
pascal@94 | 50 |
pascal@94 | 51 mkdir $src/slitaz |
pascal@94 | 52 cp $stuff/list_modules.sh $src/slitaz |
pascal@139 | 53 S2bin bootloader |
pascal@141 | 54 S2bin helper |
pascal@139 | 55 S2bin unpacklz4 |
pascal@179 | 56 cp $stuff/pack $stuff/un*.S . |
pascal@94 | 57 |
pascal@174 | 58 sed -i '/config %config:/{NNNps/config %config:/%config:/}' Makefile && |
pascal@110 | 59 sed -i 's/^config %config:/config:/' Makefile |
pascal@157 | 60 |
pascal@174 | 61 #2.6.20 |
pascal@174 | 62 sed -i '/\/ %\/:/{NNps/\/ %\/:/%\/:/}' Makefile && |
pascal@174 | 63 sed -i 's/^\/ %\/:/\/:/' Makefile |
pascal@174 | 64 sed -i 's|.*netinet/in|#include <limits.h>\n&|' scripts/mod/sumversion.c |
pascal@174 | 65 |
pascal@94 | 66 cp $stuff/linux-$VERSION-slitaz.config .config |
pascal@173 | 67 rootfs |
pascal@174 | 68 yes '' | make ARCH=i386 HOSTCC=gcc config |
pascal@174 | 69 make ARCH=i386 CC=gcc HOSTCC=gcc -j 4 bzImage |
pascal@178 | 70 cp arch/i386/boot/bzImage arch/i386/boot/bzImage.made.386 |
pascal@179 | 71 sh ./pack --build arch/i386/boot/bzImage.made.386 |
pascal@157 | 72 |
pascal@94 | 73 grep -q "CONFIG_MODULES=y" .config && |
pascal@174 | 74 make ARCH=i386 CC=gcc HOSTCC=gcc -j 4 modules && |
pascal@94 | 75 make ARCH=i386 INSTALL_MOD_PATH=$DESTDIR -j 1 modules_install || true |
pascal@139 | 76 S2bin bundle |
pascal@104 | 77 cp $stuff/bundle . |
pascal@156 | 78 sh ./bundle |
pascal@178 | 79 S2bin cmdline -DEDIT_CMDLINE ; mv cmdline.bin editcmdline.bin |
pascal@139 | 80 S2bin cmdline |
pascal@173 | 81 [ $(upx --version 2> /dev/null | sed '/upx/!d;s|upx ||;s|\.||;q')0 -ge 3960 ] && |
pascal@173 | 82 upx --ultra-brute arch/i386/boot/bzImage |
pascal@167 | 83 cp arch/i386/boot/bzImage arch/i386/boot/bzImage.386 |
pascal@167 | 84 cp .config .config.386 |
pascal@167 | 85 cp System.map System.map.386 |
pascal@167 | 86 cp $stuff/linux-$VERSION-slitaz.config.586 .config |
pascal@173 | 87 rootfs |
pascal@174 | 88 yes '' | make ARCH=i386 HOSTCC=gcc config |
pascal@174 | 89 make ARCH=i386 CC=gcc HOSTCC=gcc -j 4 bzImage |
pascal@178 | 90 cp arch/i386/boot/bzImage arch/i386/boot/bzImage.made |
pascal@167 | 91 which upx 2> /dev/null && upx --ultra-brute arch/i386/boot/bzImage |
pascal@94 | 92 } |
pascal@94 | 93 |
pascal@94 | 94 # Rules to gen a SliTaz package suitable for Tazpkg. |
pascal@94 | 95 genpkg_rules() |
pascal@94 | 96 { |
pascal@94 | 97 mkdir $fs/boot |
pascal@141 | 98 cp -a $src/pack $fs/boot/ |
pascal@104 | 99 cp -a $src/bundle.sh $fs/boot/bundle |
pascal@179 | 100 cp -a $src/cmdline.bin $fs/boot/ |
pascal@179 | 101 cp -a $src/editcmdline.bin $fs/boot/ |
pascal@173 | 102 for i in '' .386 ; do |
pascal@173 | 103 [ -s $src/arch/i386/boot/bzImage$i ] || continue |
pascal@173 | 104 cp -a $src/arch/i386/boot/bzImage$i $fs/boot/ |
pascal@179 | 105 dd if=$src/bootloader.bin of=$fs/boot/bzImage$i conv=notrunc 2> /dev/null |
pascal@173 | 106 cp -a $src/System.map$i $fs/boot/ |
pascal@173 | 107 cp -a $src/.config$i $fs/boot/config$i |
pascal@173 | 108 done |
pascal@94 | 109 } |
pascal@94 | 110 |
pascal@167 | 111 config_form() |
pascal@167 | 112 { |
pascal@167 | 113 cat <<EOT |
pascal@173 | 114 <p> |
pascal@173 | 115 Tune the kernel according to the CPU type |
pascal@173 | 116 </p> |
pascal@167 | 117 <table> |
pascal@173 | 118 <tr> |
pascal@173 | 119 <td><input type="radio" name="CPU586" $([ "$CPU586" = "no" ] && echo "checked=checked ")value="no"> for any CPU starting from 386sx</td> |
pascal@173 | 120 <td><input type="radio" name="CPU586" $([ "$CPU586" != "no" ] && echo "checked=checked ")value="yes"> optimized for pentium or newer CPU</td> |
pascal@167 | 121 </tr> |
pascal@167 | 122 </table> |
pascal@178 | 123 <input type="checkbox" name="EDIT_CMDLINE" ${EDIT_CMDLINE:+ckecked="ckecked" }/> |
pascal@178 | 124 The user can edit the kernel cmdline at boot time. |
pascal@167 | 125 EOT |
pascal@167 | 126 } |
pascal@167 | 127 |
pascal@94 | 128 # Pre and post install commands for Tazpkg. |
pascal@94 | 129 post_install() |
pascal@94 | 130 { |
pascal@167 | 131 for i in $1/boot/*.386 ; do |
pascal@167 | 132 [ "$CPU586" = "yes" ] && rm -f $i || mv -f $i ${i%.386} |
pascal@167 | 133 done 2> /dev/null |
pascal@179 | 134 [ -s $1/boot/cmdline ] && cat $1/boot/cmdline | sed 's/^ *//' | \ |
pascal@179 | 135 dd of=$1/boot/bzImage conv=notrunc bs=1 seek=768 count=3072 && |
pascal@179 | 136 dd if=$1/boot/cmdline.bin bs=1 seek=$(setup_code $1/boot/bzImage) of=$1/boot/bzImage conv=notrunc |
pascal@178 | 137 [ "$EDIT_CMDLINE" ] && |
pascal@179 | 138 dd if=$1/boot/editcmdline.bin bs=1 seek=$(setup_code $1/boot/bzImage) of=$1/boot/bzImage conv=notrunc |
pascal@141 | 139 $1/boot/pack $1/boot/bzImage |
pascal@94 | 140 } |