Advertisement
lewapkon

kernel-netbook Intel Atom

Jan 13th, 2014
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 12.78 KB | None | 0 0
  1. # Maintainer: Dieghen89 <dieghen89@gmail.com>
  2.  
  3. BFQ_IO_SCHEDULER="y"
  4. TUX_ON_ICE="y"
  5.  
  6. pkgname=kernel-netbook
  7. true && pkgname=('kernel-netbook' 'kernel-netbook-headers')
  8. makedepends=('dmidecode' 'xmlto' 'docbook-xsl' 'linux-firmware')
  9. optdepends=('hibernate-script: tux on ice default script' 'tuxonice-userui: graphical interface for toi [AUR]')
  10. _basekernel=3.0
  11. pkgver=${_basekernel}.6
  12. pkgrel=1
  13. pkgdesc="Static kernel for netbooks with Intel Atom N270/N280/N450/N550 such as eeepc with the add-on of external firmware (broadcom-wl) and patchset (BFS + TOI + BFQ optional) - Only Intel GPU - Give more power to your netbook!"
  14. options=('!strip')
  15. arch=('i686')
  16. license=('GPL2')
  17. url=('http://code.google.com/p/kernel-netbook')
  18.  
  19. ####################################
  20. md5sums=('398e95866794def22b12dfbc15ce89c0'
  21.          '792f01cc8874d03a84e47fd0e7065df8'
  22.          'c0074a1622c75916442e26763ddf47d0'
  23.          'bca399a46c7d83affdace85b9c633e36'
  24.          'a325f43707984c93672d8f4aaf76fc2b'
  25.          'e1064f82d5faab2119af5f6dbeae2cb1'
  26.          '5d7307a9b6bf0271ee55cae6c6fe2610'
  27.          'afbd01926c57fc5b82ee6034dc9311e5'
  28.          'e8c333eaeac43f5c6a1d7b2f47af12e2'
  29.          '5974286ba3e9716bfbad83d3f4ee985a'
  30.          'a6f0377c814da594cffcacbc0785ec1a'
  31.          '2bb172117ede96c14289f9f9bc34f58f'
  32.          'aee89fe7f034aea2f2ca95322774c1b5'
  33.          '21ce3f7967d7305064bf7eb60030ffea'
  34.          '263725f20c0b9eb9c353040792d644e5'
  35.          '9d3c56a4b999c8bfbd4018089a62f662'
  36.          '9cd62013cee44d529de140821dd75654'
  37.          '5b4d6028d85320dc6bc4034991dfab9d')
  38. ###################################
  39. #  external drivers  and firmware #
  40. ###################################
  41.  
  42. #Broadcom-wl:
  43. broadcom_ver=5.100.82.38
  44. broadcom="hybrid-portsrc_x86_32-v${broadcom_ver//./_}"
  45. #BFS: - http://users.on.net/~ckolivas/kernel/ -
  46. _ckpatchversion=1
  47. _ckpatchname="patch-${_basekernel}.0-ck${_ckpatchversion}"
  48. #BFQ: - http://algo.ing.unimo.it/people/paolo/disk_sched/ -
  49. _bfqpatchversion="1"
  50. _bfqpath="http://algo.ing.unimo.it/people/paolo/disk_sched/patches/3.0.0"
  51. #TuxOnIce:
  52. _toipatch="current-tuxonice-for-3.0.patch.bz2"
  53.  
  54. ##### Sources #####
  55. source=( #kernel sources and arch patchset
  56.     "http://lame.lut.fi/linux/kernel/v3.0/linux-${_basekernel}.tar.bz2"
  57.     #"http://lame.lut.fi/linux/kernel/v3.0/patch-${pkgver}.bz2"
  58.     "ftp://ftp.archlinux.org/other/linux/patch-${pkgver}.gz"
  59.     #external drivers:
  60.     "http://www.broadcom.com/docs/linux_sta/${broadcom}.tar.gz"
  61.     #"http://switch.dl.sourceforge.net/sourceforge/syntekdriver/stk11xx-$stk11xx_ver.tar.gz"
  62.     #BFS patch:
  63.     "http://kernelorg.mirrors.tds.net/pub/linux/kernel/people/ck/patches/3.0/${_basekernel}.0-ck${_ckpatchversion}/${_ckpatchname}.bz2"
  64.     #BFQ patch:
  65.     "${_bfqpath}/0001-block-prepare-I-O-context-code-for-BFQ-v3-for-3.0.patch"
  66.     "${_bfqpath}/0002-block-cgroups-kconfig-build-bits-for-BFQ-v3-3.0.patch"
  67.     "${_bfqpath}/0003-block-introduce-the-BFQ-v3-I-O-sched-for-3.0.patch"
  68.     #TuxOnIce:
  69.     "http://tuxonice.net/files/${_toipatch}"
  70.     #Arch Logo
  71.     "logo_linux_mono.pbm"
  72.         "logo_linux_clut224.ppm"
  73.     "logo_linux_vga16.ppm"
  74.     #Others:
  75.     "license.patch"
  76.     "semaphore.patch"
  77.     "mutex-sema.patch"
  78.     "fix-i915.patch"
  79.         "change-default-console-loglevel.patch"
  80.     "kernel-netbook.preset"
  81.     "config")
  82.    
  83. build() {
  84.   cd ${srcdir}/linux-$_basekernel
  85.  
  86.   # Patching Time:
  87.  
  88.   # minorversion patch:
  89.   patch -p1 -i "${srcdir}/patch-${pkgver}"
  90.  
  91.   # fix #19234 i1915 display size
  92.   patch -Np1 -i "${srcdir}/fix-i915.patch"
  93.  
  94.   # set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
  95.   # remove this when a Kconfig knob is made available by upstream
  96.   # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
  97.   patch -Np1 -i "${srcdir}/change-default-console-loglevel.patch"
  98.  
  99.   # replace tux logo with arch one
  100.   install -m644 ${srcdir}/logo_linux_clut224.ppm drivers/video/logo/
  101.   install -m644 ${srcdir}/logo_linux_mono.pbm drivers/video/logo/
  102.   install -m644 ${srcdir}/logo_linux_vga16.ppm drivers/video/logo/
  103.  
  104.   # --> BFS
  105.   msg "Patching source with BFS patch:"
  106.   #Adjust localversion
  107.   sed -i -e "s/-ck${_ckpatchversion}//g" ${srcdir}/${_ckpatchname}
  108.   #patching time
  109.   patch -Np1 -i ${srcdir}/${_ckpatchname}
  110.  
  111.   # --> TOI
  112.   if [ $TUX_ON_ICE = "y" ] ; then
  113.     msg "Patching source with TuxOnIce patch"
  114.     bzip2 -dck ${srcdir}/${_toipatch} \
  115.         | sed 's/printk(KERN_INFO "PM: Creating hibernation image:\\n/printk(KERN_INFO "PM: Creating hibernation image: \\n/' \
  116.         | patch -Np1 -F4 || { echo "Failed TOI"; return 1 ; }
  117.   fi
  118.  
  119.   # --> BFQ
  120.   if [ $BFQ_IO_SCHEDULER = "y" ] ; then
  121.     msg "Patching source with BFQ patches"
  122.     for i in $(ls ${srcdir}/000*.patch); do
  123.       patch -Np1 -i $i
  124.     done
  125.   fi
  126.  
  127.  
  128.   ### Clean tree and copy ARCH config over
  129.   msg "Running make mrproper to clean source tree"
  130.   make mrproper
  131.  
  132.   # copy config
  133.   cp ../config ./.config
  134.  
  135.   make prepare
  136.  
  137.   # make defconfig
  138.   # configure kernel    
  139.   # use menuconfig, if you want to change the configuration
  140.   make menuconfig
  141.   # make gconfig
  142.   yes "" | make config
  143.   # build kernel
  144.   msg "Now starts something magic:"
  145.   make ${MAKEFLAGS} bzImage modules
  146. }
  147.  
  148. package_kernel-netbook() {
  149.   pkgdesc='Static kernel for netbooks with Intel Atom N270/N280/N450/N550 such as eeepc with the add-on of external firmware (broadcom-wl) - Only Intel GPU - Give more power to your netbook!'
  150.   depends=('coreutils' 'module-init-tools')
  151.   install=kernel-netbook.install
  152.   optdepends=('crda: for wireless regulatory domain support'
  153.           'linux-firmware: firmware for rt2860, tigon3, brcmsmac'
  154.           'hibernate-script: tux on ice default script'
  155.           'tuxonice-userui: graphical interface for toi [AUR]')
  156.   groups=(eee)
  157.  
  158.   cd ${srcdir}/linux-$_basekernel
  159.   # install our modules
  160.   mkdir -p $pkgdir/{lib/modules,boot}
  161.   make INSTALL_MOD_PATH=$pkgdir modules_install
  162.  
  163.   # Get kernel version
  164.   _kernver="$(make kernelrelease)"
  165.  
  166.   # remove build and source links
  167.   rm -r $pkgdir/lib/modules/$_kernver/{source,build}
  168.  
  169.   # remove the firmware directory
  170.   rm -rf ${pkgdir}/lib/firmware
  171.  
  172.   # install the kernel
  173.   install -D -m644 ${srcdir}/linux-$_basekernel/System.map $pkgdir/boot/System.map-netbook
  174.   install -D -m644 ${srcdir}/linux-$_basekernel/arch/x86/boot/bzImage ${pkgdir}/boot/vmlinuz-netbook
  175.   install -D -m644 ${srcdir}/linux-$_basekernel/.config $pkgdir/boot/kconfig-netbook
  176.  
  177.   # install preset file for mkinitcpio
  178.   sed -i -e "s/ALL_kver=.*/ALL_kver=\'${_kernver}\'/g" ${srcdir}/${pkgname}.preset
  179.   install -m644 -D ${srcdir}/${pkgname}.preset ${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset
  180.  
  181.   # set correct depmod command for install
  182.   sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" $startdir/$pkgname.install
  183.  
  184. ##Section: Broadcom-wl
  185.   #msg "Compiling broadcom-wl module:"
  186.   #cd ${srcdir}/
  187.   ##patching broadcom as broadcom-wl package on AUR
  188.   #patch -p1 < license.patch
  189.   #patch -p1 < semaphore.patch
  190.   #patch -p1 < mutex-sema.patch
  191.   #make -C ${srcdir}/linux-$_basekernel M=`pwd`
  192.   #install -D -m 755 wl.ko ${pkgdir}/lib/modules/$_kernver/kernel/drivers/net/wireless/wl.ko
  193.  
  194.   # gzip -9 all modules to safe a lot of MB of space
  195.   find "$pkgdir" -name '*.ko' -exec gzip -9 {} \;
  196. }
  197.  
  198. package_kernel-netbook-headers() {
  199.   KARCH=x86
  200.   pkgdesc='Header files and scripts for building modules for kernel-netbook'
  201.  
  202.   mkdir -p "${pkgdir}/lib/modules/${_kernver}"
  203.  
  204.   cd "${pkgdir}/lib/modules/${_kernver}"
  205.   ln -sf ../../../usr/src/linux-${_kernver} build
  206.  
  207.   cd "${srcdir}/linux-${_basekernel}"
  208.   install -D -m644 Makefile \
  209.     "${pkgdir}/usr/src/linux-${_kernver}/Makefile"
  210.   install -D -m644 kernel/Makefile \
  211.     "${pkgdir}/usr/src/linux-${_kernver}/kernel/Makefile"
  212.   install -D -m644 .config \
  213.     "${pkgdir}/usr/src/linux-${_kernver}/.config"
  214.  
  215.   mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/include"
  216.  
  217.   for i in acpi asm-generic config crypto drm generated linux math-emu \
  218.     media net pcmcia scsi sound trace video xen; do
  219.     cp -a include/${i} "${pkgdir}/usr/src/linux-${_kernver}/include/"
  220.   done
  221.  
  222.   # copy arch includes for external modules
  223.   mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/arch/x86"
  224.   cp -a arch/x86/include "${pkgdir}/usr/src/linux-${_kernver}/arch/x86/"
  225.  
  226.   # copy files necessary for later builds, like nvidia and vmware
  227.   cp Module.symvers "${pkgdir}/usr/src/linux-${_kernver}"
  228.   cp -a scripts "${pkgdir}/usr/src/linux-${_kernver}"
  229.  
  230.   # fix permissions on scripts dir
  231.   chmod og-w -R "${pkgdir}/usr/src/linux-${_kernver}/scripts"
  232.   mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/.tmp_versions"
  233.  
  234.   mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/kernel"
  235.  
  236.   cp arch/${KARCH}/Makefile "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/"
  237.  
  238.   if [ "${CARCH}" = "i686" ]; then
  239.     cp arch/${KARCH}/Makefile_32.cpu "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/"
  240.   fi
  241.  
  242.   cp arch/${KARCH}/kernel/asm-offsets.s "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/kernel/"
  243.  
  244.   # add headers for lirc package
  245.   mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video"
  246.  
  247.   cp drivers/media/video/*.h  "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/"
  248.  
  249.   for i in bt8xx cpia2 cx25840 cx88 em28xx et61x251 pwc saa7134 sn9c102; do
  250.     mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/${i}"
  251.     cp -a drivers/media/video/${i}/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/${i}"
  252.   done
  253.  
  254.   # add docbook makefile
  255.   install -D -m644 Documentation/DocBook/Makefile \
  256.     "${pkgdir}/usr/src/linux-${_kernver}/Documentation/DocBook/Makefile"
  257.  
  258.   # add dm headers
  259.   mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/md"
  260.   cp drivers/md/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/md"
  261.  
  262.   # add inotify.h
  263.   mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/include/linux"
  264.   cp include/linux/inotify.h "${pkgdir}/usr/src/linux-${_kernver}/include/linux/"
  265.  
  266.   # add wireless headers
  267.   mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/"
  268.   cp net/mac80211/*.h "${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/"
  269.  
  270.   # add dvb headers for external modules
  271.   # in reference to:
  272.   # http://bugs.archlinux.org/task/9912
  273.   mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core"
  274.   cp drivers/media/dvb/dvb-core/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core/"
  275.   # and...
  276.   # http://bugs.archlinux.org/task/11194
  277.   mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/"
  278.   cp include/config/dvb/*.h "${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/"
  279.  
  280.   # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
  281.   # in reference to:
  282.   # http://bugs.archlinux.org/task/13146
  283.   mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/"
  284.   cp drivers/media/dvb/frontends/lgdt330x.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/"
  285.   cp drivers/media/video/msp3400-driver.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/"
  286.  
  287.   # add dvb headers
  288.   # in reference to:
  289.   # http://bugs.archlinux.org/task/20402
  290.   mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb"
  291.   cp drivers/media/dvb/dvb-usb/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb/"
  292.   mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends"
  293.   cp drivers/media/dvb/frontends/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/"
  294.   mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners"
  295.   cp drivers/media/common/tuners/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners/"
  296.  
  297.   # add xfs and shmem for aufs building
  298.   mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/fs/xfs"
  299.   mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/mm"
  300.   cp fs/xfs/xfs_sb.h "${pkgdir}/usr/src/linux-${_kernver}/fs/xfs/xfs_sb.h"
  301.  
  302.   # copy in Kconfig files
  303.   for i in `find . -name "Kconfig*"`; do
  304.     mkdir -p "${pkgdir}"/usr/src/linux-${_kernver}/`echo ${i} | sed 's|/Kconfig.*||'`
  305.     cp ${i} "${pkgdir}/usr/src/linux-${_kernver}/${i}"
  306.   done
  307.  
  308.   chown -R root.root "${pkgdir}/usr/src/linux-${_kernver}"
  309.   find "${pkgdir}/usr/src/linux-${_kernver}" -type d -exec chmod 755 {} \;
  310.  
  311.   # strip scripts directory
  312.   find "${pkgdir}/usr/src/linux-${_kernver}/scripts" -type f -perm -u+w 2>/dev/null | while read binary ; do
  313.     case "$(file -bi "${binary}")" in
  314.       *application/x-sharedlib*) # Libraries (.so)
  315.         /usr/bin/strip ${STRIP_SHARED} "${binary}";;
  316.       *application/x-archive*) # Libraries (.a)
  317.         /usr/bin/strip ${STRIP_STATIC} "${binary}";;
  318.       *application/x-executable*) # Binaries
  319.         /usr/bin/strip ${STRIP_BINARIES} "${binary}";;
  320.     esac
  321.   done
  322.  
  323.   # remove unneeded architectures
  324.   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}
  325. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement