##// END OF EJS Templates
Don’t require apt lock to be available on build machine if there are no packages to install
Don’t require apt lock to be available on build machine if there are no packages to install

Fichier de la dernière révision:

r94:2ce085c56493
r106:8f781dfa765d
Show More
13-kernel.sh
306 lines | 11.9 KiB | application/x-sh | BashLexer
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56 #
drtyhlpr
Added Raspberry Pi 3 model support
r94 # Build and Setup RPi2/3 Kernel
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56 #
Jan Wagner
spliting more files, fix-uboot, fix-fbturbo, fix-locale
r67 # Load utility functions
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56 . ./functions.sh
# Fetch and build latest raspberry kernel
if [ "$BUILD_KERNEL" = true ] ; then
Jan Wagner
Added: KERNEL_SRCDIR, path-checks, code-cleanup
r72 # Setup source directory
Jan Wagner
fix: ENABLE_CRYPTFS -> UBOOT, SPLITFS, EXPANDROOT - cleanup
r82 mkdir -p "${R}/usr/src"
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56
Jan Wagner
Added: KERNEL_SRCDIR, path-checks, code-cleanup
r72 # Copy existing kernel sources into chroot directory
Jan Wagner
Added: KERNELSRC_PREBUILT, KERNELSRC_ rename, fix-quotes
r75 if [ -n "$KERNELSRC_DIR" ] && [ -d "$KERNELSRC_DIR" ] ; then
Jan Wagner
Added: KERNEL_SRCDIR, path-checks, code-cleanup
r72 # Copy kernel sources
Jan Wagner
Added: KERNELSRC_PREBUILT, KERNELSRC_ rename, fix-quotes
r75 cp -r "${KERNELSRC_DIR}" "${R}/usr/src"
Jan Wagner
Added: KERNEL_SRCDIR, path-checks, code-cleanup
r72
# Clean the kernel sources
Jan Wagner
Added: KERNELSRC_PREBUILT, KERNELSRC_ rename, fix-quotes
r75 if [ "$KERNELSRC_CLEAN" = true ] && [ "$KERNELSRC_PREBUILT" = false ] ; then
drtyhlpr
Added Raspberry Pi 3 model support
r94 make -C "${KERNEL_DIR}" ARCH="${KERNEL_ARCH}" CROSS_COMPILE="${CROSS_COMPILE}" mrproper
Jan Wagner
Added: KERNEL_SRCDIR, path-checks, code-cleanup
r72 fi
Jan Wagner
Added: KERNELSRC_PREBUILT, KERNELSRC_ rename, fix-quotes
r75 else # KERNELSRC_DIR=""
Jan Wagner
Added: KERNEL_SRCDIR, path-checks, code-cleanup
r72 # Fetch current raspberrypi kernel sources
drtyhlpr
Added ENABLE_NONFREE support and more
r91 git -C "${R}/usr/src" clone --depth=1 "${KERNEL_URL}"
Jan Wagner
Added: KERNEL_SRCDIR, path-checks, code-cleanup
r72 fi
Jan Wagner
spliting more files, fix-uboot, fix-fbturbo, fix-locale
r67
# Calculate optimal number of kernel building threads
Jan Wagner
Added: KERNELSRC_PREBUILT, KERNELSRC_ rename, fix-quotes
r75 if [ "$KERNEL_THREADS" = "1" ] && [ -r /proc/cpuinfo ] ; then
KERNEL_THREADS=$(grep -c processor /proc/cpuinfo)
Jan Wagner
spliting more files, fix-uboot, fix-fbturbo, fix-locale
r67 fi
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56
Jan Wagner
Added: KERNEL_REDUCE - less than 128MB used space, Added: REDUCE_ parameters
r76 # Configure and build kernel
Jan Wagner
Added: KERNELSRC_PREBUILT, KERNELSRC_ rename, fix-quotes
r75 if [ "$KERNELSRC_PREBUILT" = false ] ; then
Jan Wagner
Added: KERNEL_REDUCE - less than 128MB used space, Added: REDUCE_ parameters
r76 # Remove device, network and filesystem drivers from kernel configuration
if [ "$KERNEL_REDUCE" = true ] ; then
drtyhlpr
Added Raspberry Pi 3 model support
r94 make -C "${KERNEL_DIR}" ARCH="${KERNEL_ARCH}" CROSS_COMPILE="${CROSS_COMPILE}" "${KERNEL_DEFCONFIG}"
Jan Wagner
Added: KERNEL_REDUCE - less than 128MB used space, Added: REDUCE_ parameters
r76 sed -i\
-e "s/\(^CONFIG_SND.*\=\).*/\1n/"\
-e "s/\(^CONFIG_SOUND.*\=\).*/\1n/"\
-e "s/\(^CONFIG_AC97.*\=\).*/\1n/"\
-e "s/\(^CONFIG_VIDEO_.*\=\).*/\1n/"\
-e "s/\(^CONFIG_MEDIA_TUNER.*\=\).*/\1n/"\
-e "s/\(^CONFIG_DVB.*\=\)[ym]/\1n/"\
-e "s/\(^CONFIG_REISERFS.*\=\).*/\1n/"\
-e "s/\(^CONFIG_JFS.*\=\).*/\1n/"\
-e "s/\(^CONFIG_XFS.*\=\).*/\1n/"\
-e "s/\(^CONFIG_GFS2.*\=\).*/\1n/"\
-e "s/\(^CONFIG_OCFS2.*\=\).*/\1n/"\
-e "s/\(^CONFIG_BTRFS.*\=\).*/\1n/"\
-e "s/\(^CONFIG_HFS.*\=\).*/\1n/"\
-e "s/\(^CONFIG_JFFS2.*\=\)[ym]/\1n/"\
-e "s/\(^CONFIG_UBIFS.*\=\).*/\1n/"\
-e "s/\(^CONFIG_SQUASHFS.*\=\)[ym]/\1n/"\
-e "s/\(^CONFIG_W1.*\=\)[ym]/\1n/"\
-e "s/\(^CONFIG_HAMRADIO.*\=\).*/\1n/"\
-e "s/\(^CONFIG_CAN.*\=\).*/\1n/"\
-e "s/\(^CONFIG_IRDA.*\=\).*/\1n/"\
-e "s/\(^CONFIG_BT_.*\=\).*/\1n/"\
-e "s/\(^CONFIG_WIMAX.*\=\)[ym]/\1n/"\
-e "s/\(^CONFIG_6LOWPAN.*\=\).*/\1n/"\
-e "s/\(^CONFIG_IEEE802154.*\=\).*/\1n/"\
-e "s/\(^CONFIG_NFC.*\=\).*/\1n/"\
-e "s/\(^CONFIG_FB_TFT=.*\=\).*/\1n/"\
-e "s/\(^CONFIG_TOUCHSCREEN.*\=\).*/\1n/"\
-e "s/\(^CONFIG_USB_GSPCA_.*\=\).*/\1n/"\
-e "s/\(^CONFIG_DRM.*\=\).*/\1n/"\
drtyhlpr
Added Raspberry Pi 3 model support
r94 "${KERNEL_DIR}/.config"
Jan Wagner
Added: KERNEL_REDUCE - less than 128MB used space, Added: REDUCE_ parameters
r76 fi
Jan Wagner
Added: KERNELSRC_PREBUILT, KERNELSRC_ rename, fix-quotes
r75 if [ "$KERNELSRC_CONFIG" = true ] ; then
# Load default raspberry kernel configuration
drtyhlpr
Added Raspberry Pi 3 model support
r94 make -C "${KERNEL_DIR}" ARCH="${KERNEL_ARCH}" CROSS_COMPILE="${CROSS_COMPILE}" "${KERNEL_DEFCONFIG}"
Jan Wagner
Added: KERNEL_SRCDIR, path-checks, code-cleanup
r72
Jan Wagner
Added: KERNELSRC_PREBUILT, KERNELSRC_ rename, fix-quotes
r75 # Start menu-driven kernel configuration (interactive)
if [ "$KERNEL_MENUCONFIG" = true ] ; then
drtyhlpr
Added Raspberry Pi 3 model support
r94 make -C "${KERNEL_DIR}" ARCH="${KERNEL_ARCH}" CROSS_COMPILE="${CROSS_COMPILE}" menuconfig
Jan Wagner
Added: KERNELSRC_PREBUILT, KERNELSRC_ rename, fix-quotes
r75 fi
Jan Wagner
Added: KERNEL_SRCDIR, path-checks, code-cleanup
r72 fi
Jan Wagner
comment-cleanup, net-cleanup, size-calc-fix, split-more, menuconfig
r71
Jan Wagner
Added: KERNELSRC_PREBUILT, KERNELSRC_ rename, fix-quotes
r75 # Cross compile kernel and modules
drtyhlpr
Added Raspberry Pi 3 model support
r94 make -C "${KERNEL_DIR}" -j${KERNEL_THREADS} ARCH="${KERNEL_ARCH}" CROSS_COMPILE="${CROSS_COMPILE}" zImage modules dtbs
Jan Wagner
Added: KERNELSRC_PREBUILT, KERNELSRC_ rename, fix-quotes
r75 fi
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56
Jan Wagner
Added: KERNEL_SRCDIR, path-checks, code-cleanup
r72 # Check if kernel compilation was successful
drtyhlpr
Added Raspberry Pi 3 model support
r94 if [ ! -r "${KERNEL_DIR}/arch/${KERNEL_ARCH}/boot/zImage" ] ; then
Jan Wagner
Added: KERNELSRC_PREBUILT, KERNELSRC_ rename, fix-quotes
r75 echo "error: kernel compilation failed! (zImage not found)"
Jan Wagner
Added: KERNEL_SRCDIR, path-checks, code-cleanup
r72 cleanup
exit 1
fi
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56 # Install kernel modules
Jan Wagner
Added: ENABLE_REDUCE - down to 160MB used space,fix-resolve,fix-machineid
r73 if [ "$ENABLE_REDUCE" = true ] ; then
drtyhlpr
Added Raspberry Pi 3 model support
r94 make -C "${KERNEL_DIR}" ARCH="${KERNEL_ARCH}" CROSS_COMPILE="${CROSS_COMPILE}" INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=../../.. modules_install
Jan Wagner
Added: ENABLE_REDUCE - down to 160MB used space,fix-resolve,fix-machineid
r73 else
drtyhlpr
Added Raspberry Pi 3 model support
r94 make -C "${KERNEL_DIR}" ARCH="${KERNEL_ARCH}" CROSS_COMPILE="${CROSS_COMPILE}" INSTALL_MOD_PATH=../../.. modules_install
Jan Wagner
Added: KERNELSRC_PREBUILT, KERNELSRC_ rename, fix-quotes
r75
# Install kernel firmware
drtyhlpr
Added Raspberry Pi 3 model support
r94 make -C "${KERNEL_DIR}" ARCH="${KERNEL_ARCH}" CROSS_COMPILE="${CROSS_COMPILE}" INSTALL_FW_PATH=../../../lib firmware_install
Jan Wagner
Added: ENABLE_REDUCE - down to 160MB used space,fix-resolve,fix-machineid
r73 fi
Filip Pytloun
Enhance kernel build by headers install, parallelism and cleanup
r60
# Install kernel headers
Jan Wagner
Added: KERNEL_REDUCE - less than 128MB used space, Added: REDUCE_ parameters
r76 if [ "$KERNEL_HEADERS" = true ] && [ "$KERNEL_REDUCE" = false ] ; then
drtyhlpr
Added Raspberry Pi 3 model support
r94 make -C "${KERNEL_DIR}" ARCH="${KERNEL_ARCH}" CROSS_COMPILE="${CROSS_COMPILE}" INSTALL_HDR_PATH=../.. headers_install
Filip Pytloun
Enhance kernel build by headers install, parallelism and cleanup
r60 fi
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56
Jan Wagner
Added: KERNELSRC_PREBUILT, KERNELSRC_ rename, fix-quotes
r75 # Prepare boot (firmware) directory
drtyhlpr
Added Raspberry Pi 3 model support
r94 mkdir "${BOOT_DIR}"
Jan Wagner
Added: KERNELSRC_PREBUILT, KERNELSRC_ rename, fix-quotes
r75
# Get kernel release version
drtyhlpr
Added Raspberry Pi 3 model support
r94 KERNEL_VERSION=`cat "${KERNEL_DIR}/include/config/kernel.release"`
Jan Wagner
Added: KERNELSRC_PREBUILT, KERNELSRC_ rename, fix-quotes
r75
# Copy kernel configuration file to the boot directory
drtyhlpr
Added Raspberry Pi 3 model support
r94 install_readonly "${KERNEL_DIR}/.config" "${R}/boot/config-${KERNEL_VERSION}"
Jan Wagner
Added: KERNELSRC_PREBUILT, KERNELSRC_ rename, fix-quotes
r75
# Copy dts and dtb device tree sources and binaries
drtyhlpr
Added Raspberry Pi 3 model support
r94 mkdir "${BOOT_DIR}/overlays"
install_readonly "${KERNEL_DIR}/arch/${KERNEL_ARCH}/boot/dts/"*.dtb "${BOOT_DIR}/"
install_readonly "${KERNEL_DIR}/arch/${KERNEL_ARCH}/boot/dts/overlays/"*.dtb* "${BOOT_DIR}/overlays/"
install_readonly "${KERNEL_DIR}/arch/${KERNEL_ARCH}/boot/dts/overlays/README" "${BOOT_DIR}/overlays/README"
Jan Wagner
fix: ENABLE_CRYPTFS -> UBOOT, SPLITFS, EXPANDROOT - cleanup
r82
if [ "$ENABLE_UBOOT" = false ] ; then
# Convert and copy zImage kernel to the boot directory
drtyhlpr
Added Raspberry Pi 3 model support
r94 "${KERNEL_DIR}/scripts/mkknlimg" "${KERNEL_DIR}/arch/${KERNEL_ARCH}/boot/zImage" "${BOOT_DIR}/${KERNEL_IMAGE}"
Jan Wagner
fix: ENABLE_CRYPTFS -> UBOOT, SPLITFS, EXPANDROOT - cleanup
r82 else
# Copy zImage kernel to the boot directory
drtyhlpr
Added Raspberry Pi 3 model support
r94 install_readonly "${KERNEL_DIR}/arch/${KERNEL_ARCH}/boot/zImage" "${BOOT_DIR}/${KERNEL_IMAGE}"
Jan Wagner
fix: ENABLE_CRYPTFS -> UBOOT, SPLITFS, EXPANDROOT - cleanup
r82 fi
Jan Wagner
spliting more files, fix-uboot, fix-fbturbo, fix-locale
r67
# Remove kernel sources
Jan Wagner
Added: KERNELSRC_PREBUILT, KERNELSRC_ rename, fix-quotes
r75 if [ "$KERNEL_REMOVESRC" = true ] ; then
drtyhlpr
Added Raspberry Pi 3 model support
r94 rm -fr "${KERNEL_DIR}"
Jan Wagner
spliting more files, fix-uboot, fix-fbturbo, fix-locale
r67 fi
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56
drtyhlpr
Added Raspberry Pi 3 model support
r94 if [ -n "$RPI_FIRMWARE_DIR" ] && [ -d "$RPI_FIRMWARE_DIR" ] ; then
Stephen A. Brandli
Added FIRMWAREDIR option to use local copy of firmware.
r83 # Install boot binaries from local directory
drtyhlpr
Added Raspberry Pi 3 model support
r94 cp ${RPI_FIRMWARE_DIR}/boot/bootcode.bin ${BOOT_DIR}/bootcode.bin
cp ${RPI_FIRMWARE_DIR}/boot/fixup.dat ${BOOT_DIR}/fixup.dat
cp ${RPI_FIRMWARE_DIR}/boot/fixup_cd.dat ${BOOT_DIR}/fixup_cd.dat
cp ${RPI_FIRMWARE_DIR}/boot/fixup_x.dat ${BOOT_DIR}/fixup_x.dat
cp ${RPI_FIRMWARE_DIR}/boot/start.elf ${BOOT_DIR}/start.elf
cp ${RPI_FIRMWARE_DIR}/boot/start_cd.elf ${BOOT_DIR}/start_cd.elf
cp ${RPI_FIRMWARE_DIR}/boot/start_x.elf ${BOOT_DIR}/start_x.elf
Stephen A. Brandli
Added FIRMWAREDIR option to use local copy of firmware.
r83 else
# Install latest boot binaries from raspberry/firmware github
drtyhlpr
Added Raspberry Pi 3 model support
r94 wget -q -O "${BOOT_DIR}/bootcode.bin" "${FIRMWARE_URL}/bootcode.bin"
wget -q -O "${BOOT_DIR}/fixup.dat" "${FIRMWARE_URL}/fixup.dat"
wget -q -O "${BOOT_DIR}/fixup_cd.dat" "${FIRMWARE_URL}/fixup_cd.dat"
wget -q -O "${BOOT_DIR}/fixup_x.dat" "${FIRMWARE_URL}/fixup_x.dat"
wget -q -O "${BOOT_DIR}/start.elf" "${FIRMWARE_URL}/start.elf"
wget -q -O "${BOOT_DIR}/start_cd.elf" "${FIRMWARE_URL}/start_cd.elf"
wget -q -O "${BOOT_DIR}/start_x.elf" "${FIRMWARE_URL}/start_x.elf"
Stephen A. Brandli
Added FIRMWAREDIR option to use local copy of firmware.
r83 fi
Jan Wagner
Added: ENABLE_CRYPTFS - encrypted rootfs, use-latest-bootloader, cp-cleanup
r77
Jan Wagner
code cleanup and even more spliting
r70 else # BUILD_KERNEL=false
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56 # Kernel installation
Jan Wagner
Added: KERNELSRC_PREBUILT, KERNELSRC_ rename, fix-quotes
r75 chroot_exec apt-get -qq -y --no-install-recommends install linux-image-"${COLLABORA_KERNEL}" raspberrypi-bootloader-nokernel
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56
# Install flash-kernel last so it doesn't try (and fail) to detect the platform in the chroot
chroot_exec apt-get -qq -y install flash-kernel
Jan Wagner
Added: ENABLE_CRYPTFS - encrypted rootfs, use-latest-bootloader, cp-cleanup
r77 # Check if kernel installation was successful
Jan Wagner
fix: ENABLE_CRYPTFS -> UBOOT, SPLITFS, EXPANDROOT - cleanup
r82 VMLINUZ="$(ls -1 ${R}/boot/vmlinuz-* | sort | tail -n 1)"
Jan Wagner
Added: ENABLE_CRYPTFS - encrypted rootfs, use-latest-bootloader, cp-cleanup
r77 if [ -z "$VMLINUZ" ] ; then
echo "error: kernel installation failed! (/boot/vmlinuz-* not found)"
cleanup
exit 1
fi
# Copy vmlinuz kernel to the boot directory
drtyhlpr
Added Raspberry Pi 3 model support
r94 install_readonly "${VMLINUZ}" "${BOOT_DIR}/${KERNEL_IMAGE}"
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56 fi
Jan Wagner
comment-cleanup, net-cleanup, size-calc-fix, split-more, menuconfig
r71 # Setup firmware boot cmdline
Vincent Knecht
Added ENABLE_SPLITFS option to produce distinct /boot/firmware and root images
r66 if [ "$ENABLE_SPLITFS" = true ] ; then
drtyhlpr
Added Debian stretch release support
r92 CMDLINE="dwc_otg.lpm_enable=0 root=/dev/sda1 rootfstype=ext4 rootflags=commit=100,data=writeback elevator=deadline rootwait console=tty1"
Vincent Knecht
Added ENABLE_SPLITFS option to produce distinct /boot/firmware and root images
r66 else
drtyhlpr
Added Debian stretch release support
r92 CMDLINE="dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2 rootfstype=ext4 rootflags=commit=100,data=writeback elevator=deadline rootwait console=tty1"
Vincent Knecht
Added ENABLE_SPLITFS option to produce distinct /boot/firmware and root images
r66 fi
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56
Jan Wagner
fix: ENABLE_CRYPTFS -> UBOOT, SPLITFS, EXPANDROOT - cleanup
r82 # Add encrypted root partition to cmdline.txt
if [ "$ENABLE_CRYPTFS" = true ] ; then
if [ "$ENABLE_SPLITFS" = true ] ; then
CMDLINE=$(echo ${CMDLINE} | sed "s/sda1/mapper\/${CRYPTFS_MAPPING} cryptdevice=\/dev\/sda1:${CRYPTFS_MAPPING}/")
else
CMDLINE=$(echo ${CMDLINE} | sed "s/mmcblk0p2/mapper\/${CRYPTFS_MAPPING} cryptdevice=\/dev\/mmcblk0p2:${CRYPTFS_MAPPING}/")
fi
fi
Jan Wagner
comment-cleanup, net-cleanup, size-calc-fix, split-more, menuconfig
r71 # Add serial console support
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56 if [ "$ENABLE_CONSOLE" = true ] ; then
CMDLINE="${CMDLINE} console=ttyAMA0,115200 kgdboc=ttyAMA0,115200"
fi
Jan Wagner
comment-cleanup, net-cleanup, size-calc-fix, split-more, menuconfig
r71 # Remove IPv6 networking support
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56 if [ "$ENABLE_IPV6" = false ] ; then
CMDLINE="${CMDLINE} ipv6.disable=1"
fi
drtyhlpr
Added Debian stretch release support
r92 # Automatically assign predictable network interface names
if [ "$ENABLE_IFNAMES" = false ] ; then
CMDLINE="${CMDLINE} net.ifnames=0"
else
CMDLINE="${CMDLINE} net.ifnames=1"
fi
# Set init to systemd if required by Debian release
if [ "$RELEASE" = "stretch" ] ; then
CMDLINE="${CMDLINE} init=/bin/systemd"
fi
Jan Wagner
comment-cleanup, net-cleanup, size-calc-fix, split-more, menuconfig
r71 # Install firmware boot cmdline
drtyhlpr
Added Raspberry Pi 3 model support
r94 echo "${CMDLINE}" > "${BOOT_DIR}/cmdline.txt"
Jan Wagner
Added: ENABLE_CRYPTFS - encrypted rootfs, use-latest-bootloader, cp-cleanup
r77
Jan Wagner
comment-cleanup, net-cleanup, size-calc-fix, split-more, menuconfig
r71 # Install firmware config
drtyhlpr
Added Raspberry Pi 3 model support
r94 install_readonly files/boot/config.txt "${BOOT_DIR}/config.txt"
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56
Jan Wagner
comment-cleanup, net-cleanup, size-calc-fix, split-more, menuconfig
r71 # Setup minimal GPU memory allocation size: 16MB (no X)
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56 if [ "$ENABLE_MINGPU" = true ] ; then
drtyhlpr
Added Raspberry Pi 3 model support
r94 echo "gpu_mem=16" >> "${BOOT_DIR}/config.txt"
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56 fi
Jan Wagner
Added: ENABLE_CRYPTFS - encrypted rootfs, use-latest-bootloader, cp-cleanup
r77 # Setup boot with initramfs
if [ "$ENABLE_INITRAMFS" = true ] ; then
drtyhlpr
Added Raspberry Pi 3 model support
r94 echo "initramfs initramfs-${KERNEL_VERSION} followkernel" >> "${BOOT_DIR}/config.txt"
fi
# Disable RPi3 Bluetooth and restore ttyAMA0 serial device
if [ "$RPI_MODEL" = 3 ] ; then
if [ "$ENABLE_CONSOLE" = true ] ; then
echo "dtoverlay=pi3-miniuart-bt" >> "${BOOT_DIR}/config.txt"
fi
Jan Wagner
Added: ENABLE_CRYPTFS - encrypted rootfs, use-latest-bootloader, cp-cleanup
r77 fi
Jan Wagner
comment-cleanup, net-cleanup, size-calc-fix, split-more, menuconfig
r71 # Create firmware configuration and cmdline symlinks
Jan Wagner
fix: ENABLE_CRYPTFS -> UBOOT, SPLITFS, EXPANDROOT - cleanup
r82 ln -sf firmware/config.txt "${R}/boot/config.txt"
ln -sf firmware/cmdline.txt "${R}/boot/cmdline.txt"
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56
Jan Wagner
comment-cleanup, net-cleanup, size-calc-fix, split-more, menuconfig
r71 # Install and setup kernel modules to load at boot
Jan Wagner
fix: ENABLE_CRYPTFS -> UBOOT, SPLITFS, EXPANDROOT - cleanup
r82 mkdir -p "${R}/lib/modules-load.d/"
install_readonly files/modules/rpi2.conf "${R}/lib/modules-load.d/rpi2.conf"
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56
Jan Wagner
comment-cleanup, net-cleanup, size-calc-fix, split-more, menuconfig
r71 # Load hardware random module at boot
Jan Wagner
fix: ENABLE_CRYPTFS -> UBOOT, SPLITFS, EXPANDROOT - cleanup
r82 if [ "$ENABLE_HWRANDOM" = true ] && [ "$BUILD_KERNEL" = false ] ; then
sed -i "s/^# bcm2708_rng/bcm2708_rng/" "${R}/lib/modules-load.d/rpi2.conf"
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56 fi
Jan Wagner
comment-cleanup, net-cleanup, size-calc-fix, split-more, menuconfig
r71 # Load sound module at boot
if [ "$ENABLE_SOUND" = true ] ; then
Jan Wagner
fix: ENABLE_CRYPTFS -> UBOOT, SPLITFS, EXPANDROOT - cleanup
r82 sed -i "s/^# snd_bcm2835/snd_bcm2835/" "${R}/lib/modules-load.d/rpi2.conf"
Jan Wagner
comment-cleanup, net-cleanup, size-calc-fix, split-more, menuconfig
r71 fi
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56
Jan Wagner
comment-cleanup, net-cleanup, size-calc-fix, split-more, menuconfig
r71 # Install kernel modules blacklist
drtyhlpr
Added Raspberry Pi 3 model support
r94 mkdir -p "${ETC_DIR}/modprobe.d/"
install_readonly files/modules/raspi-blacklist.conf "${ETC_DIR}/modprobe.d/raspi-blacklist.conf"
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56
Jan Wagner
comment-cleanup, net-cleanup, size-calc-fix, split-more, menuconfig
r71 # Install and setup fstab
drtyhlpr
Added Raspberry Pi 3 model support
r94 install_readonly files/mount/fstab "${ETC_DIR}/fstab"
Jan Wagner
Added: ENABLE_CRYPTFS - encrypted rootfs, use-latest-bootloader, cp-cleanup
r77
# Add usb/sda disk root partition to fstab
Jan Wagner
fix: ENABLE_CRYPTFS -> UBOOT, SPLITFS, EXPANDROOT - cleanup
r82 if [ "$ENABLE_SPLITFS" = true ] && [ "$ENABLE_CRYPTFS" = false ] ; then
drtyhlpr
Added Raspberry Pi 3 model support
r94 sed -i "s/mmcblk0p2/sda1/" "${ETC_DIR}/fstab"
Jan Wagner
Added: ENABLE_CRYPTFS - encrypted rootfs, use-latest-bootloader, cp-cleanup
r77 fi
# Add encrypted root partition to fstab and crypttab
if [ "$ENABLE_CRYPTFS" = true ] ; then
# Replace fstab root partition with encrypted partition mapping
drtyhlpr
Added Raspberry Pi 3 model support
r94 sed -i "s/mmcblk0p2/mapper\/${CRYPTFS_MAPPING}/" "${ETC_DIR}/fstab"
Jan Wagner
Added: ENABLE_CRYPTFS - encrypted rootfs, use-latest-bootloader, cp-cleanup
r77
# Add encrypted partition to crypttab and fstab
drtyhlpr
Added Raspberry Pi 3 model support
r94 install_readonly files/mount/crypttab "${ETC_DIR}/crypttab"
echo "${CRYPTFS_MAPPING} /dev/mmcblk0p2 none luks" >> "${ETC_DIR}/crypttab"
Jan Wagner
fix: ENABLE_CRYPTFS -> UBOOT, SPLITFS, EXPANDROOT - cleanup
r82
if [ "$ENABLE_SPLITFS" = true ] ; then
# Add usb/sda disk to crypttab
drtyhlpr
Added Raspberry Pi 3 model support
r94 sed -i "s/mmcblk0p2/sda1/" "${ETC_DIR}/crypttab"
Jan Wagner
fix: ENABLE_CRYPTFS -> UBOOT, SPLITFS, EXPANDROOT - cleanup
r82 fi
Jan Wagner
Added: ENABLE_CRYPTFS - encrypted rootfs, use-latest-bootloader, cp-cleanup
r77 fi
# Generate initramfs file
if [ "$ENABLE_INITRAMFS" = true ] ; then
if [ "$ENABLE_CRYPTFS" = true ] ; then
Jan Wagner
fix: ENABLE_CRYPTFS -> UBOOT, SPLITFS, EXPANDROOT - cleanup
r82 # Include initramfs scripts to auto expand encrypted root partition
if [ "$EXPANDROOT" = true ] ; then
drtyhlpr
Added Raspberry Pi 3 model support
r94 install_exec files/initramfs/expand_encrypted_rootfs "${ETC_DIR}/initramfs-tools/scripts/init-premount/expand_encrypted_rootfs"
install_exec files/initramfs/expand-premount "${ETC_DIR}/initramfs-tools/scripts/local-premount/expand-premount"
install_exec files/initramfs/expand-tools "${ETC_DIR}/initramfs-tools/hooks/expand-tools"
Jan Wagner
fix: ENABLE_CRYPTFS -> UBOOT, SPLITFS, EXPANDROOT - cleanup
r82 fi
# Disable SSHD inside initramfs
drtyhlpr
Added Raspberry Pi 3 model support
r94 printf "#\n# DROPBEAR: [ y | n ]\n#\n\nDROPBEAR=n\n" >> "${ETC_DIR}/initramfs-tools/initramfs.conf"
Jan Wagner
fix: ENABLE_CRYPTFS -> UBOOT, SPLITFS, EXPANDROOT - cleanup
r82
Jan Wagner
Added: ENABLE_CRYPTFS - encrypted rootfs, use-latest-bootloader, cp-cleanup
r77 # Dummy mapping required by mkinitramfs
echo "0 1 crypt $(echo ${CRYPTFS_CIPHER} | cut -d ':' -f 1) ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0 7:0 4096" | chroot_exec dmsetup create "${CRYPTFS_MAPPING}"
# Generate initramfs with encrypted root partition support
chroot_exec mkinitramfs -o "/boot/firmware/initramfs-${KERNEL_VERSION}" "${KERNEL_VERSION}"
# Remove dummy mapping
chroot_exec cryptsetup close "${CRYPTFS_MAPPING}"
else
# Generate initramfs without encrypted root partition support
chroot_exec mkinitramfs -o "/boot/firmware/initramfs-${KERNEL_VERSION}" "${KERNEL_VERSION}"
fi
Vincent Knecht
Added ENABLE_SPLITFS option to produce distinct /boot/firmware and root images
r66 fi
Filip Pytloun
Refactor: split bootstrap actions and allow custom
r56
Jan Wagner
comment-cleanup, net-cleanup, size-calc-fix, split-more, menuconfig
r71 # Install sysctl.d configuration files
drtyhlpr
Added Raspberry Pi 3 model support
r94 install_readonly files/sysctl.d/81-rpi-vm.conf "${ETC_DIR}/sysctl.d/81-rpi-vm.conf"