diff --git a/srcpkgs/cubieboard2-kernel-headers b/srcpkgs/cubieboard2-kernel-headers new file mode 120000 index 0000000000..220183916a --- /dev/null +++ b/srcpkgs/cubieboard2-kernel-headers @@ -0,0 +1 @@ +cubieboard2-kernel \ No newline at end of file diff --git a/srcpkgs/cubieboard2-kernel/template b/srcpkgs/cubieboard2-kernel/template new file mode 100644 index 0000000000..03e1347ca9 --- /dev/null +++ b/srcpkgs/cubieboard2-kernel/template @@ -0,0 +1,167 @@ +# Template file for 'cubieboard2-kernel' +# +# Latest commit as of 20140125 +_githash="f9128a82721d245ff8d4f34aa4a045d3462c71dc" +_gitshort="${_githash:0:7}" + +pkgname=cubieboard2-kernel +version=3.4.43 +revision=1 +maintainer="Juan RP " +homepage="http://www.kernel.org" +license="GPL-2" +short_desc="The Linux kernel and modules for the Cubieboard2 (${version%.*} series [git ${_gitshort}])" +distfiles="https://github.com/cubieboard2/linux-sunxi/archive/${_githash}.tar.gz" +checksum=24b533a59a9c0b721cbfc352880163a3eeb7580acd8756d1304ba4370f09e8f9 + +wrksrc="linux-sunxi-${_githash}" +_kernver="${version}_${revision}" + +create_srcdir=yes +nostrip=yes +noverifyrdeps=yes +only_for_archs="armv7l" +hostmakedepends="perl python kmod>=11_2 uboot-mkimage openssl which elfutils bc" +makedepends="ncurses-devel" +depends="kmod>=11_2" +triggers="kernel-hooks" +# These files could be modified when an external module is built. +mutable_files=" + /usr/lib/modules/${_kernver}/modules.dep + /usr/lib/modules/${_kernver}/modules.dep.bin + /usr/lib/modules/${_kernver}/modules.symbols + /usr/lib/modules/${_kernver}/modules.symbols.bin + /usr/lib/modules/${_kernver}/modules.alias + /usr/lib/modules/${_kernver}/modules.alias.bin + /usr/lib/modules/${_kernver}/modules.devname" + +do_configure() { + if [ "$CROSS_BUILD" ]; then + _args="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-" + fi + + unset LDFLAGS + # Use upstream default configuration, no need to maintain ours. + make ${makejobs} ${_args} ARCH=arm cubieboard2_defconfig + + # Always use our revision to CONFIG_LOCALVERSION to match our pkg version. + sed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config + + # Enable Autofs for systemd + sed -i -e "s|.*CONFIG_AUTOFS4_FS.*|CONFIG_AUTOFS4_FS=y|" .config +} + +do_build() { + if [ "$CROSS_BUILD" ]; then + _args="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-" + fi + unset LDFLAGS + make ${makejobs} ${_args} ARCH=arm prepare + make ${makejobs} ${_args} ARCH=arm uImage modules +} + +do_install() { + local hdrdest + + # Run depmod after compressing modules. + sed -i '2iexit 0' scripts/depmod.sh + + # Install kernel, firmware and modules + make ARCH=arm INSTALL_MOD_PATH=${DESTDIR} modules_install + + vinstall arch/arm/boot/uImage 644 boot + + hdrdest=${DESTDIR}/usr/src/${sourcepkg}-kernel-headers-${_kernver} + + # Switch to /usr. + vmkdir usr + mv ${DESTDIR}/lib ${DESTDIR}/usr + + cd ${DESTDIR}/usr/lib/modules/${_kernver} + rm -f source build + ln -sf ../../../src/${sourcepkg}-headers-${_kernver} build + + cd ${wrksrc} + + # Remove firmware stuff provided by the "linux-firmware" pkg. + rm -rf ${DESTDIR}/usr/lib/firmware + + mkdir -p ${hdrdest}/include + for i in acpi asm-generic config crypto drm generated linux math-emu \ + media net pcmcia scsi sound trace video xen; do + [ -d include/$i ] && cp -a include/$i ${hdrdest}/include + done + + cd ${wrksrc} + # Copy files necessary for later builds. + cp Module.symvers ${hdrdest} + cp -a scripts ${hdrdest} + + # fix permissions on scripts dir + chmod og-w -R ${hdrdest}/scripts + + # copy arch includes for external modules + mkdir -p ${hdrdest}/arch/arm/mach-exynos + mkdir -p ${hdrdest}/arch/arm/plat-samsung + + cp -a arch/arm/include ${hdrdest}/arch/arm + cp -a arch/arm/mach-sun7i/include ${hdrdest}/arch/arm/mach-sun7i + + mkdir -p ${hdrdest}/arch/arm/kernel + + cp arch/arm/Makefile ${hdrdest}/arch/arm + if [ "$MACHINE_ARCH" = "i686" ]; then + cp arch/arm/Makefile_32.cpu ${hdrdest}/arch/arm + fi + cp arch/arm/kernel/asm-offsets.s ${hdrdest}/arch/arm/kernel + + # Add docbook makefile + install -Dm644 Documentation/DocBook/Makefile \ + ${hdrdest}/Documentation/DocBook/Makefile + + # Add md headers + mkdir -p ${hdrdest}/drivers/md + cp drivers/md/*.h ${hdrdest}/drivers/md + + # Add inotify.h + mkdir -p ${hdrdest}/include/linux + cp include/linux/inotify.h ${hdrdest}/include/linux + + # Add wireless headers + mkdir -p ${hdrdest}/net/mac80211/ + cp net/mac80211/*.h ${hdrdest}/net/mac80211 + + # add dvb headers for external modules + mkdir -p ${hdrdest}/include/config/dvb/ + cp include/config/dvb/*.h ${hdrdest}/include/config/dvb/ + + # Copy in Kconfig files + for i in $(find . -name "Kconfig*"); do + mkdir -p ${hdrdest}/$(echo $i | sed 's|/Kconfig.*||') + cp $i ${hdrdest}/$i + done + + # Remove unneeded architectures + for arch in alpha arm26 avr32 blackfin cris frv h8300 \ + ia64 m* p* s* um v850 x86 xtensa; do + rm -rf ${hdrdest}/arch/${arch} + done + + # Compress all modules with xz to save a few MBs. + msg_normal "$pkgver: compressing kernel modules with gzip, please wait...\n" + find ${DESTDIR} -name '*.ko' -exec gzip -9 {} \; + + # ... and run depmod again. + depmod -b ${DESTDIR}/usr -F System.map ${_kernver} +} + +cubieboard2-kernel-headers_package() { + nostrip=yes + noverifyrdeps=yes + short_desc="Linux kernel headers for the Cubieboard2 (${version%.*} series [${_gitshort}])" + pkg_install() { + vmove usr/src + vmove usr/lib/modules/${_kernver}/build + } +} +