# Contributor: Patrick Bartels # If you want to use ndiswrapper on a i686 system, you have to disable 4k stack sizes _disable_4kstacks=0 # Skip the menuconfig thing _skip_menuconfig=1 pkgname='kernel26server' pkgver='2.6.23.1' pkgrel='1' _basekernel='2.6.23' _revision='2.6.23.1' _system='server' pkgdesc='The Linux Kernel and modules with some patches' url='http://kamikaze.waninkoko.info/' arch=('i686' 'x86_64') license=('GPL2') backup=('boot/kconfig26server' "etc/mkinitcpio.d/$pkgname.preset") depends=('module-init-tools' 'mkinitcpio>=0.5.13') install=kernel26$_system.install source=(http://kernel.org/pub/linux/kernel/v2.6/linux-$_basekernel.tar.bz2 http://dev.gentoo.org/~spock/projects/uvesafb/archive/uvesafb-0.1-rc3-2.6.23-rc3.patch http://kamikaze.waninkoko.info/patches/2.6.23/kamikaze2/broken-out/cpufreq-allow-ondemand-and-conservative-cpufreq-governors-to-be-used-as-default.patch http://kamikaze.waninkoko.info/patches/2.6.23/kamikaze2/broken-out/allow-ondemand-and-conservative-cpufreq-governors-to-be-used-as-default-kconfig-fix.patch http://kamikaze.waninkoko.info/patches/2.6.23/kamikaze2/broken-out/cpu-support-rollup-2.6.23.patch http://kamikaze.waninkoko.info/patches/2.6.23/kamikaze2/broken-out/edac-2.6.23-for-2.6.23.patch http://kamikaze.waninkoko.info/patches/2.6.23/kamikaze2/broken-out/enable-4k-stacks-default-2.6.23.patch http://kamikaze.waninkoko.info/patches/2.6.23/kamikaze2/broken-out/hrtimers-2.6.23.patch http://kamikaze.waninkoko.info/patches/2.6.23/kamikaze2/broken-out/hz-432-kconfig-option.patch http://kamikaze.waninkoko.info/patches/2.6.23/kamikaze2/broken-out/iwlwifi-1.1.17-2.6.23.patch http://kamikaze.waninkoko.info/patches/2.6.23/kamikaze2/broken-out/powertop-2.6.23.patch http://kamikaze.waninkoko.info/patches/2.6.23/kamikaze2/broken-out/reiser4-2.6.23-1.patch http://www.grsecurity.net/test/grsecurity-2.1.11-2.6.23-200710121810.patch http://www.eu.kernel.org/pub/linux/kernel/v2.6/patch-$_revision.bz2 logo_linux_clut224.ppm logo_linux_mono.pbm logo_linux_vga16.ppm $pkgname.preset mkinitcpio-$pkgname.conf config-$_system) md5sums=('2cc2fd4d521dc5d7cfce0d8a9d1b3472' '245c9871a01fb6eeb6cd218c5d14a62b' 'd199ee9552f653342c6e96c3f16108f0' 'e5989a5cbb6486bc2a1764aa8b837c15' '741b9ed9c16ec1502af16c9af578926e' 'ceb60885a166bf01be49964d768f840f' 'a0b48f4e284c33e6fc76bc5c1bef6cae' '699d134dc09ec1116867f5b8796265bb' 'c7da91c8e251bead6f1f51eb06895857' '5bd25abbf794c3c6c003b7116d34bce5' 'fc2a54f9bbea1f7c95a81769074bd327' 'f0984eaf310c93b96f1cfe72d7a7dcf2' '5a84d89ec5880dda94ae847ba7eee366' '896c5d4e7fd68d37b8c16e5d2842563b' '5a62bcc7e96601052c7405459b483826' 'ed6b42fea2f5d27f7eb920746ccc1ebb' 'a995ec849ea43d3c89d607bbdd1e7d09' '8d012a58c576f8f170be3fd10e6a4f4a' '75670775fb861fa1d0af62c651ddad0d' 'e561dbde83aa4fc41ad31a31a2f63190') build() { [ "$CARCH" = "i686" ] && KARCH=i386 [ "$CARCH" = "x86_64" ] && KARCH=x86_64 cd $startdir/src/linux-$_basekernel # Broken out patches from the Kamikaze patchset msg "Applying cpu frequency patches" patch -Nsp1 -i ../cpufreq-allow-ondemand-and-conservative-cpufreq-governors-to-be-used-as-default.patch || return 1 patch -Nsp1 -i ../allow-ondemand-and-conservative-cpufreq-governors-to-be-used-as-default-kconfig-fix.patch || return 1 msg "Applying cpu support patch" patch -Nsp1 -i ../cpu-support-rollup-2.6.23.patch || return 1 msg "Applying edac patch" patch -Nsp1 -i ../edac-2.6.23-for-2.6.23.patch || return 1 msg "Applying 4k stacks patch" patch -Nsp1 -i ../enable-4k-stacks-default-2.6.23.patch || return 1 msg "Applying hi-res timers patch" patch -Nsp1 -i ../hrtimers-2.6.23.patch || return 1 msg "Applying powertop patch" patch -Nsp1 -i ../powertop-2.6.23.patch || return 1 msg "Applying reiser4 patch" patch -Nsp1 -i ../reiser4-2.6.23-1.patch || return 1 msg "Applying grsecurity patch" patch -Nsp1 -i ../grsecurity-2.1.11-2.6.23-200710121810.patch || return 1 # Latest kernel patch msg "Applying kernel $_revision patchset" patch -Nsp1 -i ../patch-$_revision || return 1 # Arch logo! cp ../logo_linux_clut224.ppm drivers/video/logo/ cp ../logo_linux_mono.pbm drivers/video/logo/ cp ../logo_linux_vga16.ppm drivers/video/logo/ # Config stuff if [ -e $startdir/config-$_system ]; then cat $startdir/config-$_system > ./.config elif [ "$CARCH" = "x86_64" ]; then cat ../config.x86_64 > ./.config else cat ../config > ./.config fi # Build the full kernel version to use in pathnames . ./.config _kernver="$_revision-$_system" # Load configuration msg "Loading configuration" yes "" | make config if [ "$CARCH" = "i686" ] && [ "$_disable_4kstacks" = "1" ]; then sed -i "s/CONFIG_4KSTACKS=y/# CONFIG_4KSTACKS is not set/" .config fi msg "Opening menuconfig" [ "$_skip_menuconfig" = "1" ] || make gconfig # Build! msg "Building the kernel" make bzImage modules || return 1 mkdir -p $startdir/pkg/{lib/modules,boot} make INSTALL_MOD_PATH=$startdir/pkg modules_install || return 1 cp System.map $startdir/pkg/boot/System.map26server cp arch/$KARCH/boot/bzImage $startdir/pkg/boot/vmlinuz26server msg "Installing additional files" install -D -m644 Makefile \ $startdir/pkg/usr/src/linux-$_kernver/Makefile install -D -m644 kernel/Makefile \ $startdir/pkg/usr/src/linux-$_kernver/kernel/Makefile install -D -m644 .config \ $startdir/pkg/usr/src/linux-$_kernver/.config install -D -m644 .config $startdir/pkg/boot/kconfig26server mkdir -p $startdir/pkg/usr/src/linux-$_kernver/include for i in acpi asm-{generic,i386,x86_64} config linux math-emu media net pcmcia scsi sound video; do cp -a include/$i $startdir/pkg/usr/src/linux-$_kernver/include/ done # Copy files necessary for later builds, like nvidia and vmware cp Module.symvers $startdir/pkg/usr/src/linux-$_kernver cp -a scripts $startdir/pkg/usr/src/linux-$_kernver # Fix permissions on scripts dir msg2 'Fixing permissions' chmod og-w -R $startdir/pkg/usr/src/linux-$_kernver/scripts # mkdir -p $startdir/pkg/usr/src/linux-$_kernver/.tmp_versions mkdir -p $startdir/pkg/usr/src/linux-$_kernver/arch/$KARCH/kernel cp arch/$KARCH/Makefile $startdir/pkg/usr/src/linux-$_kernver/arch/$KARCH/ if [ "$CARCH" = "i686" ]; then cp arch/$KARCH/Makefile.cpu $startdir/pkg/usr/src/linux-$_kernver/arch/$KARCH/ fi cp arch/$KARCH/kernel/asm-offsets.s $startdir/pkg/usr/src/linux-$_kernver/arch/$KARCH/kernel/ # Add headers for lirc package msg2 'Adding headers' mkdir -p $startdir/pkg/usr/src/linux-$_kernver/drivers/media/video cp drivers/media/video/*.h $startdir/pkg/usr/src/linux-$_kernver/drivers/media/video/ for i in bt8xx cpia2 cx25840 cx88 em28xx et61x251 pwc saa7134 sn9c102 usbvideo zc0301; do mkdir -p $startdir/pkg/usr/src/linux-$_kernver/drivers/media/video/$i cp -a drivers/media/video/$i/*.h $startdir/pkg/usr/src/linux-$_kernver/drivers/media/video/$i done # Add dm headers mkdir -p $startdir/pkg/usr/src/linux-$_kernver/drivers/md cp drivers/md/*.h $startdir/pkg/usr/src/linux-$_kernver/drivers/md # Add inotify.h mkdir -p $startdir/pkg/usr/src/linux-$_kernver/include/linux cp include/linux/inotify.h $startdir/pkg/usr/src/linux-$_kernver/include/linux/ # Add CLUSTERIP file for iptables msg2 'Adding CLUSTERIP file for iptables' mkdir -p $startdir/pkg/usr/src/linux-$_kernver/net/ipv4/netfilter/ cp net/ipv4/netfilter/ipt_CLUSTERIP.c $startdir/pkg/usr/src/linux-$_kernver/net/ipv4/netfilter/ # Add wireless headers msg2 'Adding wireless headers' mkdir -p $startdir/pkg/usr/src/linux-$_kernver/net/mac80211/ cp net/mac80211/*.h $startdir/pkg/usr/src/linux-$_kernver/net/mac80211/ # Add vmlinux msg2 'Adding vmlinux' cp vmlinux $startdir/pkg/usr/src/linux-$_kernver # Copy in Kconfig files for i in `find . -name "Kconfig*"`; do mkdir -p $startdir/pkg/usr/src/linux-$_kernver/`echo $i | sed 's|/Kconfig.*||'` cp $i $startdir/pkg/usr/src/linux-$_kernver/$i done cd $startdir/pkg/usr/src/linux-$_kernver/include && ln -s asm-$KARCH asm chown -R root.root $startdir/pkg/usr/src/linux-$_kernver find $startdir/pkg/usr/src/linux-$_kernver -type d -exec chmod 755 {} \; cd $startdir/pkg/lib/modules/$_kernver && \ (rm -f source build; ln -sf ../../../usr/src/linux-$_kernver build) # For binary modules make prepare, not needed anymore in .22 kernels # cd $startdir/pkg/lib/modules/$_kernver/build # make prepare # Install fallback mkinitcpio.conf file and preset file for kernel msg2 'Installing mkinitcpio.conf and preset file for kernel' install -m644 -D $startdir/src/$pkgname.preset $startdir/pkg/etc/mkinitcpio.d/$pkgname.preset || return 1 install -m644 -D $startdir/src/mkinitcpio-$pkgname.conf $startdir/pkg/etc/mkinitcpio.d/$pkgname-fallback.conf || return 1 # Set correct depmod command for install sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=$_kernver/g" $startdir/kernel26server.install echo -e "# DO NOT EDIT THIS FILE\nALL_kver='$_kernver'" > $startdir/pkg/etc/mkinitcpio.d/$pkgname.kver # Remove unneeded architectures msg2 'Removing unneeded architectures' rm -rf $startdir/pkg/usr/src/linux-$_kernver/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa} }