2012-08-18 04:26:56 +00:00
|
|
|
# Maintainer: Dave Higham <pepedog@archlinuxarm.org>
|
|
|
|
# Maintainer: Kevin Mihelich <kevin@archlinuxarm.org>
|
2015-01-24 04:38:37 +00:00
|
|
|
# Maintainer: Oleg Rakhmanov <oleg@archlinuxarm.org>
|
|
|
|
|
2015-02-06 01:44:29 +00:00
|
|
|
buildarch=20
|
2012-03-17 02:49:52 +00:00
|
|
|
|
2012-07-18 23:30:18 +00:00
|
|
|
pkgbase=linux-raspberrypi
|
2018-07-31 00:15:23 +00:00
|
|
|
_commit=ad1d85ad2a7dea6a17e6d3cc32adf6ce0ea844c0
|
2014-09-22 07:20:04 +00:00
|
|
|
_srcname=linux-${_commit}
|
2013-11-22 01:47:03 +00:00
|
|
|
_kernelname=${pkgbase#linux}
|
|
|
|
_desc="Raspberry Pi"
|
2018-07-31 00:15:23 +00:00
|
|
|
pkgver=4.14.59
|
|
|
|
pkgrel=1
|
2015-02-06 01:44:29 +00:00
|
|
|
arch=('armv6h' 'armv7h')
|
2012-03-17 02:49:52 +00:00
|
|
|
url="http://www.kernel.org/"
|
|
|
|
license=('GPL2')
|
2015-01-24 04:38:37 +00:00
|
|
|
makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc' 'git')
|
2012-03-17 02:49:52 +00:00
|
|
|
options=('!strip')
|
2013-11-22 01:47:03 +00:00
|
|
|
source=("https://github.com/raspberrypi/linux/archive/${_commit}.tar.gz"
|
2015-01-24 04:38:37 +00:00
|
|
|
'config.txt'
|
|
|
|
'cmdline.txt'
|
2017-02-21 03:14:27 +00:00
|
|
|
'config'
|
|
|
|
'linux.preset'
|
|
|
|
'99-linux.hook')
|
2018-07-31 00:15:23 +00:00
|
|
|
md5sums=('fead1df749802a9e9b4e2a77a83d879f'
|
2017-02-21 03:14:27 +00:00
|
|
|
'7c6b37a1353caccf6d3786bb4161c218'
|
2015-01-24 04:38:37 +00:00
|
|
|
'60bc3624123c183305677097bcd56212'
|
core/linux-raspberrypi to 4.14.56-2 (#1605)
- The serial device bus was compiled as a module, but this disabled
use of the serial device TTY port controller that actually
interfaces with the serdev drivers[1], rendering them unusable.
Examples include the serdev driver for broadcom bluetooth HCI.
- Once built in to the kernel, enabling SERIAL_DEV_CTRL_TTYPORT to
be built in, the userspace dependency on btattach is removed
and the presence of the bluetooth controller can be indicated
in the device tree, instead. This doesn't simply get rid of
the dependency on btattach, but improves functionality,
as the kernel does not restore the UART link to a higher baud
rate after uploading the firmware to the bluetooth controller
when notified of the controller over btattach but does so
when notified through the device tree. hciattach does
restore a higher set baud rate, but that is deprecated.
- According to [2], the configuration settings USB_CONFIGFS_F_*
are meant for the user to indicate what sort of gadget
functionality is to be enabled, while settings USB_F_* are
meant to be used in the makefile for compilation.
- Enabled USB_CONFIGFS_F_UAC2 at the same time, since UAC1
does not play well when used with a high-speed composite
device (UAC1 is not compatible with high-speed, while
UAC2 is)
- Kernel image size increased by 4008 bytes after these changes
1 - http://events17.linuxfoundation.org/sites/events/files/slides/serdev-elce-2017-2.pdf
2 - https://www.spinics.net/lists/linux-usb/msg142134.html
2018-07-30 23:25:35 +00:00
|
|
|
'f2474f1f0bfe23560d21b3e8655fbadd'
|
2017-02-21 03:14:27 +00:00
|
|
|
'552c43bf6c0225bc213b31ee942b7000'
|
|
|
|
'982f9184dfcfbe52110795cf73674334')
|
2012-03-17 02:49:52 +00:00
|
|
|
|
2013-11-22 01:47:03 +00:00
|
|
|
prepare() {
|
2013-11-22 01:51:15 +00:00
|
|
|
cd "${srcdir}/${_srcname}"
|
2012-03-17 02:49:52 +00:00
|
|
|
|
2017-02-21 03:14:27 +00:00
|
|
|
cat "${srcdir}/config" > ./.config
|
2012-03-17 02:49:52 +00:00
|
|
|
|
2013-11-22 01:47:03 +00:00
|
|
|
# add pkgrel to extraversion
|
|
|
|
sed -ri "s|^(EXTRAVERSION =)(.*)|\1 \2-${pkgrel}|" Makefile
|
2012-03-17 02:49:52 +00:00
|
|
|
|
2012-07-16 12:58:29 +00:00
|
|
|
# don't run depmod on 'make install'. We'll do this ourselves in packaging
|
|
|
|
sed -i '2iexit 0' scripts/depmod.sh
|
2013-11-22 01:47:03 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
build() {
|
2013-11-22 01:51:15 +00:00
|
|
|
cd "${srcdir}/${_srcname}"
|
2012-07-16 12:58:29 +00:00
|
|
|
|
2012-03-17 02:49:52 +00:00
|
|
|
# get kernel version
|
|
|
|
make prepare
|
|
|
|
|
|
|
|
# load configuration
|
|
|
|
# Configure the kernel. Replace the line below with one of your choice.
|
2012-10-03 15:45:38 +00:00
|
|
|
#make menuconfig # CLI menu for configuration
|
2012-03-17 02:49:52 +00:00
|
|
|
#make nconfig # new CLI menu for configuration
|
|
|
|
#make xconfig # X-based configuration
|
|
|
|
#make oldconfig # using old config from previous kernel version
|
2013-11-22 01:47:03 +00:00
|
|
|
#make bcmrpi_defconfig # using RPi defconfig
|
2012-03-17 02:49:52 +00:00
|
|
|
# ... or manually edit .config
|
|
|
|
|
|
|
|
# Copy back our configuration (use with new kernel version)
|
|
|
|
#cp ./.config ../${pkgver}.config
|
|
|
|
|
|
|
|
####################
|
|
|
|
# stop here
|
|
|
|
# this is useful to configure the kernel
|
|
|
|
#msg "Stopping build"
|
|
|
|
#return 1
|
|
|
|
####################
|
|
|
|
|
|
|
|
#yes "" | make config
|
|
|
|
|
2015-01-24 04:38:37 +00:00
|
|
|
make ${MAKEFLAGS} zImage modules dtbs
|
2012-03-17 02:49:52 +00:00
|
|
|
}
|
|
|
|
|
2013-11-22 01:47:03 +00:00
|
|
|
_package() {
|
|
|
|
pkgdesc="The Linux Kernel and modules - ${_desc}"
|
2018-02-11 19:55:43 +00:00
|
|
|
depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=0.7' 'firmware-raspberrypi')
|
2012-03-17 02:49:52 +00:00
|
|
|
optdepends=('crda: to set the correct wireless channels of your country')
|
2017-02-21 03:14:27 +00:00
|
|
|
provides=('kernel26' "linux=${pkgver}")
|
2012-03-17 02:49:52 +00:00
|
|
|
conflicts=('kernel26' 'linux')
|
|
|
|
install=${pkgname}.install
|
2015-01-24 04:38:37 +00:00
|
|
|
backup=('boot/config.txt' 'boot/cmdline.txt')
|
|
|
|
replaces=('linux-raspberrypi-latest')
|
2012-03-17 02:49:52 +00:00
|
|
|
|
2013-11-22 01:51:15 +00:00
|
|
|
cd "${srcdir}/${_srcname}"
|
2012-03-17 02:49:52 +00:00
|
|
|
|
|
|
|
KARCH=arm
|
|
|
|
|
|
|
|
# get kernel version
|
|
|
|
_kernver="$(make kernelrelease)"
|
|
|
|
|
2015-10-02 00:03:33 +00:00
|
|
|
mkdir -p "${pkgdir}"/{lib/modules,lib/firmware}
|
2012-03-17 02:49:52 +00:00
|
|
|
make INSTALL_MOD_PATH="${pkgdir}" modules_install
|
2015-10-02 00:03:33 +00:00
|
|
|
make INSTALL_DTBS_PATH="${pkgdir}/boot" dtbs_install
|
2015-01-24 04:38:37 +00:00
|
|
|
|
2017-10-29 19:51:12 +00:00
|
|
|
[[ $CARCH == "armv6h" ]] && cp arch/$KARCH/boot/zImage "${pkgdir}/boot/kernel.img" \
|
2017-02-21 03:14:27 +00:00
|
|
|
&& rm -f "${pkgdir}"/boot/bcm{2836,2709,2710}*.dtb
|
2017-10-29 19:51:12 +00:00
|
|
|
[[ $CARCH == "armv7h" ]] && cp arch/$KARCH/boot/zImage "${pkgdir}/boot/kernel7.img" \
|
2017-02-21 03:14:27 +00:00
|
|
|
&& rm -f "${pkgdir}"/boot/bcm{2835,2708}*.dtb
|
2016-11-26 15:58:37 +00:00
|
|
|
cp arch/$KARCH/boot/dts/overlays/README "${pkgdir}/boot/overlays"
|
2012-03-17 02:49:52 +00:00
|
|
|
|
|
|
|
# set correct depmod command for install
|
|
|
|
sed \
|
|
|
|
-e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/g" \
|
|
|
|
-e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
|
|
|
|
-i "${startdir}/${pkgname}.install"
|
|
|
|
|
2017-02-21 03:14:27 +00:00
|
|
|
# install mkinitcpio preset file for kernel
|
|
|
|
install -D -m644 "${srcdir}/linux.preset" "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
|
|
|
|
sed \
|
|
|
|
-e "1s|'linux.*'|'${pkgbase}'|" \
|
|
|
|
-e "s|ALL_kver=.*|ALL_kver=\"${_kernver}\"|" \
|
|
|
|
-i "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
|
|
|
|
|
|
|
|
# install pacman hook for initramfs regeneration
|
|
|
|
sed "s|%PKGBASE%|${pkgbase}|g" "${srcdir}/99-linux.hook" |
|
|
|
|
install -D -m644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/99-${pkgbase}.hook"
|
|
|
|
|
2012-03-17 02:49:52 +00:00
|
|
|
# remove build and source links
|
|
|
|
rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
|
|
|
|
# remove the firmware
|
|
|
|
rm -rf "${pkgdir}/lib/firmware"
|
|
|
|
# make room for external modules
|
2017-02-21 03:14:27 +00:00
|
|
|
ln -s "../extramodules-${_basekernel}${_kernelname:--ARCH}" "${pkgdir}/lib/modules/${_kernver}/extramodules"
|
2012-03-17 02:49:52 +00:00
|
|
|
# add real version for building modules and running depmod from post_install/upgrade
|
2017-02-21 03:14:27 +00:00
|
|
|
mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}"
|
|
|
|
echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}/version"
|
2012-07-16 12:58:29 +00:00
|
|
|
|
2012-09-14 13:41:58 +00:00
|
|
|
# Now we call depmod...
|
|
|
|
depmod -b "$pkgdir" -F System.map "$_kernver"
|
|
|
|
|
2012-07-16 12:58:29 +00:00
|
|
|
# move module tree /lib -> /usr/lib
|
2012-07-17 01:39:40 +00:00
|
|
|
mkdir -p "${pkgdir}/usr"
|
2012-07-16 12:58:29 +00:00
|
|
|
mv "$pkgdir/lib" "$pkgdir/usr"
|
2015-01-24 04:38:37 +00:00
|
|
|
|
|
|
|
# install boot files
|
|
|
|
install -m644 ../config.txt ../cmdline.txt "${pkgdir}/boot"
|
2012-03-17 02:49:52 +00:00
|
|
|
}
|
|
|
|
|
2013-11-22 01:47:03 +00:00
|
|
|
_package-headers() {
|
|
|
|
pkgdesc="Header files and scripts for building modules for linux kernel - ${_desc}"
|
2015-01-24 04:38:37 +00:00
|
|
|
provides=("linux-headers=${pkgver}")
|
2014-05-10 10:35:37 +00:00
|
|
|
conflicts=('linux-headers')
|
2015-01-24 04:38:37 +00:00
|
|
|
replaces=('linux-raspberrypi-latest-headers')
|
2012-03-17 02:49:52 +00:00
|
|
|
|
2012-07-16 12:58:29 +00:00
|
|
|
install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}"
|
2012-03-17 02:49:52 +00:00
|
|
|
|
2013-11-22 01:51:15 +00:00
|
|
|
cd "${srcdir}/${_srcname}"
|
2012-03-17 02:49:52 +00:00
|
|
|
install -D -m644 Makefile \
|
2014-05-10 10:35:37 +00:00
|
|
|
"${pkgdir}/usr/lib/modules/${_kernver}/build/Makefile"
|
2012-03-17 02:49:52 +00:00
|
|
|
install -D -m644 kernel/Makefile \
|
2014-05-10 10:35:37 +00:00
|
|
|
"${pkgdir}/usr/lib/modules/${_kernver}/build/kernel/Makefile"
|
2012-03-17 02:49:52 +00:00
|
|
|
install -D -m644 .config \
|
2014-05-10 10:35:37 +00:00
|
|
|
"${pkgdir}/usr/lib/modules/${_kernver}/build/.config"
|
2012-03-17 02:49:52 +00:00
|
|
|
|
2014-05-10 10:35:37 +00:00
|
|
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include"
|
2012-03-17 02:49:52 +00:00
|
|
|
|
2014-05-10 10:35:37 +00:00
|
|
|
for i in acpi asm-generic config crypto drm generated keys linux math-emu \
|
2017-02-21 03:14:27 +00:00
|
|
|
media net pcmcia scsi soc sound trace uapi video xen; do
|
2014-05-10 10:35:37 +00:00
|
|
|
cp -a include/${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/include/"
|
2012-03-17 02:49:52 +00:00
|
|
|
done
|
|
|
|
|
2014-05-10 10:35:37 +00:00
|
|
|
# copy arch includes for external modules
|
2014-05-16 14:12:19 +00:00
|
|
|
mkdir -p ${pkgdir}/usr/lib/modules/${_kernver}/build/arch/$KARCH
|
|
|
|
cp -a arch/$KARCH/include ${pkgdir}/usr/lib/modules/${_kernver}/build/arch/$KARCH/
|
2012-03-17 02:49:52 +00:00
|
|
|
|
|
|
|
# copy files necessary for later builds, like nvidia and vmware
|
2014-05-10 10:35:37 +00:00
|
|
|
cp Module.symvers "${pkgdir}/usr/lib/modules/${_kernver}/build"
|
|
|
|
cp -a scripts "${pkgdir}/usr/lib/modules/${_kernver}/build"
|
2012-03-17 02:49:52 +00:00
|
|
|
|
|
|
|
# fix permissions on scripts dir
|
2014-05-10 10:35:37 +00:00
|
|
|
chmod og-w -R "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts"
|
|
|
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/.tmp_versions"
|
2012-03-17 02:49:52 +00:00
|
|
|
|
2014-05-10 10:35:37 +00:00
|
|
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel"
|
2012-03-17 02:49:52 +00:00
|
|
|
|
2014-05-10 10:35:37 +00:00
|
|
|
cp arch/${KARCH}/Makefile "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"
|
2012-03-17 02:49:52 +00:00
|
|
|
|
2014-05-10 10:35:37 +00:00
|
|
|
cp arch/${KARCH}/kernel/asm-offsets.s "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel/"
|
2012-03-17 02:49:52 +00:00
|
|
|
|
|
|
|
# add dm headers
|
2014-05-10 10:35:37 +00:00
|
|
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md"
|
|
|
|
cp drivers/md/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md"
|
2012-03-17 02:49:52 +00:00
|
|
|
|
|
|
|
# add inotify.h
|
2014-05-10 10:35:37 +00:00
|
|
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux"
|
|
|
|
cp include/linux/inotify.h "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux/"
|
2012-03-17 02:49:52 +00:00
|
|
|
|
|
|
|
# add wireless headers
|
2014-05-10 10:35:37 +00:00
|
|
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"
|
|
|
|
cp net/mac80211/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"
|
2012-03-17 02:49:52 +00:00
|
|
|
|
|
|
|
# add dvb headers for external modules
|
|
|
|
# in reference to:
|
|
|
|
# http://bugs.archlinux.org/task/9912
|
2014-05-10 10:35:37 +00:00
|
|
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core"
|
|
|
|
cp drivers/media/dvb-core/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core/"
|
2012-03-17 02:49:52 +00:00
|
|
|
# and...
|
|
|
|
# http://bugs.archlinux.org/task/11194
|
2014-05-10 10:35:37 +00:00
|
|
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/"
|
|
|
|
cp include/config/dvb/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/"
|
2012-03-17 02:49:52 +00:00
|
|
|
|
|
|
|
# add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
|
|
|
|
# in reference to:
|
|
|
|
# http://bugs.archlinux.org/task/13146
|
2014-05-10 10:35:37 +00:00
|
|
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
|
|
|
|
cp drivers/media/dvb-frontends/lgdt330x.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
|
|
|
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
|
|
|
|
cp drivers/media/i2c/msp3400-driver.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
|
2012-03-17 02:49:52 +00:00
|
|
|
|
|
|
|
# add dvb headers
|
|
|
|
# in reference to:
|
|
|
|
# http://bugs.archlinux.org/task/20402
|
2014-05-10 10:35:37 +00:00
|
|
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb"
|
|
|
|
cp drivers/media/usb/dvb-usb/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb/"
|
|
|
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends"
|
|
|
|
cp drivers/media/dvb-frontends/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
|
|
|
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners"
|
|
|
|
cp drivers/media/tuners/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners/"
|
|
|
|
|
|
|
|
# add xfs and shmem for aufs building
|
|
|
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs"
|
|
|
|
mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/mm"
|
2012-03-17 02:49:52 +00:00
|
|
|
|
|
|
|
# copy in Kconfig files
|
2014-05-10 10:35:37 +00:00
|
|
|
for i in $(find . -name "Kconfig*"); do
|
|
|
|
mkdir -p "${pkgdir}"/usr/lib/modules/${_kernver}/build/`echo ${i} | sed 's|/Kconfig.*||'`
|
|
|
|
cp ${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/${i}"
|
2012-03-17 02:49:52 +00:00
|
|
|
done
|
|
|
|
|
2014-05-10 10:35:37 +00:00
|
|
|
chown -R root.root "${pkgdir}/usr/lib/modules/${_kernver}/build"
|
|
|
|
find "${pkgdir}/usr/lib/modules/${_kernver}/build" -type d -exec chmod 755 {} \;
|
2012-03-17 02:49:52 +00:00
|
|
|
|
|
|
|
# strip scripts directory
|
2014-05-10 10:35:37 +00:00
|
|
|
find "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts" -type f -perm -u+w 2>/dev/null | while read binary ; do
|
2012-03-17 02:49:52 +00:00
|
|
|
case "$(file -bi "${binary}")" in
|
|
|
|
*application/x-sharedlib*) # Libraries (.so)
|
|
|
|
/usr/bin/strip ${STRIP_SHARED} "${binary}";;
|
|
|
|
*application/x-archive*) # Libraries (.a)
|
|
|
|
/usr/bin/strip ${STRIP_STATIC} "${binary}";;
|
|
|
|
*application/x-executable*) # Binaries
|
|
|
|
/usr/bin/strip ${STRIP_BINARIES} "${binary}";;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
|
|
|
# remove unneeded architectures
|
2014-05-10 10:35:37 +00:00
|
|
|
rm -rf "${pkgdir}"/usr/lib/modules/${_kernver}/build/arch/{alpha,arc,arm26,arm64,avr32,blackfin,c6x,cris,frv,h8300,hexagon,ia64,m32r,m68k,m68knommu,metag,mips,microblaze,mn10300,openrisc,parisc,powerpc,ppc,s390,score,sh,sh64,sparc,sparc64,tile,unicore32,um,v850,x86,xtensa}
|
2012-03-17 02:49:52 +00:00
|
|
|
}
|
2013-11-22 01:47:03 +00:00
|
|
|
|
|
|
|
pkgname=("${pkgbase}" "${pkgbase}-headers")
|
|
|
|
for _p in ${pkgname[@]}; do
|
|
|
|
eval "package_${_p}() {
|
|
|
|
_package${_p#${pkgbase}}
|
|
|
|
}"
|
|
|
|
done
|