talimat 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. # Description: The latest stable kernel version with BFQ patch
  2. # URL: http://algo.ing.unimo.it/people/paolo/disk_sched/sources.php
  3. # Packagers: pierre at nutyx dot org, tnut at nutyx dot org, berlius at nutyx dot com
  4. PKGMK_IGNORE_UNPACK="yes"
  5. PKGMK_NO_STRIP="yes"
  6. PKGMK_GROUPS=(devel doc)
  7. name=kernel-bfq
  8. version=4.3
  9. release=1
  10. _version=${version%.*}
  11. source=(https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-$version.tar.xz
  12. https://pf.natalenko.name/mirrors/bfq/4.3.0-v7r8/0001-block-cgroups-kconfig-build-bits-for-BFQ-v7r8-4.3.patch
  13. https://pf.natalenko.name/mirrors/bfq/4.3.0-v7r8/0002-block-introduce-the-BFQ-v7r8-I-O-sched-for-4.3.patch
  14. https://pf.natalenko.name/mirrors/bfq/4.3.0-v7r8/0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-v7r8-for-4.3.0.patch
  15. $name.config $name.config_64 )
  16. build(){
  17. bsdtar -p -o -C $SRC -xf linux-$version.tar.xz
  18. cd linux-$version
  19. if [ -f $SRC/0001-block-cgroups-kconfig-build-bits-for-BFQ-v7r8-4.3.patch ]; then
  20. patch -Np1 -i $SRC/0001-block-cgroups-kconfig-build-bits-for-BFQ-v7r8-4.3.patch
  21. fi
  22. if [ -f $SRC/0002-block-introduce-the-BFQ-v7r8-I-O-sched-for-4.3.patch ]; then
  23. patch -Np1 -i $SRC/0002-block-introduce-the-BFQ-v7r8-I-O-sched-for-4.3.patch
  24. fi
  25. if [ -f $SRC/0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-v7r8-for-4.3.0.patch ]; then
  26. patch -Np1 -i $SRC/0003-block-bfq-add-Early-Queue-Merge-EQM-to-BFQ-v7r8-for-4.3.0.patch
  27. fi
  28. make mrproper
  29. case `uname -m` in
  30. x86_64)
  31. cp -v $SRC/$name.config_64 ./.config;;
  32. i?86)
  33. cp -v $SRC/$name.config ./.config;
  34. esac
  35. #make xconfig
  36. #make nconfig
  37. make menuconfig
  38. make || make -j1
  39. case `uname -m` in
  40. x86_64)
  41. cp .config $SRC/$name.config_64;;
  42. i?86)
  43. cp .config $SRC/$name.config;;
  44. esac
  45. # Install modules
  46. cd $SRC/linux-$version
  47. sed -i "/rm\ -rf\ \$(MODLIB)\/kernel/d" Makefile
  48. make INSTALL_MOD_PATH=$PKG modules_install || make -j1 INSTALL_MOD_PATH=$PKG modules_install
  49. mkdir -p $PKG/boot
  50. case `uname -m` in
  51. x86_64)
  52. cp System.map \
  53. $PKG/boot/System_64.map-$version
  54. cp .config \
  55. $PKG/boot/config_64-$version
  56. cp arch/x86_64/boot/bzImage \
  57. $PKG/boot/$name-$version ;;
  58. i?86)
  59. cp System.map \
  60. $PKG/boot/System.map-$version
  61. cp .config \
  62. $PKG/boot/config-$version
  63. cp arch/i386/boot/bzImage \
  64. $PKG/boot/$name-$version ;;
  65. esac
  66. cd $PKG/lib/modules/${version}*/
  67. mkdir -p $PKG/usr/src
  68. mv $SRC/linux-$version $PKG/usr/src/
  69. rm {build,source}
  70. ln -sv /usr/src/linux-$version build
  71. ln -sv /usr/src/linux-$version source
  72. mkdir $SRC/linux-$version
  73. mv $PKG/usr/src/linux-$version/Documentation \
  74. $SRC/linux-$version
  75. # Firmware are in linux-firmware
  76. rm -rf $PKG/lib/firmware
  77. # post-install autogen
  78. INITRD_VERSION="`basename $PKG/lib/modules/*`"
  79. echo "mkinitramfs $INITRD_VERSION" > $PKGMK_ROOT/$name.post-install
  80. echo "[ -f boot/initrd ] && rm boot/initrd" >> $PKGMK_ROOT/$name.post-install
  81. echo "ln -sf initrd-$INITRD_VERSION boot/initrd" >> $PKGMK_ROOT/$name.post-install
  82. echo "ln -sf $name-$version boot/kernel" >> $PKGMK_ROOT/$name.post-install
  83. #pre-install autogen
  84. cd $SRC
  85. if [ -f aaabasicfs-${AAABASICFS}.tar.xz ]; then
  86. bsdtar -p -o -C $SRC -xf aaabasicfs-${AAABASICFS}.tar.xz
  87. echo ". lib/lsb/init-functions" > $PKGMK_ROOT/$name.pre-install
  88. for FILE in `tar --list --file aaabasicfs-${AAABASICFS}.tar.xz|grep -v /$`
  89. do
  90. echo "log_info_msg \"update $FILE\"" >> $PKGMK_ROOT/$name.pre-install
  91. echo "cat > $FILE << \"END_OF_FILE\"" >> $PKGMK_ROOT/$name.pre-install
  92. cat $SRC/$FILE >> $PKGMK_ROOT/$name.pre-install
  93. echo "END_OF_FILE" >> $PKGMK_ROOT/$name.pre-install
  94. echo "evaluate_retval" >> $PKGMK_ROOT/$name.pre-install
  95. done
  96. fi
  97. }
  98. devel() {
  99. cd $PKG
  100. rm -r usr/src/linux-$version/{tools,ipc,init,drivers,firmware,fs,mm,samples,security,sound,virt}
  101. for i in alpha arc arm arm26 arm64 avr32 blackfin c6x \
  102. cris frv h8300 hexagon ia64 m32r m68k m68knommu metag \
  103. mips microblaze mn10300 openrisc parisc powerpc ppc s390 \
  104. score sh sh64 sparc sparc64 tile unicore32 um v850 xtensa
  105. do rm -rf usr/src/linux-$version/arch/$i
  106. done
  107. bsdtar -cf \
  108. $PKGMK_PACKAGE_DIR/$name.devel#$version-any.mps \
  109. usr/src/linux-$version
  110. rm -r usr
  111. }
  112. doc() {
  113. cd $PKG
  114. mkdir -p usr/share/doc/linux-$version
  115. mv $SRC/linux-version/Documentation \
  116. usr/share/doc/linux-$version
  117. bsdtar -cf \
  118. $PKGMK_PACKAGE_DIR/$name.doc#$version-any.mps \
  119. usr/share/doc/linux-$version
  120. rm -r usr
  121. }