PKGBUILD 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. # Maintainer: Donald Carr <sirspudd at gmail dot com>
  2. #set -x
  3. pkgname=linux-spudd
  4. # The firmware the kernel produces blows: don't falsify this lightly
  5. # "linux-firmware=20170309.695f2d6-1"
  6. pkgrel=1
  7. pkgver=4.19.r1934.g0841e2ab5143
  8. pkgdesc="Kernel build from head"
  9. arch=("x86_64" "aarch64" "armv7h")
  10. license=("GPL2.1")
  11. _kernel_src_dir=/opt/dev/src/OSS/linux
  12. if [ -z "${LOCAL_PI_VER}" ]; then
  13. install=spudd.install
  14. fi
  15. _make_cmd="make ${_xcompile_args}"
  16. pkgver() {
  17. cd $_kernel_src_dir
  18. git describe --tags | cut -c2- | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
  19. }
  20. build() {
  21. cd $_kernel_src_dir && git clean -xdf
  22. cp ${_config_file} ${_kernel_src_dir}/.config
  23. ${_make_cmd}
  24. if [ -n "${LOCAL_PI_VER}" ]; then
  25. ${_make_cmd} dtbs
  26. fi
  27. }
  28. package() {
  29. boot_dir="${pkgdir}/boot"
  30. dtb_dir="${boot_dir}/dtbs/broadcom"
  31. usr_dir="${pkgdir}/usr"
  32. firmware_dir="${usr_dir}/lib/firmware"
  33. preset_dir=${pkgdir}/etc/mkinitcpio.d
  34. cd $_kernel_src_dir
  35. INSTALL_MOD_PATH=${usr_dir} ${_make_cmd} modules_install
  36. mkdir -p ${boot_dir}
  37. if [ "${LOCAL_PI_VER}" = "3" ]; then
  38. mkdir -p ${dtb_dir}
  39. cp arch/arm64/boot/Image ${boot_dir}
  40. cp ./arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dtb ${dtb_dir}
  41. cp ./arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dtb ${dtb_dir}
  42. elif [ "${LOCAL_PI_VER}" = "2" ]; then
  43. cp arch/arm/boot/zImage ${boot_dir}/vmlinuz-spudd
  44. else
  45. cp arch/x86/boot/bzImage ${boot_dir}/vmlinuz-spudd
  46. fi
  47. mkdir -p ${preset_dir}
  48. cp ${startdir}/spudd.preset ${preset_dir}
  49. rm -Rf ${startdir}/firmware
  50. if [[ -d ${firmware_dir} ]]; then
  51. mv ${firmware_dir} ${startdir}
  52. fi
  53. }
  54. if [ -n "${LOCAL_PI_VER}" ]; then
  55. case ${LOCAL_PI_VER} in
  56. 2)
  57. echo "Compiling for the RPi 2 aarch32"
  58. _config_file="${startdir}/rpi2"
  59. _xcompile_args="ARCH=arm CROSS_COMPILE=/opt/armv7-rpi2-linux-gnueabihf/bin/armv7-rpi2-linux-gnueabihf-"
  60. ;;
  61. 3)
  62. echo "Compiling for the RPi 3 aarch64"
  63. _config_file="${startdir}/rpi3"
  64. _xcompile_args="ARCH=arm64 CROSS_COMPILE=/opt/x-tools/aarch64-rpi3-linux-gnu/bin/aarch64-rpi3-linux-gnu-"
  65. ;;
  66. *)
  67. echo "Only supports the rpi3 at this point in time"
  68. exit 1
  69. ;;
  70. esac
  71. else
  72. echo "Compiling for desktop"
  73. _config_file="${_kernel_src_dir}/configs/desktop"
  74. fi
  75. _make_cmd="make ${_xcompile_args}"