# Maintainer: Dieghen89 pkgname=kernel-netbook true && pkgname=('kernel-netbook' 'kernel-netbook-headers') _basekernel=2.6.37 pkgver=2.6.37.1 pkgrel=1 _kernver="$_basekernel-netbook" arch=('i686') license=('GPL2') url=('http://code.google.com/p/kernel-netbook') #################################### md5sums=('c8ee37b4fdccdb651e0603d35350b434' '39bb8ff13c9a6f7c99b32287c2993cbe' 'c0074a1622c75916442e26763ddf47d0' '1728f86fb9af46a2222a9280a87f6488' 'ddacb0fd57d053bdfb0ea579cf999720' '2c94597844230d6095fde8a4ecf3c132' '99e6e0a3e328336192fa3cc7d1e70e01' 'f23fe16ae73702292969baaa4b798d0f' '2bb172117ede96c14289f9f9bc34f58f' 'aee89fe7f034aea2f2ca95322774c1b5' '21ce3f7967d7305064bf7eb60030ffea' '2d321460daf2d6ffab28c51664dd164e' '2b13a513b7fe267d15a7f6088c8db8d7') ################################### # external drivers and firmware # ################################### #Arch patchset patchname=patch-${pkgver}-${pkgrel}-ARCH #Broadcom-wl: broadcom_ver=5.100.82.38 broadcom="hybrid-portsrc_x86_32-v${broadcom_ver//./_}" #Stk11xx: stk11xx_ver="2.1.0" stk11xx="stk11xx-$stk11xx_ver" #BFS: - http://users.on.net/~ckolivas/kernel/ - _ckpatchversion=2 _ckpatchname="patch-${_basekernel}-ck${_ckpatchversion}" #BFQ: - http://algo.ing.unimo.it/people/paolo/disk_sched/ - _bfpatchversion="1" _bfqpath="http://algo.ing.unimo.it/people/paolo/disk_sched/patches/2.6.37" ##### Sources ##### source=( #kernel sources and arch patchset "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-${_basekernel}.tar.bz2" "ftp://ftp.archlinux.org/other/kernel26/${patchname}.bz2" #external drivers: "http://www.broadcom.com/docs/linux_sta/${broadcom}.tar.gz" #"http://switch.dl.sourceforge.net/sourceforge/syntekdriver/stk11xx-$stk11xx_ver.tar.gz" #BFS patch: "http://www.kernel.org/pub/linux/kernel/people/ck/patches/2.6/${_basekernel}/${_basekernel}-ck${_ckpatchversion}/${_ckpatchname}.bz2" #"http://www.kernel.org/pub/linux/kernel/people/ck/patches/2.6/${_basekernel}/${_basekernel}-ck${_ckpatchversion}/${_ckpatchname}.bz2" #"http://ck.kolivas.org/patches/bfs/2.6.36/${_basekernel}-ck${_ckpatchversion}-bfs-360.patch" # update to bfs360 #BFQ patch: "${_bfqpath}/0001-bfq_iosched-block-prepare_IO_context_code-v${_bfpatchversion}-${_basekernel}.patch" "${_bfqpath}/0002-bfq_iosched-block-add-cgroups-kconfig-and-build-bits-for-BFQ-v${_bfpatchversion}-${_basekernel}.patch" "${_bfqpath}/0003-bfq_iosched-block-introduce_BFQ-v${_bfpatchversion}-${_basekernel}.patch" #Others: "config" "license.patch" "semaphore.patch" "mutex-sema.patch" "kernel-netbook.preset" "http://aur.archlinux.org/packages/kernel26-ck/kernel26-ck/ck2_2.6.37.1.patch" # fix for BFS 2.6.37-ck2) build() { ### koeleck's patch for 2.6.37-ck2 http://aur.pastebin.com/ajz5yyUC cd $srcdir patch -Np1 -i ${srcdir}/ck2_2.6.37.1.patch cd ${srcdir}/linux-$_basekernel # patching the kernel with: # --> arch patchset msg "Patching source with Arch Official Patchset:" patch -Np1 -i ${srcdir}/$patchname # --> BFS msg "Patching source with BFS patch:" #Adjust localversion sed -i -e "s/-ck${_ckpatchversion}//g" ${srcdir}/${_ckpatchname} #sed -i -e "s/-ck${_ckpatchversion}//g" ${srcdir}/${_basekernel}-ck${_ckpatchversion}-bfs-360.patch #patching time patch -Np1 -i ${srcdir}/${_ckpatchname} #msg "Updating bfs357 to bfs360" #patch -Np1 -i ${srcdir}/2.6.36-ck2-bfs-360.patch # --> BFQ msg "Patching source with BFQ patches" for i in $(ls ${srcdir}/*-bfq_*); do patch -Np1 -i $i done # copy config cp ../config ./.config make prepare # make defconfig # configure kernel # use menuconfig, if you want to change the configuration make menuconfig # make gconfig # yes "" | make config # build kernel msg "Now starts something magic:" make } package_kernel-netbook() { pkgdesc="Static kernel with KMS for netbooks with Intel Atom N270/N280/N450 such as eeepc with the add-on of external firmware (broadcom-wl, stk11xx) - Old kernel26-901 - Only Intel graphic card - Give more power to your netbook!" depends=('coreutils' 'module-init-tools') provides=('stk11xx' 'stk11xx-svn') install=kernel-netbook.install optdepends=('crda: for wireless regulatory domain support' 'linux-firmware: firmware for rt2860 and tigon3') groups=(eee) cd ${srcdir}/linux-$_basekernel # install our modules mkdir -p $pkgdir/{lib/modules,boot} make INSTALL_MOD_PATH=$pkgdir modules_install # remove the junk symlinks rm -r $pkgdir/lib/modules/$_kernver/{source,build} # remove the firmware directory rm -rf ${pkgdir}/lib/firmware # install the kernel install -D -m644 ${srcdir}/linux-$_basekernel/System.map $pkgdir/boot/System.map-netbook install -D -m644 ${srcdir}/linux-$_basekernel/arch/x86/boot/bzImage ${pkgdir}/boot/vmlinuz-netbook install -D -m644 ${srcdir}/linux-$_basekernel/.config $pkgdir/boot/kconfig-netbook # install preset file for mkinitcpio sed -i -e "s/ALL_kver=.*/ALL_kver=\'${_kernver}\'/g" $startdir/$pkgname.preset install -m644 -D ${srcdir}/kernel-netbook.preset ${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset # set correct depmod command for install sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" $startdir/$pkgname.install ##Section: Broadcom-wl msg "Compiling broadcom-wl module:" cd ${srcdir}/ #patching broadcom as broadcom-wl package on AUR patch -p1 < license.patch patch -p1 < semaphore.patch patch -p1 < mutex-sema.patch #KBUILD_NOPEDANTIC=1 make -C ${srcdir}/linux-$_basekernel M=`pwd` make -C ${srcdir}/linux-$_basekernel M=`pwd` install -D -m 755 wl.ko ${pkgdir}/lib/modules/$_kernver/kernel/drivers/net/wireless/wl.ko ##Section: stk11xx #msg "Compiling stk11xx module:" #cd $srcdir/stk11xx-$stk11xx_ver #make -C $srcdir/linux-${_basekernel}/ SUBDIRS=$srcdir/stk11xx-2.1.0 modules #install -D -m 644 $srcdir/stk11xx-$stk11xx_ver/stk11xx.ko $pkgdir/lib/modules/$_kernver/kernel/drivers/media/video #install -D -m 644 $srcdir/stk11xx-$stk11xx_ver/README $pkgdir/usr/share/stk11xx.readme } package_kernel-netbook-headers() { KARCH=x86 pkgdesc="Header files and scripts for building modules for kernel-netbook" mkdir -p ${pkgdir}/lib/modules/${_kernver} cd ${pkgdir}/lib/modules/${_kernver} ln -sf ../../../usr/src/linux-${_kernver} build cd ${srcdir}/linux-$_basekernel install -D -m644 Makefile \ ${pkgdir}/usr/src/linux-${_kernver}/Makefile install -D -m644 kernel/Makefile \ ${pkgdir}/usr/src/linux-${_kernver}/kernel/Makefile install -D -m644 .config \ ${pkgdir}/usr/src/linux-${_kernver}/.config mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include for i in acpi asm-generic config generated linux math-emu media net pcmcia scsi sound trace video; do cp -a include/$i ${pkgdir}/usr/src/linux-${_kernver}/include/ done # copy arch includes for external modules mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/x86 cp -a arch/x86/include ${pkgdir}/usr/src/linux-${_kernver}/arch/x86/ # copy files necessary for later builds, like nvidia and vmware cp Module.symvers ${pkgdir}/usr/src/linux-${_kernver} cp -a scripts ${pkgdir}/usr/src/linux-${_kernver} # fix permissions on scripts dir chmod og-w -R ${pkgdir}/usr/src/linux-${_kernver}/scripts mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/.tmp_versions mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/kernel cp arch/$KARCH/Makefile ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/ cp arch/$KARCH/Makefile_32.cpu ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/ cp arch/$KARCH/kernel/asm-offsets.s ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/kernel/ # add headers for lirc package mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video cp drivers/media/video/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/ for i in bt8xx cpia2 cx25840 cx88 em28xx et61x251 pwc saa7134 sn9c102 usbvideo; do mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/$i cp -a drivers/media/video/$i/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/$i done # add docbook makefile install -D -m644 Documentation/DocBook/Makefile \ ${pkgdir}/usr/src/linux-${_kernver}/Documentation/DocBook/Makefile # add dm headers mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/md cp drivers/md/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/md # add inotify.h mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/linux cp include/linux/inotify.h ${pkgdir}/usr/src/linux-${_kernver}/include/linux/ # add wireless headers mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/ cp net/mac80211/*.h ${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/ # add dvb headers for external modules # in reference to: # http://bugs.archlinux.org/task/9912 mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core cp drivers/media/dvb/dvb-core/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core/ # add dvb headers for external modules # in reference to: # http://bugs.archlinux.org/task/11194 mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/ cp include/config/dvb/*.h ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/ # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new # in reference to: # http://bugs.archlinux.org/task/13146 mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/ cp drivers/media/dvb/frontends/lgdt330x.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/ cp drivers/media/video/msp3400-driver.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/ # add dvb headers # in reference to: # http://bugs.archlinux.org/task/20402 mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb cp drivers/media/dvb/dvb-usb/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb/ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends cp drivers/media/dvb/frontends/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners cp drivers/media/common/tuners/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners/ # add xfs and shmem for aufs building mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/fs/xfs mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/mm cp fs/xfs/xfs_sb.h ${pkgdir}/usr/src/linux-${_kernver}/fs/xfs/xfs_sb.h # add headers vor virtualbox # in reference to: # http://bugs.archlinux.org/task/14568 cp -a include/drm $pkgdir/usr/src/linux-${_kernver}/include/ # add headers for broadcom wl # in reference to: # http://bugs.archlinux.org/task/14568 cp -a include/trace $pkgdir/usr/src/linux-${_kernver}/include/ # copy in Kconfig files for i in `find . -name "Kconfig*"`; do mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/`echo $i | sed 's|/Kconfig.*||'` cp $i ${pkgdir}/usr/src/linux-${_kernver}/$i done chown -R root.root ${pkgdir}/usr/src/linux-${_kernver} find ${pkgdir}/usr/src/linux-${_kernver} -type d -exec chmod 755 {} \; # remove unneeded architectures rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,microblaze,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa} } # Global pkgdesc and depends are here so that they will be picked up by AUR pkgdesc="Static kernel with KMS for netbooks with Intel Atom N270/N280/N450 such as eeepc with the add-on of external firmware (broadcom-wl, stk11xx) - Old kernel26-901 - Only Intel graphic card - Give more power to your netbook!" depends=('coreutils' 'module-init-tools')