141ead10af
The upstream default configuration file for rpi is actively maintained and there's no point in duplicating stuff just for some options.
193 lines
5.5 KiB
Text
193 lines
5.5 KiB
Text
# Template file for 'kernel-rpi'
|
|
#
|
|
# Latest commit as of 20130913
|
|
_githash="cbd6672"
|
|
|
|
pkgname=kernel-rpi
|
|
version=3.6.11
|
|
revision=6
|
|
maintainer="Juan RP <xtraeme@gmail.com>"
|
|
homepage="http://www.kernel.org"
|
|
license="GPL-2"
|
|
short_desc="The Linux kernel and modules for the Raspberry Pi (3.6 series [${_githash}])"
|
|
|
|
_kernver="${version}_${revision}"
|
|
hostmakedepends="perl python kmod>=11_2 uboot-mkimage"
|
|
makedepends="ncurses-devel"
|
|
only_for_archs="armv6l"
|
|
|
|
do_fetch() {
|
|
url="git://github.com/raspberrypi/linux.git"
|
|
msg_normal "Cloning from $url ...\n"
|
|
git clone --depth 1 $url ${pkgname}-${version}
|
|
cd ${pkgname}-${version}
|
|
git checkout ${_githash}
|
|
# Remove .git directory, otherwise scripts/setkernelversion.sh
|
|
# modifies KERNELRELEASE and appends + to it.
|
|
rm -rf .git
|
|
}
|
|
|
|
do_configure() {
|
|
if [ "$CROSS_BUILD" ]; then
|
|
_args="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
|
|
fi
|
|
|
|
# Copy required files to create the bootable image.
|
|
cp ${FILESDIR}/args-uncompressed.txt arch/arm/boot/
|
|
cp ${FILESDIR}/boot-uncompressed.txt arch/arm/boot/
|
|
cp ${FILESDIR}/imagetool-uncompressed.py arch/arm/boot/
|
|
|
|
# Use upstream default configuration, no need to maintain ours.
|
|
make ${makejobs} ${_args} ARCH=arm bcmrpi_defconfig
|
|
|
|
# Always use our revision to CONFIG_LOCALVERSION to match our pkg version.
|
|
sed -i -e "s|^\(CONFIG_LOCALVERSION=\).*|\1\"_${revision}\"|" .config
|
|
}
|
|
|
|
do_build() {
|
|
if [ "$CROSS_BUILD" ]; then
|
|
_args="CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"
|
|
fi
|
|
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
|
|
|
|
# Generate kernel.img and install it to destdir.
|
|
cd arch/arm/boot
|
|
/usr/bin/python2 imagetool-uncompressed.py
|
|
cd ${wrksrc}
|
|
vinstall arch/arm/boot/kernel.img 644 boot
|
|
|
|
hdrdest=${DESTDIR}/usr/src/kernel-headers-rpi-${_kernver}
|
|
|
|
# Switch to /usr.
|
|
vmkdir usr
|
|
mv ${DESTDIR}/lib ${DESTDIR}/usr
|
|
|
|
cd ${DESTDIR}/usr/lib/modules/${_kernver}
|
|
rm -f source build
|
|
ln -sf ../../../src/kernel-headers-rpi-${_kernver} build
|
|
|
|
cd ${wrksrc}
|
|
# Install required headers to build external modules
|
|
install -Dm644 Makefile ${hdrdest}/Makefile
|
|
install -Dm644 kernel/Makefile ${hdrdest}/kernel/Makefile
|
|
install -Dm644 .config ${hdrdest}/.config
|
|
mkdir -p ${hdrdest}/include
|
|
|
|
# Remove firmware stuff provided by the "linux-firmware" pkg.
|
|
rm -rf ${DESTDIR}/usr/lib/firmware
|
|
|
|
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-bcm2708
|
|
cp -a arch/arm/include ${hdrdest}/arch/arm
|
|
cp -a arch/arm/mach-bcm2708/include ${hdrdest}/arch/arm/mach-bcm2708
|
|
|
|
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 headers for lirc package
|
|
mkdir -p ${hdrdest}/drivers/media/video
|
|
cp drivers/media/video/*.h ${hdrdest}/drivers/media/video/
|
|
|
|
for i in bt8xx cpia2 cx25840 cx88 em28xx pwc saa7134 sn9c102; do
|
|
mkdir -p ${hdrdest}/drivers/media/video/${i}
|
|
cp -a drivers/media/video/${i}/*.h ${hdrdest}/drivers/media/video/${i}
|
|
done
|
|
|
|
# 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}
|
|
}
|
|
|
|
kernel-headers-rpi_package() {
|
|
nostrip=yes
|
|
noverifyrdeps=yes
|
|
short_desc="Linux kernel headers for the RaspberryPI (3.6 series [${_githash}])"
|
|
pkg_install() {
|
|
vmove usr/src
|
|
vmove usr/lib/modules/${_kernver}/build
|
|
}
|
|
}
|
|
|
|
kernel-rpi_package() {
|
|
nostrip=yes
|
|
noverifyrdeps=yes
|
|
provides="kernel-${version}"
|
|
triggers="kernel-hooks"
|
|
depends="kmod>=11_2"
|
|
# 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"
|
|
pkg_install() {
|
|
vmove all
|
|
}
|
|
}
|