##// END OF EJS Templates
PATCHES for:...
PATCHES for: RPI4 Debian Bullseye Added and removed kernel options QEMU with 64bit kernel doenst fail anymore (untested) No more compile error on bluetooth firmware download Kernel bump from 4.14 to 4.19 flex,bison and libssl-dev required to build kernel

Fichier de la dernière révision:

r665:c4237fcbc4c6
r665:c4237fcbc4c6
Show More
15-rpi-config.sh
304 lines | 11.2 KiB | application/x-sh | BashLexer
drtyhlpr
Updated: Moved RPi2/3 related configs to new file 14-rpi-config.sh
r128 #
# Setup RPi2/3 config and cmdline
#
# Load utility functions
. ./functions.sh
Unknown
kernel features + nexmon monitor mode wlan patch(kali-kernel) with RPI3,RPI3B+ firmware patch...
r502 if [ -n "$RPI_FIRMWARE_DIR" ] && [ -d "$RPI_FIRMWARE_DIR" ] ; then
# Install boot binaries from local directory
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
else
# Create temporary directory for boot binaries
temp_dir=$(as_nobody mktemp -d)
# Install latest boot binaries from raspberry/firmware github
as_nobody wget -q -O "${temp_dir}/bootcode.bin" "${FIRMWARE_URL}/bootcode.bin"
as_nobody wget -q -O "${temp_dir}/fixup.dat" "${FIRMWARE_URL}/fixup.dat"
as_nobody wget -q -O "${temp_dir}/fixup_cd.dat" "${FIRMWARE_URL}/fixup_cd.dat"
as_nobody wget -q -O "${temp_dir}/fixup_x.dat" "${FIRMWARE_URL}/fixup_x.dat"
as_nobody wget -q -O "${temp_dir}/start.elf" "${FIRMWARE_URL}/start.elf"
as_nobody wget -q -O "${temp_dir}/start_cd.elf" "${FIRMWARE_URL}/start_cd.elf"
as_nobody wget -q -O "${temp_dir}/start_x.elf" "${FIRMWARE_URL}/start_x.elf"
# Move downloaded boot binaries
mv "${temp_dir}/"* "${BOOT_DIR}/"
# Remove temporary directory for boot binaries
rm -fr "${temp_dir}"
# Set permissions of the boot binaries
chown -R root:root "${BOOT_DIR}"
chmod -R 600 "${BOOT_DIR}"
drtyhlpr
Updated: Moved RPi2/3 related configs to new file 14-rpi-config.sh
r128 fi
# Setup firmware boot cmdline
Unknown
USBBOOT is Back...
r568 if [ "$ENABLE_USBBOOT" = true ] ; then
CMDLINE="dwc_otg.lpm_enable=0 root=/dev/sda2 rootfstype=ext4 rootflags=commit=100,data=writeback elevator=deadline console=tty1 rootwait init=/bin/systemd"
drtyhlpr
Updated: Moved RPi2/3 related configs to new file 14-rpi-config.sh
r128 else
Unknown
USBBOOT is Back...
r568 if [ "$ENABLE_SPLITFS" = true ] ; then
CMDLINE="dwc_otg.lpm_enable=0 root=/dev/sda1 rootfstype=ext4 rootflags=commit=100,data=writeback elevator=deadline console=tty1 rootwait init=/bin/systemd"
else
CMDLINE="dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2 rootfstype=ext4 rootflags=commit=100,data=writeback elevator=deadline console=tty1 rootwait init=/bin/systemd"
fi
drtyhlpr
Updated: Moved RPi2/3 related configs to new file 14-rpi-config.sh
r128 fi
# Add encrypted root partition to cmdline.txt
if [ "$ENABLE_CRYPTFS" = true ] ; then
if [ "$ENABLE_SPLITFS" = true ] ; then
Unknown
https://www.shellcheck.net/...
r336 CMDLINE=$(echo "${CMDLINE}" | sed "s/sda1/mapper\/${CRYPTFS_MAPPING} cryptdevice=\/dev\/sda1:${CRYPTFS_MAPPING}/")
drtyhlpr
Updated: Moved RPi2/3 related configs to new file 14-rpi-config.sh
r128 else
Unknown
USBBOOT is Back...
r568 if [ "$ENABLE_USBBOOT" = true ] ; then
CMDLINE=$(echo "${CMDLINE}" | sed "s/sda2/mapper\/${CRYPTFS_MAPPING} cryptdevice=\/dev\/sda2:${CRYPTFS_MAPPING}/")
else
CMDLINE=$(echo "${CMDLINE}" | sed "s/mmcblk0p2/mapper\/${CRYPTFS_MAPPING} cryptdevice=\/dev\/mmcblk0p2:${CRYPTFS_MAPPING}/")
fi
drtyhlpr
Updated: Moved RPi2/3 related configs to new file 14-rpi-config.sh
r128 fi
fi
Unknown
Dropbear initramfs...
r501 # Enable Kernel messages on standard output
Unknown
Bluetooth and serial...
r451 if [ "$ENABLE_PRINTK" = true ] ; then
install_readonly files/sysctl.d/83-rpi-printk.conf "${ETC_DIR}/sysctl.d/83-rpi-printk.conf"
fi
Unknown
USBBOOT is Back...
r568 # Enable Kernel messages on standard output
if [ "$KERNEL_SECURITY" = true ] ; then
install_readonly files/sysctl.d/84-rpi-ASLR.conf "${ETC_DIR}/sysctl.d/84-rpi-ASLR.conf"
fi
Unknown
Dropbear initramfs...
r501 # Install udev rule for serial alias - serial0 = console serial1=bluetooth
Unknown
Bluetooth and serial...
r451 install_readonly files/etc/99-com.rules "${LIB_DIR}/udev/rules.d/99-com.rules"
Unknown
Dropbear initramfs...
r501 # Remove IPv6 networking support
if [ "$ENABLE_IPV6" = false ] ; then
CMDLINE="${CMDLINE} ipv6.disable=1"
fi
# Automatically assign predictable network interface names
if [ "$ENABLE_IFNAMES" = false ] ; then
CMDLINE="${CMDLINE} net.ifnames=0"
else
CMDLINE="${CMDLINE} net.ifnames=1"
fi
drtyhlpr
Added: ENABLE_SPLASH,LOGO, and SILENT_BOOT
r539 # Disable Raspberry Pi console logo
if [ "$ENABLE_LOGO" = false ] ; then
CMDLINE="${CMDLINE} logo.nologo"
fi
# Strictly limit verbosity of boot up console messages
if [ "$ENABLE_SILENT_BOOT" = true ] ; then
CMDLINE="${CMDLINE} quiet loglevel=0 rd.systemd.show_status=auto rd.udev.log_priority=0"
fi
Unknown
Dropbear initramfs...
r501 # Install firmware config
install_readonly files/boot/config.txt "${BOOT_DIR}/config.txt"
drtyhlpr
Added: ENABLE_SPLASH,LOGO, and SILENT_BOOT
r539 # Disable Raspberry Pi console logo
if [ "$ENABLE_SLASH" = false ] ; then
echo "disable_splash=1" >> "${BOOT_DIR}/config.txt"
fi
Unknown
Dropbear initramfs...
r501 # Locks CPU frequency at maximum
if [ "$ENABLE_TURBO" = true ] ; then
echo "force_turbo=1" >> "${BOOT_DIR}/config.txt"
# helps to avoid sdcard corruption when force_turbo is enabled.
echo "boot_delay=1" >> "${BOOT_DIR}/config.txt"
fi
Unknown
PATCHES for:...
r665 if [ "$RPI_MODEL" = 0 ] || [ "$RPI_MODEL" = 3 ] || [ "$RPI_MODEL" = 3P ] || [ "$RPI_MODEL" = 4 ]; then
Unknown
- remove some whitespace...
r521
Unknown
Bluetooth and serial...
r451 # Bluetooth enabled
if [ "$ENABLE_BLUETOOTH" = true ] ; then
# Create temporary directory for Bluetooth sources
temp_dir=$(as_nobody mktemp -d)
# Fetch Bluetooth sources
as_nobody git -C "${temp_dir}" clone "${BLUETOOTH_URL}"
# Copy downloaded sources
mv "${temp_dir}/pi-bluetooth" "${R}/tmp/"
# Set permissions
chown -R root:root "${R}/tmp/pi-bluetooth"
Unknown
PATCHES for:...
r665
# Bluetooth firmware from arch aur https://aur.archlinux.org/packages/pi-bluetooth/
wget -q -O "${R}/tmp/pi-bluetooth/LICENCE.broadcom_bcm43xx" https://aur.archlinux.org/cgit/aur.git/plain/LICENCE.broadcom_bcm43xx?h=pi-bluetooth
wget -q -O "${R}/tmp/pi-bluetooth/BCM43430A1.hcd" https://raw.githubusercontent.com/RPi-Distro/bluez-firmware/master/broadcom/BCM43430A1.hcd
Unknown
Bluetooth and serial...
r451
# Install tools
install_readonly "${R}/tmp/pi-bluetooth/usr/bin/btuart" "${R}/usr/bin/btuart"
install_readonly "${R}/tmp/pi-bluetooth/usr/bin/bthelper" "${R}/usr/bin/bthelper"
Unknown
- remove some whitespace...
r521
Unknown
Dropbear initramfs...
r501 # make scripts executable
chmod +x "${R}/usr/bin/bthelper"
chmod +x "${R}/usr/bin/btuart"
Unknown
Bluetooth and serial...
r451
# Install bluetooth udev rule
install_readonly "${R}/tmp/pi-bluetooth/lib/udev/rules.d/90-pi-bluetooth.rules" "${LIB_DIR}/udev/rules.d/90-pi-bluetooth.rules"
# Install Firmware Flash file and apropiate licence
mkdir -p "$BLUETOOTH_FIRMWARE_DIR"
install_readonly "${R}/tmp/pi-bluetooth/LICENCE.broadcom_bcm43xx" "${BLUETOOTH_FIRMWARE_DIR}/LICENCE.broadcom_bcm43xx"
Michał Ciołek
Fix filename for BCM43430A1.hcd
r587 install_readonly "${R}/tmp/pi-bluetooth/BCM43430A1.hcd" "${BLUETOOTH_FIRMWARE_DIR}/BCM43430A1.hcd"
Unknown
Bluetooth and serial...
r451 install_readonly "${R}/tmp/pi-bluetooth/debian/pi-bluetooth.bthelper@.service" "${ETC_DIR}/systemd/system/pi-bluetooth.bthelper@.service"
install_readonly "${R}/tmp/pi-bluetooth/debian/pi-bluetooth.hciuart.service" "${ETC_DIR}/systemd/system/pi-bluetooth.hciuart.service"
Unknown
- remove some whitespace...
r521
Unknown
Dropbear initramfs...
r501 # Remove temporary directories
Unknown
Bluetooth and serial...
r451 rm -fr "${temp_dir}"
Unknown
Dropbear initramfs...
r501 rm -fr "${R}"/tmp/pi-bluetooth
Unknown
- remove some whitespace...
r521
Unknown
Bluetooth and serial...
r451 # Switch Pi3 Bluetooth function to use the mini-UART (ttyS0) and restore UART0/ttyAMA0 over GPIOs 14 & 15. Slow Bluetooth and slow cpu. Use /dev/ttyS0 instead of /dev/ttyAMA0
if [ "$ENABLE_MINIUART_OVERLAY" = true ] ; then
# set overlay to swap ttyAMA0 and ttyS0
echo "dtoverlay=pi3-miniuart-bt" >> "${BOOT_DIR}/config.txt"
if [ "$ENABLE_TURBO" = false ] ; then
Unknown
formating and dropbear fix for static ip
r569 echo "core_freq=250" >> "${BOOT_DIR}/config.txt"
fi
Unknown
Bluetooth and serial...
r451 fi
Unknown
- remove some whitespace...
r521
Unknown
Dropbear initramfs...
r501 # Activate services
chroot_exec systemctl enable pi-bluetooth.hciuart.service
Unknown
- remove some whitespace...
r521
Unknown
Bluetooth and serial...
r451 else # if ENABLE_BLUETOOTH = false
# set overlay to disable bluetooth
echo "dtoverlay=pi3-disable-bt" >> "${BOOT_DIR}/config.txt"
fi # ENABLE_BLUETOOTH end
fi
# may need sudo systemctl disable hciuart
drtyhlpr
Updated: Moved RPi2/3 related configs to new file 14-rpi-config.sh
r128 if [ "$ENABLE_CONSOLE" = true ] ; then
Unknown
Bluetooth and serial...
r451 echo "enable_uart=1" >> "${BOOT_DIR}/config.txt"
# add string to cmdline
CMDLINE="${CMDLINE} console=serial0,115200"
Unknown
formating and dropbear fix for static ip
r569
if [ "$RPI_MODEL" = 3 ] || [ "$RPI_MODEL" = 3P ]|| [ "$RPI_MODEL" = 0 ]; then
# if force_turbo didn't lock cpu at high speed, lock it at low speed (XOR logic) or miniuart will be broken
if [ "$ENABLE_TURBO" = false ] ; then
echo "core_freq=250" >> "${BOOT_DIR}/config.txt"
fi
fi
Unknown
- remove some whitespace...
r521
Unknown
Bluetooth and serial...
r451 # Enable serial console systemd style
Unknown
formating and dropbear fix for static ip
r569 chroot_exec systemctl enable serial-getty@serial0.service
Unknown
Bluetooth and serial...
r451 else
echo "enable_uart=0" >> "${BOOT_DIR}/config.txt"
drtyhlpr
Updated: Moved RPi2/3 related configs to new file 14-rpi-config.sh
r128 fi
Yannick Schinko
Disable dphys-swapfile for the first boot
r577 # Disable dphys-swapfile service. Will get enabled on first boot
if [ "$ENABLE_DPHYSSWAP" = true ] ; then
chroot_exec systemctl disable dphys-swapfile
fi
Unknown
kernel features + nexmon monitor mode wlan patch(kali-kernel) with RPI3,RPI3B+ firmware patch...
r502 if [ "$ENABLE_SYSTEMDSWAP" = true ] ; then
# Create temporary directory for systemd-swap sources
temp_dir=$(as_nobody mktemp -d)
drtyhlpr
Updated: Moved RPi2/3 related configs to new file 14-rpi-config.sh
r128
Unknown
kernel features + nexmon monitor mode wlan patch(kali-kernel) with RPI3,RPI3B+ firmware patch...
r502 # Fetch systemd-swap sources
as_nobody git -C "${temp_dir}" clone "${SYSTEMDSWAP_URL}"
# Copy downloaded systemd-swap sources
mv "${temp_dir}/systemd-swap" "${R}/tmp/"
# Change into downloaded src dir
cd "${R}/tmp/systemd-swap" || exit
Unknown
PATCHES for:...
r665
# Get Verion
VERSION=$(git tag | tail -n 1)
#sed -i "s/DEB_NAME=.*/DEB_NAME=systemd-swap_all/g" "${R}/tmp/systemd-swap/package.sh"
Unknown
kernel features + nexmon monitor mode wlan patch(kali-kernel) with RPI3,RPI3B+ firmware patch...
r502 # Build package
Unknown
formating and dropbear fix for static ip
r569 bash ./package.sh debian
Unknown
kernel features + nexmon monitor mode wlan patch(kali-kernel) with RPI3,RPI3B+ firmware patch...
r502
Unknown
formating and dropbear fix for static ip
r569 # Change back into script root dir
cd "${WORKDIR}" || exit
Unknown
kernel features + nexmon monitor mode wlan patch(kali-kernel) with RPI3,RPI3B+ firmware patch...
r502
Unknown
formating and dropbear fix for static ip
r569 # Set permissions of the systemd-swap sources
chown -R root:root "${R}/tmp/systemd-swap"
# Install package - IMPROVE AND MAKE IT POSSIBLE WITHOUT VERSION NR.
Unknown
PATCHES for:...
r665 chroot_exec dpkg -i /tmp/systemd-swap/systemd-swap_"$VERSION"_all.deb
Unknown
formating and dropbear fix for static ip
r569
Unknown
kernel features + nexmon monitor mode wlan patch(kali-kernel) with RPI3,RPI3B+ firmware patch...
r502 # Enable service
chroot_exec systemctl enable systemd-swap
Unknown
formating and dropbear fix for static ip
r569 # Remove temporary directory for systemd-swap sources
rm -fr "${temp_dir}"
drtyhlpr
Updated: Moved RPi2/3 related configs to new file 14-rpi-config.sh
r128 else
Unknown
kernel features + nexmon monitor mode wlan patch(kali-kernel) with RPI3,RPI3B+ firmware patch...
r502 # Enable ZSWAP in cmdline if systemd-swap is not used
if [ "$KERNEL_ZSWAP" = true ] ; then
Unknown
formating and dropbear fix for static ip
r569 CMDLINE="${CMDLINE} zswap.enabled=1 zswap.max_pool_percent=25 zswap.compressor=lz4"
Unknown
kernel features + nexmon monitor mode wlan patch(kali-kernel) with RPI3,RPI3B+ firmware patch...
r502 fi
drtyhlpr
Updated: Moved RPi2/3 related configs to new file 14-rpi-config.sh
r128 fi
Unknown
formating and dropbear fix for static ip
r569 if [ "$KERNEL_SECURITY" = true ] ; then
CMDLINE="${CMDLINE} apparmor=1 security=apparmor"
fi
drtyhlpr
Updated: Moved RPi2/3 related configs to new file 14-rpi-config.sh
r128
# Install firmware boot cmdline
echo "${CMDLINE}" > "${BOOT_DIR}/cmdline.txt"
# Setup minimal GPU memory allocation size: 16MB (no X)
if [ "$ENABLE_MINGPU" = true ] ; then
echo "gpu_mem=16" >> "${BOOT_DIR}/config.txt"
fi
# Setup boot with initramfs
if [ "$ENABLE_INITRAMFS" = true ] ; then
echo "initramfs initramfs-${KERNEL_VERSION} followkernel" >> "${BOOT_DIR}/config.txt"
fi
# Create firmware configuration and cmdline symlinks
ln -sf firmware/config.txt "${R}/boot/config.txt"
ln -sf firmware/cmdline.txt "${R}/boot/cmdline.txt"
# Install and setup kernel modules to load at boot
Unknown
add bluetooth firmware and systemd service...
r368 mkdir -p "${LIB_DIR}/modules-load.d/"
install_readonly files/modules/rpi2.conf "${LIB_DIR}/modules-load.d/rpi2.conf"
drtyhlpr
Updated: Moved RPi2/3 related configs to new file 14-rpi-config.sh
r128
# Load hardware random module at boot
if [ "$ENABLE_HWRANDOM" = true ] && [ "$BUILD_KERNEL" = false ] ; then
Unknown
add bluetooth firmware and systemd service...
r368 sed -i "s/^# bcm2708_rng/bcm2708_rng/" "${LIB_DIR}/modules-load.d/rpi2.conf"
drtyhlpr
Updated: Moved RPi2/3 related configs to new file 14-rpi-config.sh
r128 fi
# Load sound module at boot
if [ "$ENABLE_SOUND" = true ] ; then
Unknown
add bluetooth firmware and systemd service...
r368 sed -i "s/^# snd_bcm2835/snd_bcm2835/" "${LIB_DIR}/modules-load.d/rpi2.conf"
drtyhlpr
Updated: Dropping privileges, chroot compiler install, dropbear sshd config
r142 else
echo "dtparam=audio=off" >> "${BOOT_DIR}/config.txt"
drtyhlpr
Updated: Moved RPi2/3 related configs to new file 14-rpi-config.sh
r128 fi
# Enable I2C interface
if [ "$ENABLE_I2C" = true ] ; then
echo "dtparam=i2c_arm=on" >> "${BOOT_DIR}/config.txt"
Unknown
add bluetooth firmware and systemd service...
r368 sed -i "s/^# i2c-bcm2708/i2c-bcm2708/" "${LIB_DIR}/modules-load.d/rpi2.conf"
sed -i "s/^# i2c-dev/i2c-dev/" "${LIB_DIR}/modules-load.d/rpi2.conf"
drtyhlpr
Updated: Moved RPi2/3 related configs to new file 14-rpi-config.sh
r128 fi
# Enable SPI interface
if [ "$ENABLE_SPI" = true ] ; then
echo "dtparam=spi=on" >> "${BOOT_DIR}/config.txt"
Unknown
add bluetooth firmware and systemd service...
r368 echo "spi-bcm2708" >> "${LIB_DIR}/modules-load.d/rpi2.conf"
Unknown
Fixing SPI on RPI 3B+
r274 if [ "$RPI_MODEL" = 3 ] || [ "$RPI_MODEL" = 3P ]; then
Unknown
add bluetooth firmware and systemd service...
r368 sed -i "s/spi-bcm2708/spi-bcm2835/" "${LIB_DIR}/modules-load.d/rpi2.conf"
drtyhlpr
Updated: Moved RPi2/3 related configs to new file 14-rpi-config.sh
r128 fi
fi
drtyhlpr
Added: Disable RPi2/3 under-volt warnings (from michaelfranzl PR)
r130 # Disable RPi2/3 under-voltage warnings
Unknown
https://www.shellcheck.net/...
r336 if [ -n "$DISABLE_UNDERVOLT_WARNINGS" ] ; then
drtyhlpr
Added: Disable RPi2/3 under-volt warnings (from michaelfranzl PR)
r130 echo "avoid_warnings=${DISABLE_UNDERVOLT_WARNINGS}" >> "${BOOT_DIR}/config.txt"
fi
drtyhlpr
Updated: Moved RPi2/3 related configs to new file 14-rpi-config.sh
r128 # Install kernel modules blacklist
mkdir -p "${ETC_DIR}/modprobe.d/"
install_readonly files/modules/raspi-blacklist.conf "${ETC_DIR}/modprobe.d/raspi-blacklist.conf"
# Install sysctl.d configuration files
install_readonly files/sysctl.d/81-rpi-vm.conf "${ETC_DIR}/sysctl.d/81-rpi-vm.conf"