#!/bin/sh # Slackware build script for the Raspberry Pi kernel packages # Written by Konstantinos Mantzaris (kmanjaris@gmail.com) # Copyright 2012-2016 Konstantinos Mantzaris # All rights reserved. # # The script is based on David Spencers work. For more information please # visit his project page at http://www.daves-collective.co.uk/raspi/ # Copyright 2012 David Spencer, Baildon, West Yorkshire, U.K. # All rights reserved. # # The kernel configuration used in this script is based on Raspbmc Linux. For # more information please visit the project page at http://www.raspbmc.com/ # # Redistribution and use of this script, with or without modification, is # permitted provided that the following conditions are met: # # 1. Redistributions of this script must retain the above copyright # notice, this list of conditions and the following disclaimer. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. GIT_SRC_LINUX=2d31cd5 GIT_RPI_FIRMWARE=8979042 # Change value based on hardware: -rpi1, -rpi23 ARM_TYPE="-rpi23" PKGNAM_SRC=kernel-source-raspi PKGNAM_MOD=kernel-modules-raspi PKGNAM_FW=kernel-firmware-raspi PKGNAM_HDR=kernel-headers-raspi PKGNAM_INITRD=initrd-raspi PKGNAM_IMAGE=raspi-slackboot${ARM_TYPE} PKGVER=4.4.21 VERSION=4.4.21 BUILD=${BUILD:-1} TAG=${TAG:-xsb} SKIP="false" # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then case "$( uname -m )" in i?86) export ARCH=i586 ;; arm*) export ARCH=arm ;; # Unless $ARCH is already set, use uname -m for all other archs: *) export ARCH=$( uname -m ) ;; esac fi if [ "$ARCH" = "i586" ]; then SLKCFLAGS="-O2 -march=i586 -mtune=i686" LIBDIRSUFFIX="" elif [ "$ARCH" = "i686" ]; then SLKCFLAGS="-O2 -march=i686 -mtune=i686" LIBDIRSUFFIX="" elif [ "$ARCH" = "s390" ]; then SLKCFLAGS="-O2" LIBDIRSUFFIX="" elif [ "$ARCH" = "x86_64" ]; then SLKCFLAGS="-O2 -fPIC" LIBDIRSUFFIX="64" elif [ "$ARCH" = "arm" ]; then LIBDIRSUFFIX="" if [ "$ARM_TYPE" = "-rpi1" ]; then SLKINITRD="uinitrd-armv5.img" SLKKERNEL="" alias make='make -j1' elif [ "$ARM_TYPE" = "-rpi23" ]; then SLKINITRD="uinitrd-armv7.img" SLKKERNEL="7" alias make='make -j4' fi fi if [ "$SKIP" = "false" ] ; then # Perform package generation sanity checks if [ -d /usr/src/raspberrypi-linux-$GIT_SRC_LINUX ] ; then mv /usr/src/raspberrypi-linux-$GIT_SRC_LINUX /usr/src/linux-$PKGVER ln -s /usr/src/linux-$PKGVER /usr/src/linux fi if [ ! -d /usr/src/linux ] ; then echo "ERROR : Could not locate kernel source path /usr/src/linux" echo "ERROR : Please extract the Raspberry Pi kernel source on /usr/src/linux" echo "TIP :: git clone git://github.com/raspberrypi/linux.git /usr/src/linux" echo "TIP :: wget https://github.com/raspberrypi/linux/tarball/master linux-raspi.tar.gz" echo "TIP :: wget https://github.com/raspberrypi/linux/tarball/rpi-4.4.y -O linux-rpi-${PKGVER}.tar.gz" exit 1 fi if [ ! -f $(pwd)/${SLKINITRD} ] ; then echo "ERROR : Could not locate the latest SlackwareARM ${SLKINITRD}" echo "ERROR : Please copy the latest SlackwareARM initrd image" echo "ERROR : in $(pwd)" echo "http://www.slackware.org.uk/slackwarearm/slackwarearm-current/isolinux/" exit 1 fi if [ ! -d $(pwd)/firmware ] ; then echo "ERROR : Could not locate Rasbberry Pi firmware path ${pwd}/firmware" echo "ERROR : Please download the Raspberry Pi firmware from GIT under ${pwd}" echo "TIP :: git clone git://github.com/raspberrypi/firmware.git firmware" echo "TIP :: wget https://github.com/raspberrypi/firmware/tarball/master -O firmware.tar.gz" exit 1 fi if [ ! -d $(pwd)/linux-firmware ] ; then echo "ERROR : Could not locate the kernel firmware path ${pwd}/linux-firmware" echo "ERROR : Please download the kernel firmware from GIT under ${pwd}" echo "TIP :: git clone git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git linux-firmware" exit 1 fi if [ ! -f $(pwd)/brcmfmac43430-sdio.bin ] || [ ! -f $(pwd)/brcmfmac43430-sdio.txt ] ; then echo "ERROR : Could not locate WiFi firmware files for RPi23" echo "ERROR : Please download the kernel firmware files from GIT under ${pwd}" echo "TIP :: wget https://github.com/RPi-Distro/firmware-nonfree/raw/master/brcm80211/brcm/brcmfmac43430-sdio.bin" echo "TIP :: wget https://raw.githubusercontent.com/RPi-Distro/firmware-nonfree/master/brcm80211/brcm/brcmfmac43430-sdio.txt" exit 1 fi if [ ! -f $(pwd)/config-4.4$ARM_TYPE ] ; then echo "ERROR : Could not locate the Raspberry Pi vanilla kernel config file ${pwd}/config-4.4$ARM_TYPE" echo "ERROR : Please download the Raspberry Pi vanilla kernel config file under ${pwd}" echo "TIP :: wget https://raw.github.com/raspberrypi/linux/rpi-4.4.y/arch/arm/configs/bcmrpi_defconfig -O config-4.4-rpi1" echo "TIP :: wget https://raw.github.com/raspberrypi/linux/rpi-4.4.y/arch/arm/configs/bcm2709_defconfig -O config-4.4-rpi23" exit 1 fi fi CWD=$(pwd) TMP=${TMP:-/tmp} PKG_SRC=$TMP/package-$PKGNAM_SRC PKG_MOD=$TMP/package-$PKGNAM_MOD PKG_FW=$TMP/package-$PKGNAM_FW PKG_HDR=$TMP/package-$PKGNAM_HDR PKG_INITRD=$TMP/package-$PKGNAM_INITRD PKG_IMAGE=$TMP/package-$PKGNAM_IMAGE if [ "$SKIP" = "false" ] ; then rm -rf $PKG_SRC rm -rf $PKG_MOD rm -rf $PKG_FW rm -rf $PKG_HDR rm -rf $PKG_INITRD rm -rf $PKG_IMAGE mkdir -p $TMP $PKG_SRC $PKG_MOD $PKG_FW $PKG_HDR $PKG_INITRD $PKG_IMAGE # Patch the rasbmc kernel config with RAID and RTC support cd $CWD cat $CWD/config-4.4$ARM_TYPE > $CWD/config zcat $CWD/config.SlaXBMCRPi${ARM_TYPE}.diff.gz | patch -p0 || exit 1 # Compile the kernel and build/install kernel modules cd /usr/src/linux || exit 1 make mrproper make clean cat $CWD/config > /usr/src/linux/.config || exit 1 make zImage || exit 1 make modules || exit 1 make modules_install make dtbs cd $CWD if [ ! -d /lib/modules/$VERSION$ARM_TYPE ] ; then echo "ERROR : Could not locate the kernel modules under /lib/modules/$VERSION$ARM_TYPE" echo "ERROR : Please compile/install the Raspberry Pi kernel modules first" exit 1 fi # Bundle Kernel Firmware Package cd $PKG_FW || exit 1 mkdir -p $PKG_FW/lib/firmware cd $CWD/linux-firmware cp -a * $PKG_FW/lib/firmware || exit 1 cp $CWD/brcmfmac43430-sdio.bin $PKG_FW/lib/firmware/brcm || exit 1 cp $CWD/brcmfmac43430-sdio.txt $PKG_FW/lib/firmware/brcm || exit 1 mkdir -p $PKG_FW/install cat $CWD/slack-desc-firmware > $PKG_FW/install/slack-desc cd $PKG_FW /sbin/makepkg -l y -c n $TMP/$PKGNAM_FW-$VERSION-$ARCH-$BUILD$TAG.txz rm -rf $PKG_FW # Bundle Kernel Headers Package cd $PKG_HDR || exit 1 mkdir -p $PKG_HDR/usr cd /usr/src/linux make INSTALL_HDR_PATH=$PKG_HDR/usr headers_install || exit 1 mkdir -p $PKG_HDR/install cat $CWD/slack-desc-headers > $PKG_HDR/install/slack-desc cd $PKG_HDR /sbin/makepkg -l y -c n $TMP/$PKGNAM_HDR-$VERSION-$ARCH-$BUILD$TAG.txz rm -rf $PKG_HDR # Bundle Kernel Source Package cd $PKG_SRC || exit 1 mkdir -p $PKG_SRC/usr/src/linux-$VERSION cd /usr/src/linux cp -a * .config $PKG_SRC/usr/src/linux-$VERSION || exit 1 cd $PKG_SRC/usr/src ln -s linux-$VERSION linux cd linux-$VERSION make clean mkdir -p $PKG_SRC/install cat $CWD/slack-desc-source > $PKG_SRC/install/slack-desc cd $PKG_SRC /sbin/makepkg -l y -c n $TMP/$PKGNAM_SRC-$VERSION-$ARCH-$BUILD$TAG.txz rm -rf $PKG_SRC # Bundle Kernel Modules Package cd $PKG_MOD || exit 1 mkdir -p $PKG_MOD/lib/modules cp -a /lib/modules/$VERSION$ARM_TYPE $PKG_MOD/lib/modules || exit 1 mkdir -p $PKG_MOD/etc/rc.d cat $CWD/rc.modules.new > $PKG_MOD/etc/rc.d/rc.modules-$VERSION$ARM_TYPE.new chmod 755 $PKG_MOD/etc/rc.d/rc.modules-$VERSION$ARM_TYPE.new mkdir -p $PKG_MOD/install cat $CWD/slack-desc-modules > $PKG_MOD/install/slack-desc # Write out the doinst.sh: cat << EOF > $PKG_MOD/install/doinst.sh config() { NEW="\$1" OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)" # If there's no config file by that name, mv it over: if [ ! -r \$OLD ]; then mv \$NEW \$OLD elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then # toss the redundant copy rm \$NEW fi # Otherwise, we leave the .new copy for the admin to consider... } config etc/rc.d/rc.modules-${VERSION}${ARM_TYPE}.new # A good idea whenever kernel modules are added or changed: if [ -x sbin/depmod ]; then chroot . /sbin/depmod -a ${VERSION}${ARM_TYPE} 1> /dev/null 2> /dev/null fi EOF cd $PKG_MOD /sbin/makepkg -l y -c n $TMP/$PKGNAM_MOD${ARM_TYPE}-$VERSION-$ARCH-$BUILD$TAG.txz rm -rf $PKG_MOD fi # Prepare initrd.gz boot image based on ARMedSlack uinitrd-armvX.img cd $PKG_INITRD || exit 1 tail -c+65 < $CWD/$SLKINITRD | gunzip | cpio -iv rm -rf $PKG_INITRD/lib/modules/* cd /usr/src/linux make modules_install INSTALL_MOD_PATH=$PKG_INITRD cd $PKG_INITRD zcat $CWD/initrd.SlaXBMCRPi$ARM_TYPE.diff.gz | patch -p1 || exit 1 cp -a $CWD/rpi_initrd $PKG_INITRD/usr/lib/setup/ || exit 1 find . | cpio -o -v -H newc | gzip -9c > $TMP/initrd${SLKKERNEL}.gz cd $TMP rm -rf $PKG_INITRD read -p "Press [Enter] to bundle the RPi$ARM_TYPE boot image..." # Bundle the Raspberry Pi boot image # Let's work in 512B sectors. # 128 "heads" and 32 "sectors" => 2MiB "cylinders", # That's 4096 sectors per "cylinder". # 4 "cylinders" = 8MiB erase block boundary (or 2*4MiB boundaries). # So keep partition boundaries at 4-cyl multiples for best results. # That's 16384 sectors per erase block. # 944 "cylinders" = 1979711488B, which is < 2GB, so fits on a "2GB" card. echo "Generating empty image file $TMP/$PKGNAM_IMAGE.img" dd if=/dev/zero of=$TMP/$PKGNAM_IMAGE.img bs=512 count=$(( 128 * 32 * 944 )) # Drop in the prepared MBR. # Partition 1 start 1 end 180223 type 0c # Partition 2 start 180224 end 1032191 type 82 # Partition 3 start 1032192 end 3866623 type 83 echo "Prepending MBR in empty image file $TMP/$PKGNAM_IMAGE.img" dd if=$CWD/mbr of=$TMP/$PKGNAM_IMAGE.img bs=512 count=1 conv=notrunc LOOPDEV=$(losetup -f --show $TMP/$PKGNAM_IMAGE.img) mdadm --build --verbose --force raspimg --level=linear --raid-devices=1 $LOOPDEV sleep 5 mkdosfs -I /dev/md/raspimg1 mkswap /dev/md/raspimg2 mkfs -t ext4 -O ^has_journal -E stride=2,stripe-width=1024 -b 4096 /dev/md/raspimg3 echo "Loading RPi boot data into $TMP/$PKGNAM_IMAGE.img" mount -t vfat /dev/md/raspimg1 $PKG_IMAGE cd $CWD/firmware/boot cp -a * $PKG_IMAGE || exit 1 rm $PKG_IMAGE/kernel* rm $PKG_IMAGE/*.dtb rm $PKG_IMAGE/overlays/* cp $TMP/initrd${SLKKERNEL}.gz $PKG_IMAGE/ cp -v /usr/src/linux/arch/arm/boot/dts/*.dtb $PKG_IMAGE/ cp -v /usr/src/linux/arch/arm/boot/dts/overlays/*.dtbo $PKG_IMAGE/overlays/ cp -v /usr/src/linux/arch/arm/boot/dts/overlays/README $PKG_IMAGE/overlays/ cp -v /usr/src/linux/System.map $PKG_IMAGE/ cp -v /usr/src/linux/.config $PKG_IMAGE/config${SLKKERNEL} if [ $(echo $VERSION | cut -d. -f1) -lt 4 ] ; then /usr/src/linux/scripts/mkknlimg /usr/src/linux/arch/arm/boot/zImage $PKG_IMAGE/kernel${SLKKERNEL}.img LOADADDR="0xa00000" SIZE="0x$(printf '%x' $(stat --format='%s' $TMP/initrd${SLKKERNEL}.gz))" else /usr/src/linux/scripts/mkknlimg /usr/src/linux/arch/arm/boot/zImage $PKG_IMAGE/kernel${SLKKERNEL}.img fi CMDLINE=$(grep CONFIG_CMDLINE= /usr/src/linux/.config |awk -F"\"" '{print $2}') if [ "$ARM_TYPE" = "-rpi1" ]; then echo "# Low Risk Overclock Settings" > $PKG_IMAGE/config.txt echo "#arm_freq=850" >> $PKG_IMAGE/config.txt echo "#sdram_freq=450" >> $PKG_IMAGE/config.txt echo "#core_freq=300" >> $PKG_IMAGE/config.txt echo "#---------------------------------" >> $PKG_IMAGE/config.txt echo "# Medium Risk Overclock Settings" >> $PKG_IMAGE/config.txt echo "#arm_freq=900" >> $PKG_IMAGE/config.txt echo "#sdram_freq=450" >> $PKG_IMAGE/config.txt echo "#core_freq=450" >> $PKG_IMAGE/config.txt echo "#---------------------------------" >> $PKG_IMAGE/config.txt echo "# High Risk Overclock Settings" >> $PKG_IMAGE/config.txt echo "#arm_freq=1000" >> $PKG_IMAGE/config.txt echo "#sdram_freq=500" >> $PKG_IMAGE/config.txt echo "#core_freq=500" >> $PKG_IMAGE/config.txt echo "#over_voltage=6" >> $PKG_IMAGE/config.txt echo "#---------------------------------" >> $PKG_IMAGE/config.txt echo "# May The Force Be With You" >> $PKG_IMAGE/config.txt echo "#arm_freq=1200" >> $PKG_IMAGE/config.txt echo "#sdram_freq=550" >> $PKG_IMAGE/config.txt echo "#core_freq=550" >> $PKG_IMAGE/config.txt echo "#force_turbo=1" >> $PKG_IMAGE/config.txt echo "#over_voltage=8" >> $PKG_IMAGE/config.txt echo "#current_limit_override=0x5A000020" >> $PKG_IMAGE/config.txt echo "#---------------------------------" >> $PKG_IMAGE/config.txt echo "framebuffer_depth=24" >> $PKG_IMAGE/config.txt elif [ "$ARM_TYPE" = "-rpi23" ]; then echo "# Default locked @ 1.2GHz (RPi2/3)" >> $PKG_IMAGE/config.txt echo "#arm_freq=1200" >> $PKG_IMAGE/config.txt echo "#force_turbo=1" >> $PKG_IMAGE/config.txt echo "#---------------------------------" >> $PKG_IMAGE/config.txt echo "# Medium Risk Overclock Settings (RPi2/3)" >> $PKG_IMAGE/config.txt echo "#arm_freq=1300" >> $PKG_IMAGE/config.txt echo "#sdram_freq=450" >> $PKG_IMAGE/config.txt echo "#core_freq=450" >> $PKG_IMAGE/config.txt echo "#force_turbo=1" >> $PKG_IMAGE/config.txt echo "#over_voltage=4" >> $PKG_IMAGE/config.txt echo "#over_voltage_sdram=4" >> $PKG_IMAGE/config.txt echo "#---------------------------------" >> $PKG_IMAGE/config.txt echo "# Global Thermonuclear War (RPi2/3)" >> $PKG_IMAGE/config.txt echo "#arm_freq=1400" >> $PKG_IMAGE/config.txt echo "#sdram_freq=450" >> $PKG_IMAGE/config.txt echo "#core_freq=450" >> $PKG_IMAGE/config.txt echo "#force_turbo=1" >> $PKG_IMAGE/config.txt echo "#over_voltage=6" >> $PKG_IMAGE/config.txt echo "#over_voltage_sdram=6" >> $PKG_IMAGE/config.txt echo "#---------------------------------" >> $PKG_IMAGE/config.txt echo "#avoid_warnings=1" >> $PKG_IMAGE/config.txt echo "#avoid_warnings=2" >> $PKG_IMAGE/config.txt echo "framebuffer_depth=32" >> $PKG_IMAGE/config.txt fi echo "gpu_mem_256=128" >> $PKG_IMAGE/config.txt echo "gpu_mem_512=192" >> $PKG_IMAGE/config.txt echo "gpu_mem_1024=256" >> $PKG_IMAGE/config.txt echo "start_x=1" >> $PKG_IMAGE/config.txt echo "dtparam=audio" >> $PKG_IMAGE/config.txt if [ "$ARM_TYPE" = "-rpi23" ]; then echo "dtparam=brcmfmac" >> $PKG_IMAGE/config.txt fi echo "#*************************************************************#" >> $PKG_IMAGE/config.txt echo "# Uncomment some or all of these to enable the optional hardware interfaces" >> $PKG_IMAGE/config.txt echo "#dtparam=i2c_arm=on" >> $PKG_IMAGE/config.txt echo "#dtparam=i2s=on" >> $PKG_IMAGE/config.txt echo "#dtparam=spi=on" >> $PKG_IMAGE/config.txt echo "#*************************************************************#" >> $PKG_IMAGE/config.txt echo "# Uncomment one of these lines to enable an audio interface" >> $PKG_IMAGE/config.txt echo "#dtoverlay=hifiberry-amp" >> $PKG_IMAGE/config.txt echo "#dtoverlay=hifiberry-dac" >> $PKG_IMAGE/config.txt echo "#dtoverlay=hifiberry-dacplus" >> $PKG_IMAGE/config.txt echo "#dtoverlay=hifiberry-digi" >> $PKG_IMAGE/config.txt echo "#dtoverlay=iqaudio-dac" >> $PKG_IMAGE/config.txt echo "#dtoverlay=iqaudio-dacplus" >> $PKG_IMAGE/config.txt echo "#dtoverlay=audioinjector-wm8731-audio" >> $PKG_IMAGE/config.txt echo "#*************************************************************#" >> $PKG_IMAGE/config.txt echo "# Uncomment this to enable the lirc-rpi module" >> $PKG_IMAGE/config.txt echo "#dtoverlay=lirc-rpi" >> $PKG_IMAGE/config.txt echo "#*************************************************************#" >> $PKG_IMAGE/config.txt echo "# Uncomment this to override the defaults for the lirc-rpi module" >> $PKG_IMAGE/config.txt echo "#dtparam=gpio_out_pin=16" >> $PKG_IMAGE/config.txt echo "#dtparam=gpio_in_pin=17" >> $PKG_IMAGE/config.txt echo "#dtparam=gpio_in_pull=down" >> $PKG_IMAGE/config.txt echo "#*************************************************************#" >> $PKG_IMAGE/config.txt echo "# Uncomment and configure the following generic features as and when required" >> $PKG_IMAGE/config.txt echo "#overscan_left=??" >> $PKG_IMAGE/config.txt echo "#overscan_right=??" >> $PKG_IMAGE/config.txt echo "#overscan_top=??" >> $PKG_IMAGE/config.txt echo "#overscan_bottom=??" >> $PKG_IMAGE/config.txt echo "#decode_MPG2=??" >> $PKG_IMAGE/config.txt echo "#decode_WVC1==??" >> $PKG_IMAGE/config.txt if [ $(echo $VERSION | cut -d. -f1) -lt 4 ] ; then echo "ramfsfile=initrd${SLKKERNEL}.gz" >> $PKG_IMAGE/config.txt echo "ramfsaddr=$LOADADDR" >> $PKG_IMAGE/config.txt echo "$CMDLINE initrd=$LOADADDR,$SIZE" > $PKG_IMAGE/cmdline.txt else echo "kernel=kernel${SLKKERNEL}.img" >> $PKG_IMAGE/config.txt echo "initramfs initrd${SLKKERNEL}.gz followkernel" >> $PKG_IMAGE/config.txt echo "$CMDLINE" > $PKG_IMAGE/cmdline.txt fi cd $TMP sleep 5 umount -v $PKG_IMAGE mdadm --stop /dev/md/raspimg losetup -d $LOOPDEV xz -v $TMP/$PKGNAM_IMAGE.img echo "Making RPi boot data available under $PKG_IMAGE" cd $CWD/firmware/boot cp -a * $PKG_IMAGE || exit 1 rm $PKG_IMAGE/kernel* rm $PKG_IMAGE/*.dtb rm $PKG_IMAGE/overlays/* cp $TMP/initrd${SLKKERNEL}.gz $PKG_IMAGE/ cp -v /usr/src/linux/arch/arm/boot/dts/*.dtb $PKG_IMAGE/ cp -v /usr/src/linux/arch/arm/boot/dts/overlays/*.dtbo $PKG_IMAGE/overlays/ cp -v /usr/src/linux/arch/arm/boot/dts/overlays/README $PKG_IMAGE/overlays/ cp -v /usr/src/linux/System.map $PKG_IMAGE/ cp -v /usr/src/linux/.config $PKG_IMAGE/config${SLKKERNEL} if [ $(echo $VERSION | cut -d. -f1) -lt 4 ] ; then /usr/src/linux/scripts/mkknlimg /usr/src/linux/arch/arm/boot/zImage $PKG_IMAGE/kernel${SLKKERNEL}.img LOADADDR="0xa00000" SIZE="0x$(printf '%x' $(stat --format='%s' $TMP/initrd${SLKKERNEL}.gz))" else /usr/src/linux/scripts/mkknlimg /usr/src/linux/arch/arm/boot/zImage $PKG_IMAGE/kernel${SLKKERNEL}.img fi CMDLINE=$(grep CONFIG_CMDLINE= /usr/src/linux/.config |awk -F"\"" '{print $2}') if [ "$ARM_TYPE" = "-rpi1" ]; then echo "# Low Risk Overclock Settings" > $PKG_IMAGE/config.txt echo "#arm_freq=850" >> $PKG_IMAGE/config.txt echo "#sdram_freq=450" >> $PKG_IMAGE/config.txt echo "#core_freq=300" >> $PKG_IMAGE/config.txt echo "#---------------------------------" >> $PKG_IMAGE/config.txt echo "# Medium Risk Overclock Settings" >> $PKG_IMAGE/config.txt echo "#arm_freq=900" >> $PKG_IMAGE/config.txt echo "#sdram_freq=450" >> $PKG_IMAGE/config.txt echo "#core_freq=450" >> $PKG_IMAGE/config.txt echo "#---------------------------------" >> $PKG_IMAGE/config.txt echo "# High Risk Overclock Settings" >> $PKG_IMAGE/config.txt echo "#arm_freq=1000" >> $PKG_IMAGE/config.txt echo "#sdram_freq=500" >> $PKG_IMAGE/config.txt echo "#core_freq=500" >> $PKG_IMAGE/config.txt echo "#over_voltage=6" >> $PKG_IMAGE/config.txt echo "#---------------------------------" >> $PKG_IMAGE/config.txt echo "# May The Force Be With You" >> $PKG_IMAGE/config.txt echo "#arm_freq=1200" >> $PKG_IMAGE/config.txt echo "#sdram_freq=550" >> $PKG_IMAGE/config.txt echo "#core_freq=550" >> $PKG_IMAGE/config.txt echo "#force_turbo=1" >> $PKG_IMAGE/config.txt echo "#over_voltage=8" >> $PKG_IMAGE/config.txt echo "#current_limit_override=0x5A000020" >> $PKG_IMAGE/config.txt echo "#---------------------------------" >> $PKG_IMAGE/config.txt echo "framebuffer_depth=24" >> $PKG_IMAGE/config.txt elif [ "$ARM_TYPE" = "-rpi23" ]; then echo "# Default locked @ 1.2GHz (RPi2/3)" >> $PKG_IMAGE/config.txt echo "#arm_freq=1200" >> $PKG_IMAGE/config.txt echo "#force_turbo=1" >> $PKG_IMAGE/config.txt echo "#---------------------------------" >> $PKG_IMAGE/config.txt echo "# Medium Risk Overclock Settings (RPi2/3)" >> $PKG_IMAGE/config.txt echo "#arm_freq=1300" >> $PKG_IMAGE/config.txt echo "#sdram_freq=450" >> $PKG_IMAGE/config.txt echo "#core_freq=450" >> $PKG_IMAGE/config.txt echo "#force_turbo=1" >> $PKG_IMAGE/config.txt echo "#over_voltage=4" >> $PKG_IMAGE/config.txt echo "#over_voltage_sdram=4" >> $PKG_IMAGE/config.txt echo "#---------------------------------" >> $PKG_IMAGE/config.txt echo "# Global Thermonuclear War (RPi2/3)" >> $PKG_IMAGE/config.txt echo "#arm_freq=1400" >> $PKG_IMAGE/config.txt echo "#sdram_freq=450" >> $PKG_IMAGE/config.txt echo "#core_freq=450" >> $PKG_IMAGE/config.txt echo "#force_turbo=1" >> $PKG_IMAGE/config.txt echo "#over_voltage=6" >> $PKG_IMAGE/config.txt echo "#over_voltage_sdram=6" >> $PKG_IMAGE/config.txt echo "#---------------------------------" >> $PKG_IMAGE/config.txt echo "#avoid_warnings=1" >> $PKG_IMAGE/config.txt echo "#avoid_warnings=2" >> $PKG_IMAGE/config.txt echo "framebuffer_depth=32" >> $PKG_IMAGE/config.txt fi echo "gpu_mem_256=128" >> $PKG_IMAGE/config.txt echo "gpu_mem_512=192" >> $PKG_IMAGE/config.txt echo "gpu_mem_1024=256" >> $PKG_IMAGE/config.txt echo "start_x=1" >> $PKG_IMAGE/config.txt echo "dtparam=audio" >> $PKG_IMAGE/config.txt if [ "$ARM_TYPE" = "-rpi23" ]; then echo "dtparam=brcmfmac" >> $PKG_IMAGE/config.txt fi echo "#*************************************************************#" >> $PKG_IMAGE/config.txt echo "# Uncomment some or all of these to enable the optional hardware interfaces" >> $PKG_IMAGE/config.txt echo "#dtparam=i2c_arm=on" >> $PKG_IMAGE/config.txt echo "#dtparam=i2s=on" >> $PKG_IMAGE/config.txt echo "#dtparam=spi=on" >> $PKG_IMAGE/config.txt echo "#*************************************************************#" >> $PKG_IMAGE/config.txt echo "# Uncomment one of these lines to enable an audio interface" >> $PKG_IMAGE/config.txt echo "#dtoverlay=hifiberry-amp" >> $PKG_IMAGE/config.txt echo "#dtoverlay=hifiberry-dac" >> $PKG_IMAGE/config.txt echo "#dtoverlay=hifiberry-dacplus" >> $PKG_IMAGE/config.txt echo "#dtoverlay=hifiberry-digi" >> $PKG_IMAGE/config.txt echo "#dtoverlay=iqaudio-dac" >> $PKG_IMAGE/config.txt echo "#dtoverlay=iqaudio-dacplus" >> $PKG_IMAGE/config.txt echo "#dtoverlay=audioinjector-wm8731-audio" >> $PKG_IMAGE/config.txt echo "#*************************************************************#" >> $PKG_IMAGE/config.txt echo "# Uncomment this to enable the lirc-rpi module" >> $PKG_IMAGE/config.txt echo "#dtoverlay=lirc-rpi" >> $PKG_IMAGE/config.txt echo "#*************************************************************#" >> $PKG_IMAGE/config.txt echo "# Uncomment this to override the defaults for the lirc-rpi module" >> $PKG_IMAGE/config.txt echo "#dtparam=gpio_out_pin=16" >> $PKG_IMAGE/config.txt echo "#dtparam=gpio_in_pin=17" >> $PKG_IMAGE/config.txt echo "#dtparam=gpio_in_pull=down" >> $PKG_IMAGE/config.txt echo "#*************************************************************#" >> $PKG_IMAGE/config.txt echo "# Uncomment and configure the following generic features as and when required" >> $PKG_IMAGE/config.txt echo "#overscan_left=??" >> $PKG_IMAGE/config.txt echo "#overscan_right=??" >> $PKG_IMAGE/config.txt echo "#overscan_top=??" >> $PKG_IMAGE/config.txt echo "#overscan_bottom=??" >> $PKG_IMAGE/config.txt echo "#decode_MPG2=??" >> $PKG_IMAGE/config.txt echo "#decode_WVC1==??" >> $PKG_IMAGE/config.txt if [ $(echo $VERSION | cut -d. -f1) -lt 4 ] ; then echo "ramfsfile=initrd${SLKKERNEL}.gz" >> $PKG_IMAGE/config.txt echo "ramfsaddr=$LOADADDR" >> $PKG_IMAGE/config.txt echo "$CMDLINE initrd=$LOADADDR,$SIZE" > $PKG_IMAGE/cmdline.txt else echo "kernel=kernel${SLKKERNEL}.img" >> $PKG_IMAGE/config.txt echo "initramfs initrd${SLKKERNEL}.gz followkernel" >> $PKG_IMAGE/config.txt echo "$CMDLINE" > $PKG_IMAGE/cmdline.txt fi