mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-28 22:57:37 +00:00
88d210c830
Config updated with default choices from `make oldconfig` with the exception of: IP_VS_TWOS=m: enabled as module, like the others virtual server modules NET_DSA_MV88E6XXX_PTP=y: enabled because some Kirkwood-based boards use a 88E6xxx switch HID_PLAYSTATION=m: built as module like most other HID drivers PLAYSTATION_FF=y: enabled like the other force-feedback-capable devices USB_SERIAL_XR=m: built as module, like the other USB serial adapter drivers LEDS_TRIGGER_TTY=m: built as module, like the less common LED triggers LEDS_BLINK=y: enabled because of "If unsure, say Y" in the help text. Does not enable any driver, just allows to select more drivers in config.
225 lines
7.8 KiB
Bash
225 lines
7.8 KiB
Bash
# Maintainer: Kevin Mihelich <kevin@archlinuxarm.org>
|
|
# Maintainer: Oleg Rakhmanov <oleg@archlinuxarm.org>
|
|
|
|
buildarch=2
|
|
|
|
pkgbase=linux-kirkwood-dt
|
|
_srcname=linux-5.12
|
|
_kernelname=${pkgbase#linux}
|
|
_desc="Marvell Kirkwood DT"
|
|
pkgver=5.12.2
|
|
pkgrel=1
|
|
arch=('arm')
|
|
url="http://www.kernel.org/"
|
|
license=('GPL2')
|
|
makedepends=('xmlto' 'docbook-xsl' 'uboot-mkimage' 'kmod' 'inetutils' 'bc' 'git')
|
|
options=('!strip')
|
|
source=("http://www.kernel.org/pub/linux/kernel/v5.x/${_srcname}.tar.xz"
|
|
"http://www.kernel.org/pub/linux/kernel/v5.x/patch-${pkgver}.xz"
|
|
'0001-disable-mv643xx_eth-TSO.patch'
|
|
'0002-leds-trigger-Introduce-a-SATA-trigger.patch'
|
|
'0003-ata-sata_mv-Add-SATA-activity-LED-trigger-support.patch'
|
|
'0004-ARM-dts-kirkwood-pogo_e02-Set-health-LED-to-default-.patch'
|
|
'0005-Fix-mvsdio-SD-card-detection.patch'
|
|
'0006-ARM-dts-kirkwood-Initial-support-for-GoFlex-Home.patch'
|
|
'config'
|
|
'linux.preset'
|
|
'99-linux.hook')
|
|
|
|
md5sums=('8c7420990de85f6754db287337da08b4'
|
|
'1caab02bdf785e0fe507f0680eac1d7f'
|
|
'15d7106fe978f6628b807b234c0401ee'
|
|
'e2a9495034dfcd8a76995da975346cff'
|
|
'324ce8e7e98425ddcd18137e2f6f77fd'
|
|
'399e93a1cfc75407eef72b5875c79fd1'
|
|
'f245537b6a2b5ad413b77d6c0f1605c3'
|
|
'7dd641b40fd7409e11a070a64c0c5413'
|
|
'34b9d2b8be317d2c8b833a87b05fffc8'
|
|
'959e49540dac4c5e689ad9037150a360'
|
|
'79fa396e3f9a09a85156d6d7c2d34b58')
|
|
prepare() {
|
|
cd "${srcdir}/${_srcname}"
|
|
|
|
# add upstream patch
|
|
git apply --whitespace=nowarn "${srcdir}/patch-${pkgver}"
|
|
|
|
# ALARM patches
|
|
git apply ../0001-disable-mv643xx_eth-TSO.patch
|
|
git apply ../0002-leds-trigger-Introduce-a-SATA-trigger.patch
|
|
git apply ../0003-ata-sata_mv-Add-SATA-activity-LED-trigger-support.patch
|
|
git apply ../0004-ARM-dts-kirkwood-pogo_e02-Set-health-LED-to-default-.patch
|
|
git apply ../0005-Fix-mvsdio-SD-card-detection.patch
|
|
git apply ../0006-ARM-dts-kirkwood-Initial-support-for-GoFlex-Home.patch
|
|
|
|
cat "${srcdir}/config" > ./.config
|
|
|
|
# add pkgrel to extraversion
|
|
sed -ri "s|^(EXTRAVERSION =)(.*)|\1 \2-${pkgrel}|" Makefile
|
|
|
|
# don't run depmod on 'make install'. We'll do this ourselves in packaging
|
|
sed -i '2iexit 0' scripts/depmod.sh
|
|
}
|
|
|
|
build() {
|
|
cd "${srcdir}/${_srcname}"
|
|
|
|
# get kernel version
|
|
make prepare
|
|
|
|
# load configuration
|
|
# Configure the kernel. Replace the line below with one of your choice.
|
|
#make menuconfig # CLI menu for configuration
|
|
#make nconfig # new CLI menu for configuration
|
|
#make xconfig # X-based configuration
|
|
#make oldconfig # using old config from previous kernel version
|
|
# ... or manually edit .config
|
|
|
|
# Copy back our configuration (use with new kernel version)
|
|
#cp ./.config ../${pkgbase}.config
|
|
|
|
####################
|
|
# stop here
|
|
# this is useful to configure the kernel
|
|
#msg "Stopping build"
|
|
#return 1
|
|
####################
|
|
|
|
#yes "" | make config
|
|
|
|
msg "Building!"
|
|
make ${MAKEFLAGS} zImage modules dtbs
|
|
}
|
|
|
|
_package() {
|
|
pkgdesc="The Linux Kernel and modules - ${_desc}"
|
|
depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=0.7')
|
|
optdepends=('crda: to set the correct wireless channels of your country')
|
|
provides=("linux=${pkgver}" "WIREGUARD-MODULE")
|
|
conflicts=('linux-kirkwood' 'linux' 'linux-olinuxino')
|
|
backup=("etc/mkinitcpio.d/${pkgbase}.preset")
|
|
install=${pkgname}.install
|
|
|
|
cd "${srcdir}/${_srcname}"
|
|
|
|
KARCH=arm
|
|
|
|
# get kernel version
|
|
_kernver="$(make kernelrelease)"
|
|
#_basekernel=${_kernver%%-*}
|
|
#_basekernel=${_basekernel%.*}
|
|
_basekernel=${pkgver}
|
|
|
|
mkdir -p "${pkgdir}"/{lib/modules,lib/firmware}
|
|
make INSTALL_MOD_PATH="${pkgdir}" modules_install
|
|
make INSTALL_DTBS_PATH="${pkgdir}/boot/dtbs" dtbs_install
|
|
cp arch/$KARCH/boot/zImage "${pkgdir}/boot/zImage"
|
|
|
|
# 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"
|
|
|
|
# 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"
|
|
|
|
# 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
|
|
ln -s "../extramodules-${_basekernel}${_kernelname:--ARCH}" "${pkgdir}/lib/modules/${_kernver}/extramodules"
|
|
# add real version for building modules and running depmod from post_install/upgrade
|
|
mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}"
|
|
echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}/version"
|
|
|
|
# Now we call depmod...
|
|
depmod -b "$pkgdir" -F System.map "$_kernver"
|
|
|
|
# move module tree /lib -> /usr/lib
|
|
mkdir -p "${pkgdir}/usr"
|
|
mv "$pkgdir/lib" "$pkgdir/usr"
|
|
}
|
|
|
|
_package-headers() {
|
|
pkgdesc="Header files and scripts for building modules for linux kernel - ${_desc}"
|
|
provides=('linux-headers=${pkgver}')
|
|
conflicts=('linux-kirkwood-headers' 'linux-headers' 'linux-headers-olinuxino')
|
|
replaces=('linux-headers-kirkwood-dt')
|
|
cd ${_srcname}
|
|
local _builddir="${pkgdir}/usr/lib/modules/${_kernver}/build"
|
|
|
|
install -Dt "${_builddir}" -m644 Makefile .config Module.symvers
|
|
install -Dt "${_builddir}/kernel" -m644 kernel/Makefile
|
|
|
|
mkdir "${_builddir}/.tmp_versions"
|
|
|
|
cp -t "${_builddir}" -a include scripts
|
|
|
|
install -Dt "${_builddir}/arch/${KARCH}" -m644 arch/${KARCH}/Makefile
|
|
install -Dt "${_builddir}/arch/${KARCH}/kernel" -m644 arch/${KARCH}/kernel/asm-offsets.s
|
|
|
|
cp -t "${_builddir}/arch/${KARCH}" -a arch/${KARCH}/include
|
|
mkdir -p "${_builddir}/arch/${KARCH}/plat-orion"
|
|
cp -t "${_builddir}/arch/${KARCH}/plat-orion" -a arch/$KARCH/plat-orion/include
|
|
|
|
install -Dt "${_builddir}/drivers/md" -m644 drivers/md/*.h
|
|
install -Dt "${_builddir}/net/mac80211" -m644 net/mac80211/*.h
|
|
|
|
# http://bugs.archlinux.org/task/13146
|
|
install -Dt "${_builddir}/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h
|
|
|
|
# http://bugs.archlinux.org/task/20402
|
|
install -Dt "${_builddir}/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h
|
|
install -Dt "${_builddir}/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h
|
|
install -Dt "${_builddir}/drivers/media/tuners" -m644 drivers/media/tuners/*.h
|
|
|
|
# add xfs and shmem for aufs building
|
|
mkdir -p "${_builddir}"/{fs/xfs,mm}
|
|
|
|
# copy in Kconfig files
|
|
find . -name Kconfig\* -exec install -Dm644 {} "${_builddir}/{}" \;
|
|
|
|
# remove unneeded architectures
|
|
local _arch
|
|
for _arch in "${_builddir}"/arch/*/; do
|
|
[[ ${_arch} == */${KARCH}/ ]] && continue
|
|
rm -r "${_arch}"
|
|
done
|
|
|
|
# remove files already in linux-docs package
|
|
rm -r "${_builddir}/Documentation"
|
|
|
|
# remove now broken symlinks
|
|
find -L "${_builddir}" -type l -printf 'Removing %P\n' -delete
|
|
|
|
# Fix permissions
|
|
chmod -R u=rwX,go=rX "${_builddir}"
|
|
|
|
# strip scripts directory
|
|
local _binary _strip
|
|
while read -rd '' _binary; do
|
|
case "$(file -bi "${_binary}")" in
|
|
*application/x-sharedlib*) _strip="${STRIP_SHARED}" ;; # Libraries (.so)
|
|
*application/x-archive*) _strip="${STRIP_STATIC}" ;; # Libraries (.a)
|
|
*application/x-executable*) _strip="${STRIP_BINARIES}" ;; # Binaries
|
|
*) continue ;;
|
|
esac
|
|
/usr/bin/strip ${_strip} "${_binary}"
|
|
done < <(find "${_builddir}/scripts" -type f -perm -u+w -print0 2>/dev/null)
|
|
}
|
|
|
|
pkgname=("${pkgbase}" "${pkgbase}-headers")
|
|
for _p in ${pkgname[@]}; do
|
|
eval "package_${_p}() {
|
|
_package${_p#${pkgbase}}
|
|
}"
|
|
done
|