# Contributor: pierluigi pierluigi88@gmail.com # Contributor: imachine m.jedrasik@gmail.com pkgname=kernel26pierlo _basekernel=2.6.22 pkgver=2.6.22 pkgrel=1 pkgdesc="The Linux Kernel and modules (pierlo patchset)" arch=(i686 x86_64) license=('GPL2') url="http://www.kernel.org" backup=('boot/kconfig26' etc/mkinitcpio.d/${pkgname}.preset) depends=('module-init-tools' 'mkinitcpio>=0.5.15') # pwc, ieee80211 and hostap-driver26 modules are included in kernel26 now # nforce package support was abandoned by nvidia, kernel modules should cover everything now. # kernel24 support is dropped since glibc24 replaces=('kernel24' 'kernel24-scsi' 'kernel26-scsi' 'alsa-driver' 'ieee80211' 'hostap-driver26' 'pwc' 'nforce' 'squashfs' 'unionfs' 'ivtv' 'zd1211' 'kvm-modules') install=kernel26pierlo.install source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_basekernel.tar.bz2 config config.x86_64 logo_arch_pierlo_224.ppm logo_linux_mono.pbm logo_linux_vga16.ppm $pkgname.preset mkinitcpio-kernel26pierlo.conf patch-2.6.22.1 sched-cfs-v2.6.22-v19.1.patch sched-cfs-v2.6.22-v19.1-boost.patch sched-cfs-v2.6.22-v19.1-boost-tunables.patch ckpatches-2.6.22.patch genpatches-2.6.22-2.patch uvesafb-0.1-rc3-2.6.22.patch cpuidle-2.6.22.patch suspend2-2.2.10.2-for-2.6.22.patch linux-phc-0.3.0-pre1-2.6.22.patch realtime-lsm-2.6.22.patch powertop-2.6.22.patch powertop-force-hpet-2.6.22.patch powertop-enablec3-2.6.22.patch thinkpad-2.6.22-1.patch alsa-cvs-20070721-2.6.22.patch reiser4-2.6.22.patch ext4-updates-2.6.22.patch udf-2.50-2.6.22.patch unionfs-2.6.22.patch aufs-cvs-071807-2.6.22.patch adaptive+ondemand-readahead-2.6.22.patch ahci-link-power-management-2.6.22.patch atapi-asynchronous-notification-2.6.22.patch sata_nv-sw-ncq-support-2.6.22.patch cpu-support-rollup-2.6.22.patch mactel-patches-2.6.22-1.patch ipw2200-1.2.2-2.6.22.patch iwlwifi-1.0.0-2.6.22.patch ene-cardreader-support-2.6.22.patch xpad-360-support-2.6.22.patch acpi-buggy-bios.patch acpi-dsdt-initrd-v0.8.4-2.6.21.patch bluetooth-alsa.patch daconfig-2.3.1-2.6.22-rc3-git6.patch defaults-unicode-keyboard.patch fuse-2.6.5-for-2.6.22.patch git-gccbug.patch ibm-acpi-20070606.patch linux-2.6-optimise-spinlock-debug.patch linux-2.6-selinux-mprotect-checks.patch toshiba-bluetooth.patch usb-storage-unusual-devs.patch ) md5sums=('2e230d005c002fb3d38a3ca07c0200d0' '150f885bb618a38779cab7d76c7e14a0' '153d6d333bcd2cb30173666b4c84889a' '6950f9b198c4be7300fa6e26f28d1546' 'ed6b42fea2f5d27f7eb920746ccc1ebb' 'a995ec849ea43d3c89d607bbdd1e7d09' '8e5c94d4172b600b1b0adc115910749e' '36858bd6a0bca63d2aa901b2e42d4a05' '00397589514499e6267f8eff08378f75' 'b85f89899f0506bc099b0a3116f0fc28' 'bcb3502d6ff148bb7ea27cca31fdae70' '642b35bb92ee274a82f1cc68434ad514' '6059b7c28f59931ac9bd38460b63b967' '9f8d49c60ac596561659e831b3f43449' 'c272503136aaa95a4ba59ec85208382b' '2052b8c25870a647df431c90bf552b57' 'd73f46b6d55b8af26d38d70c6bcad97d' '4415a1be9a5d153c440450c0971b7a66' 'd5150e37467cf679df63ab565828c9de' 'fc2a54f9bbea1f7c95a81769074bd327' '9aad93fbbc7d3a47f7ce3443c8bfa2e2' '56ade6899372b76016590c5451f48455' 'e6ff721247d96e1db74802de691012e0' 'adfa7a2565512c5a839e754137c7c1d6' 'a121ebc9f445b5859f22d4d2d845c360' '6dc6b4a4f13c6635cd07886a6384f3a7' 'cf08f2f8d66fa46c8d643295a7d6305e' 'c94b6c9d5d49698244696a3d679e313b' 'd33db308140a86400888d43a0b8620ff' 'd7c036408b46be494c05d2ebe70938ed' 'b423f61610f700c9ff79c94b2c1ec1bf' '8f4ddf47d9747cb330d28048c2b0f728' 'f5b2fe29ccc2421cdda24324ac567f39' 'ce63a8feec15e918e008afc2616a5646' '8208ad8f284d1ecb9a5c8b3c8a7683fe' '431d25de2277859e9fb45c8aed876722' '9fffe692448e0749f27af27f194279b9' '8e20e761360c1e245e10debf3ee9c20d' '89a1c3fb2380507801975dcb45868467' 'bbc730a590d4e09b3d937b257e5a4bfe' '493137566bc397ec762c86e64bd96849' 'f5bd3608306e0ede70c3b3bd8b5de53e' 'fe9895f003532ec27640a67ae6df45fb' 'd734ae81fc464bfaa6de990ca9e92b63' '206d81270340e08cb47de1cc5f019fbe' '55c6638d90e257363440d1240c71ee58' 'b04f86226c5c06cbcf7af5fd2b64ce2b' '7613d29204ad7fd1942da1a267b895f6' '95db1534f19ec975b3891250e52edec0' '695d8578a0334fa9bb140917561f03d4' '3ed791c3af3099489faf0d22cbcc55a8') build() { [ "${CARCH}" = "i686" ] && KARCH=i386 [ "${CARCH}" = "x86_64" ] && KARCH=x86_64 cd $startdir/src/linux-$_basekernel echo "2.6.22.1" patch -Np1 -i ../patch-2.6.22.1 || return 1 echo "cfs" patch -Np1 -i ../sched-cfs-v2.6.22-v19.1.patch || return 1 patch -Np1 -i ../sched-cfs-v2.6.22-v19.1-boost.patch || return 1 patch -Np1 -i ../sched-cfs-v2.6.22-v19.1-boost-tunables.patch || return 1 echo "ck" patch -Np1 -i ../ckpatches-2.6.22.patch || return 1 echo "genpatches" patch -Np1 -i ../genpatches-2.6.22-2.patch || return 1 echo "uvesa" patch -Np1 -i ../uvesafb-0.1-rc3-2.6.22.patch || return 1 echo "cpuidle" patch -Np1 -i ../cpuidle-2.6.22.patch || return 1 echo "suspend2" patch -Np1 -i ../suspend2-2.2.10.2-for-2.6.22.patch || return 1 echo "phc" patch -Np1 -i ../linux-phc-0.3.0-pre1-2.6.22.patch || return 1 echo "realtime-lsm" patch -Np1 -i ../realtime-lsm-2.6.22.patch || return 1 echo "powertop" patch -Np1 -i ../powertop-2.6.22.patch || return 1 echo "hpet" patch -Np1 -i ../powertop-force-hpet-2.6.22.patch echo "powertop-c3" patch -Np1 -i ../powertop-enablec3-2.6.22.patch || return 1 echo "thinkpad" patch -Np1 -i ../thinkpad-2.6.22-1.patch || return 1 echo "alsa" patch -Np1 -i ../alsa-cvs-20070721-2.6.22.patch || return 1 echo "reiser4" patch -Np1 -i ../reiser4-2.6.22.patch || return 1 echo "ext4" patch -Np1 -i ../ext4-updates-2.6.22.patch || return 1 echo "udf" patch -Np1 -i ../udf-2.50-2.6.22.patch || return 1 echo "unionfs" patch -Np1 -i ../unionfs-2.6.22.patch || return 1 echo "aufs" patch -Np1 -i ../aufs-cvs-071807-2.6.22.patch || return 1 echo "adaptive+ondemand-readahead" patch -Np1 -i ../adaptive+ondemand-readahead-2.6.22.patch || return 1 echo "ahci" patch -Np1 -i ../ahci-link-power-management-2.6.22.patch || return 1 echo "atapi" patch -Np1 -i ../atapi-asynchronous-notification-2.6.22.patch || return 1 echo "sata" patch -Np1 -i ../sata_nv-sw-ncq-support-2.6.22.patch || return 1 echo "cpu-support" patch -Np1 -i ../cpu-support-rollup-2.6.22.patch || return 1 echo "mactel" patch -Np1 -i ../mactel-patches-2.6.22-1.patch || return 1 echo "ipw2200" patch -Np1 -i ../ipw2200-1.2.2-2.6.22.patch || return 1 echo "iwlwifi" patch -Np1 -i ../iwlwifi-1.0.0-2.6.22.patch || return 1 echo "ene-cardreader" patch -Np1 -i ../ene-cardreader-support-2.6.22.patch || return 1 echo "xpad" patch -Np1 -i ../xpad-360-support-2.6.22.patch || return 1 echo "acpi" patch -Np1 -i ../acpi-buggy-bios.patch || return 1 echo "acpi2" patch -Np1 -i ../acpi-dsdt-initrd-v0.8.4-2.6.21.patch || return 1 echo "daconf" patch -Np1 -i ../daconfig-2.3.1-2.6.22-rc3-git6.patch || return 1 echo "defaul" patch -Np1 -i ../defaults-unicode-keyboard.patch || return 1 echo "fuse" patch -Np1 -i ../fuse-2.6.5-for-2.6.22.patch || return 1 echo "git" patch -Np1 -i ../git-gccbug.patch || return 1 echo "ibm" patch -Np1 -i ../ibm-acpi-20070606.patch || return 1 echo "optimise" patch -Np1 -i ../linux-2.6-optimise-spinlock-debug.patch || return 1 echo "selinux" patch -Np1 -i ../linux-2.6-selinux-mprotect-checks.patch || return 1 echo "toshiba" patch -Np1 -i ../toshiba-bluetooth.patch || return 1 echo "usb" patch -Np1 -i ../usb-storage-unusual-devs.patch || return 1 #remove the extraversion from Makefile sed -i 's|^EXTRAVERSION =.*$|EXTRAVERSION =|;s|-ck1||g' Makefile # Arch logo! cp ../logo_arch_pierlo_224.ppm drivers/video/logo/logo_linux_clut224.ppm cp ../logo_linux_mono.pbm drivers/video/logo/ cp ../logo_linux_vga16.ppm drivers/video/logo/ if [ "$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="${_basekernel}${CONFIG_LOCALVERSION}" # load configuration #yes "" | make config #make oldconfig || return 1 make menuconfig || return 1 #make gconfig || return 1 # build! #################### # stop here #msg "Stopping build" #return 1 #################### 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.map26pierlo cp arch/$KARCH/boot/bzImage $startdir/pkg/boot/vmlinuz26pierlo 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/kconfig26pierlo mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/include mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/arch/$KARCH/kernel for i in acpi asm-generic asm-$KARCH 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 chmod og-w -R $startdir/pkg/usr/src/linux-${_kernver}/scripts mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/.tmp_versions 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 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 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 mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/net/mac80211/ cp net/mac80211/*.h $startdir/pkg/usr/src/linux-${_kernver}/net/mac80211/ # add 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 if [ "${KARCH}" = "i386" ]; then mkdir ${startdir}/pkg/usr/src/linux-${_kernver}/include/asm-x86_64 cp -a include/asm-x86_64/tsc.h ${startdir}/pkg/usr/src/linux-${_kernver}/include/asm-x86_64 else mkdir ${startdir}/pkg/usr/src/linux-${_kernver}/include/asm-i386 cp -a include/asm-i386/{tsc,msr-index,processor-flags}.h ${startdir}/pkg/usr/src/linux-${_kernver}/include/asm-i386 fi 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 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/kernel26pierlo.install echo -e "# DO NOT EDIT THIS FILE\nALL_kver='${_kernver}'" > ${startdir}/pkg/etc/mkinitcpio.d/${pkgname}.kver }