diff --git a/build.sh b/build.sh index 08b0c26..16afc8f 100755 --- a/build.sh +++ b/build.sh @@ -1,6 +1,7 @@ #!/bin/sh -BUILDROOT=buildroot-2019.11.1 +OUTPUT_DIRECTORY="output" +BUILDROOT=buildroot-2024.08.1 # Supported targets: cmhybrid (supports cm1 cm3), cm4 TARGET=cm4 @@ -22,7 +23,8 @@ fi # # Build everything # -make -C $BUILDROOT +CPU_COUNT=$(nproc) +make -C $BUILDROOT "-j${CPU_COUNT}" # # Copy the files we are interested in from buildroot's "output/images" directory @@ -30,19 +32,17 @@ make -C $BUILDROOT # # initramfs file build by buildroot containing the root file system -cp $BUILDROOT/output/images/rootfs.cpio.xz output/scriptexecute.img +cp $BUILDROOT/output/images/rootfs.cpio.xz "${OUTPUT_DIRECTORY}/scriptexecute.img" # Linux kernel -cp $BUILDROOT/output/images/zImage output/kernel.img +cp $BUILDROOT/output/images/zImage "${OUTPUT_DIRECTORY}/kernel.img" # Raspberry Pi firmware files -cp $BUILDROOT/output/images/rpi-firmware/*.elf output -cp $BUILDROOT/output/images/rpi-firmware/*.dat output -cp $BUILDROOT/output/images/rpi-firmware/bootcode.bin output -cp $BUILDROOT/output/images/*.dtb output +cp $BUILDROOT/output/images/rpi-firmware/* "${OUTPUT_DIRECTORY}" +cp $BUILDROOT/output/images/*.dtb "${OUTPUT_DIRECTORY}" # Uncomment if using dwc2 -mkdir -p output/overlays -mv output/dwc2-overlay.dtb output/overlays/dwc2.dtbo -mv output/spi-gpio40-45-overlay.dtb output/overlays/spi-gpio40-45.dtbo +mkdir -p "${OUTPUT_DIRECTORY}/overlays" +mv "${OUTPUT_DIRECTORY}/dwc2-overlay.dtb" "${OUTPUT_DIRECTORY}/overlays/dwc2.dtbo" +mv "${OUTPUT_DIRECTORY}/spi-gpio40-45-overlay.dtb" "${OUTPUT_DIRECTORY}/overlays/spi-gpio40-45.dtbo" echo echo Build complete. Files are in output folder. diff --git a/buildroot-2019.11.1.tar.gz b/buildroot-2019.11.1.tar.gz deleted file mode 100644 index 4b5f627..0000000 Binary files a/buildroot-2019.11.1.tar.gz and /dev/null differ diff --git a/buildroot-2024.08.1.tar.gz b/buildroot-2024.08.1.tar.gz new file mode 100644 index 0000000..fbb7504 Binary files /dev/null and b/buildroot-2024.08.1.tar.gz differ diff --git a/scriptexecute/Config.in b/scriptexecute/Config.in index 5d0405e..d28dd98 100644 --- a/scriptexecute/Config.in +++ b/scriptexecute/Config.in @@ -1 +1 @@ -source "$BR2_EXTERNAL_SCRIPTEXECUTE_PATH/package/rpi-firmware-custom/Config.in" +source "$BR2_EXTERNAL_SCRIPTEXECUTE_PATH/package/rpi-pinctrl/Config.in" diff --git a/scriptexecute/board/kernelconfig-scriptexecute.fragment b/scriptexecute/board/kernelconfig-scriptexecute.fragment index 5fe4536..c12aae4 100644 --- a/scriptexecute/board/kernelconfig-scriptexecute.fragment +++ b/scriptexecute/board/kernelconfig-scriptexecute.fragment @@ -49,7 +49,6 @@ CONFIG_I2C_BCM2708=y CONFIG_I2C_BCM2835=y CONFIG_I2C_MUX=y CONFIG_I2C_MUX_PINCTRL=y -CONFIG_GPIO_SYSFS=y CONFIG_SPI_SPIDEV=y CONFIG_SPI_BCM2835=y CONFIG_EEPROM_AT24=y diff --git a/scriptexecute/board/overlay/etc/init.d/S99scriptexec b/scriptexecute/board/overlay/etc/init.d/S99scriptexec index f529205..6ccfeac 100755 --- a/scriptexecute/board/overlay/etc/init.d/S99scriptexec +++ b/scriptexecute/board/overlay/etc/init.d/S99scriptexec @@ -126,8 +126,7 @@ case "$1" in JUMPER="" for GPIO in 5 13 21 do - echo "$GPIO" >/sys/class/gpio/export - GPIOVALUE=`cat /sys/class/gpio/gpio$GPIO/value` + GPIOVALUE=`pinctrl lev $GPIO` JUMPER="$JUMPER$GPIOVALUE" done fi diff --git a/output/cmdline.txt b/scriptexecute/boot-configs/cmdline.txt similarity index 100% rename from output/cmdline.txt rename to scriptexecute/boot-configs/cmdline.txt diff --git a/output/cmdline.txt.ipv6ll b/scriptexecute/boot-configs/cmdline.txt.ipv6ll similarity index 100% rename from output/cmdline.txt.ipv6ll rename to scriptexecute/boot-configs/cmdline.txt.ipv6ll diff --git a/output/config.txt b/scriptexecute/boot-configs/config.txt similarity index 100% rename from output/config.txt rename to scriptexecute/boot-configs/config.txt diff --git a/scriptexecute/configs/scriptexecute_cm4_defconfig b/scriptexecute/configs/scriptexecute_cm4_defconfig index 581d451..6aaacea 100644 --- a/scriptexecute/configs/scriptexecute_cm4_defconfig +++ b/scriptexecute/configs/scriptexecute_cm4_defconfig @@ -1,6 +1,6 @@ BR2_arm=y BR2_arm1176jzf_s=y -BR2_KERNEL_HEADERS_4_19=y +BR2_KERNEL_HEADERS_6_6=y BR2_TOOLCHAIN_BUILDROOT_LOCALE=y # BR2_UCLIBC_INSTALL_UTILS is not set BR2_TOOLCHAIN_BUILDROOT_CXX=y @@ -12,13 +12,13 @@ BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_SCRIPTEXECUTE_PATH)/board/overlay/" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/raspberrypi/linux.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rpi-5.4.y" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="6.6.y" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_SCRIPTEXECUTE_PATH)/board/kernelconfig-cm4.armv7" BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_SCRIPTEXECUTE_PATH)/board/kernelconfig-scriptexecute.fragment" BR2_LINUX_KERNEL_XZ=y BR2_LINUX_KERNEL_DTS_SUPPORT=y -BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2711-rpi-4-b bcm2711-rpi-400 bcm2711-rpi-cm4 overlays/dwc2-overlay overlays/spi-gpio40-45-overlay" +BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2711-rpi-4-b broadcom/bcm2711-rpi-400 broadcom/bcm2711-rpi-cm4 overlays/dwc2-overlay overlays/spi-gpio40-45-overlay" BR2_PACKAGE_E2FSPROGS=y # BR2_PACKAGE_E2FSPROGS_FSCK is not set BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y @@ -32,7 +32,7 @@ BR2_PACKAGE_ZLIB=y BR2_PACKAGE_LIBSYSFS=y BR2_PACKAGE_JITTERENTROPY_LIBRARY=y BR2_PACKAGE_LIBCURL=y -BR2_PACKAGE_CURL=y +BR2_PACKAGE_LIBCURL_CURL=y # BR2_PACKAGE_LIBCURL_PROXY_SUPPORT is not set # BR2_PACKAGE_LIBCURL_COOKIES_SUPPORT is not set # BR2_PACKAGE_LIBCURL_EXTRA_PROTOCOLS_FEATURES is not set @@ -41,5 +41,10 @@ BR2_PACKAGE_UTIL_LINUX_BINARIES=y BR2_TARGET_ROOTFS_CPIO=y BR2_TARGET_ROOTFS_CPIO_XZ=y # BR2_TARGET_ROOTFS_TAR is not set -BR2_PACKAGE_RPI_FIRMWARE_CUSTOM=y -# BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_INSTALL_DTB_OVERLAYS is not set +BR2_PACKAGE_RPI_FIRMWARE=y +BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4=y +BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="$(BR2_EXTERNAL_SCRIPTEXECUTE_PATH)/boot-configs/config.txt" +BR2_PACKAGE_RPI_FIRMWARE_CMDLINE_FILE="$(BR2_EXTERNAL_SCRIPTEXECUTE_PATH)/boot-configs/cmdline.txt" +BR2_PACKAGE_LIBGPIOD2=y +BR2_PACKAGE_RPI_PINCTRL=y +BR2_PACKAGE_COREUTILS=y diff --git a/scriptexecute/configs/scriptexecute_cmhybrid_defconfig b/scriptexecute/configs/scriptexecute_cmhybrid_defconfig index 9a761f9..6a9e408 100644 --- a/scriptexecute/configs/scriptexecute_cmhybrid_defconfig +++ b/scriptexecute/configs/scriptexecute_cmhybrid_defconfig @@ -1,6 +1,6 @@ BR2_arm=y BR2_arm1176jzf_s=y -BR2_KERNEL_HEADERS_4_19=y +BR2_KERNEL_HEADERS_6_6=y BR2_TOOLCHAIN_BUILDROOT_WCHAR=y # BR2_UCLIBC_INSTALL_UTILS is not set BR2_TARGET_GENERIC_HOSTNAME="scriptexecute" @@ -11,16 +11,16 @@ BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_SCRIPTEXECUTE_PATH)/board/overlay/" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/raspberrypi/linux.git" -BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rpi-4.19.y" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="6.6.y" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_SCRIPTEXECUTE_PATH)/board/kernelconfig-hybrid.armv67" BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_SCRIPTEXECUTE_PATH)/board/kernelconfig-scriptexecute.fragment" BR2_LINUX_KERNEL_XZ=y BR2_LINUX_KERNEL_DTS_SUPPORT=y -BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2708-rpi-b-plus bcm2708-rpi-zero-w bcm2708-rpi-cm bcm2710-rpi-cm3 bcm2710-rpi-3-b-plus overlays/dwc2-overlay" +BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2708-rpi-b-plus broadcom/bcm2708-rpi-zero-w broadcom/bcm2708-rpi-cm broadcom/bcm2710-rpi-cm3 broadcom/bcm2710-rpi-3-b-plus overlays/dwc2-overlay" BR2_PACKAGE_MMC_UTILS=y BR2_PACKAGE_LIBCURL=y -BR2_PACKAGE_CURL=y +BR2_PACKAGE_LIBCURL_CURL=y # BR2_PACKAGE_LIBCURL_PROXY_SUPPORT is not set # BR2_PACKAGE_LIBCURL_COOKIES_SUPPORT is not set # BR2_PACKAGE_LIBCURL_EXTRA_PROTOCOLS_FEATURES is not set @@ -32,5 +32,10 @@ BR2_PACKAGE_UTIL_LINUX_BINARIES=y BR2_TARGET_ROOTFS_CPIO=y BR2_TARGET_ROOTFS_CPIO_XZ=y # BR2_TARGET_ROOTFS_TAR is not set -BR2_PACKAGE_RPI_FIRMWARE_CUSTOM=y -# BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_INSTALL_DTB_OVERLAYS is not set +BR2_PACKAGE_RPI_FIRMWARE=y +BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI=y +BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="$(BR2_EXTERNAL_SCRIPTEXECUTE_PATH)/boot-configs/config.txt" +BR2_PACKAGE_RPI_FIRMWARE_CMDLINE_FILE="$(BR2_EXTERNAL_SCRIPTEXECUTE_PATH)/boot-configs/cmdline.txt" +BR2_PACKAGE_LIBGPIOD2=y +BR2_PACKAGE_RPI_PINCTRL=y +BR2_PACKAGE_COREUTILS=y diff --git a/scriptexecute/package/rpi-firmware-custom/Config.in b/scriptexecute/package/rpi-firmware-custom/Config.in deleted file mode 100644 index 351af97..0000000 --- a/scriptexecute/package/rpi-firmware-custom/Config.in +++ /dev/null @@ -1,79 +0,0 @@ -config BR2_PACKAGE_RPI_FIRMWARE_CUSTOM - bool "rpi-firmware" - depends on BR2_arm - help - RaspberryPi Firmware - Pre-compiled binaries of the current bootloader and GPU firmware - - https://github.com/raspberrypi/firmware - -if BR2_PACKAGE_RPI_FIRMWARE_CUSTOM - -choice - bool "Firmware to boot" - default BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_DEFAULT - help - There are three different firmware files: - - the default firmware, that enables standard GPU features; - - the extended firmware, that enables additional GPU features - (eg. more audio/video codecs); - - the cut-down firmware, for emergency situations, with only - features required to boot a Linux kernel. - -config BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_DEFAULT - bool "default" - help - The default firmware, that enables standard GPU features. - -config BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_X - bool "extended ('x', more codecs)" - help - The extended firmware, that enables additional GPU features - (eg. more audio/video codecs). - -config BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_CD - bool "cut-down ('cd', emergency)" - help - The cut-down firmware, for emergency situations, with only - features required to boot a Linux kernel. - -endchoice - -config BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_BOOT - string - default "" if BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_DEFAULT - default "_x" if BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_X - default "_cd" if BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_CD - -config BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_INSTALL_DTBS - bool "Install Device Tree Blobs (DTBs)" - depends on !BR2_LINUX_KERNEL_DTS_SUPPORT - default y - help - If you are using a Linux kernel <= 3.18, you should say 'y' here. - - If you are using a Linux kernel >= 3.19, you should say 'n' here, - and enable BR2_LINUX_KERNEL_DTS_SUPPORT to let the kernel build - the DTB. - -config BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_INSTALL_DTB_OVERLAYS - bool "Install DTB overlays" - depends on BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_INSTALL_DTBS \ - || BR2_LINUX_KERNEL_DTS_SUPPORT - default y - help - Say 'y' here if you need to load one or more of the DTB overlays, - to support HATs (Hardware Attached on Top, add-on modules). - -config BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_INSTALL_VCDBG - bool "vcdbg" - depends on BR2_TOOLCHAIN_USES_GLIBC - depends on BR2_INSTALL_LIBSTDCPP # rpi-userland - select BR2_PACKAGE_RPI_USERLAND - help - Install vcdbg, to help debug communication with the GPU. - -comment "vcdbg needs a glibc toolchain w/ C++" - depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_INSTALL_LIBSTDCPP - -endif # BR2_PACKAGE_RPI_FIRMWARE_CUSTOM diff --git a/scriptexecute/package/rpi-firmware-custom/rpi-firmware-custom.mk b/scriptexecute/package/rpi-firmware-custom/rpi-firmware-custom.mk deleted file mode 100644 index ceb7661..0000000 --- a/scriptexecute/package/rpi-firmware-custom/rpi-firmware-custom.mk +++ /dev/null @@ -1,49 +0,0 @@ -################################################################################ -# -# rpi-firmware -# -################################################################################ - -RPI_FIRMWARE_CUSTOM_VERSION = 995e9f03d17ab09a8821feb85cee368f29d80f89 -RPI_FIRMWARE_CUSTOM_SITE = $(call github,raspberrypi,firmware,$(RPI_FIRMWARE_CUSTOM_VERSION)) -RPI_FIRMWARE_CUSTOM_LICENSE = BSD-3c -RPI_FIRMWARE_CUSTOM_LICENSE_FILES = boot/LICENCE.broadcom -RPI_FIRMWARE_CUSTOM_INSTALL_IMAGES = YES - -ifeq ($(BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_INSTALL_DTBS),y) -define RPI_FIRMWARE_CUSTOM_INSTALL_DTB - $(INSTALL) -D -m 0644 $(@D)/boot/bcm2708-rpi-b.dtb $(BINARIES_DIR)/rpi-firmware/bcm2708-rpi-b.dtb - $(INSTALL) -D -m 0644 $(@D)/boot/bcm2708-rpi-b-plus.dtb $(BINARIES_DIR)/rpi-firmware/bcm2708-rpi-b-plus.dtb - $(INSTALL) -D -m 0644 $(@D)/boot/bcm2709-rpi-2-b.dtb $(BINARIES_DIR)/rpi-firmware/bcm2709-rpi-2-b.dtb - $(INSTALL) -D -m 0644 $(@D)/boot/bcm2710-rpi-3-b.dtb $(BINARIES_DIR)/rpi-firmware/bcm2710-rpi-3-b.dtb -endef -endif - -ifeq ($(BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_INSTALL_DTB_OVERLAYS),y) -define RPI_FIRMWARE_CUSTOM_INSTALL_DTB_OVERLAYS - for ovldtb in $(@D)/boot/overlays/*.dtbo; do \ - $(INSTALL) -D -m 0644 $${ovldtb} $(BINARIES_DIR)/rpi-firmware/overlays/$${ovldtb##*/} || exit 1; \ - done -endef -endif - -ifeq ($(BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_INSTALL_VCDBG),y) -define RPI_FIRMWARE_CUSTOM_INSTALL_TARGET_CMDS - $(INSTALL) -D -m 0700 $(@D)/$(if BR2_ARM_EABIHF,hardfp/)opt/vc/bin/vcdbg \ - $(TARGET_DIR)/usr/sbin/vcdbg -endef -endif # INSTALL_VCDBG - -define RPI_FIRMWARE_CUSTOM_INSTALL_IMAGES_CMDS - $(INSTALL) -D -m 0644 $(@D)/boot/bootcode.bin $(BINARIES_DIR)/rpi-firmware/bootcode.bin - $(INSTALL) -D -m 0644 $(@D)/boot/start.elf $(BINARIES_DIR)/rpi-firmware/start.elf - $(INSTALL) -D -m 0644 $(@D)/boot/fixup.dat $(BINARIES_DIR)/rpi-firmware/fixup.dat - $(INSTALL) -D -m 0644 $(@D)/boot/start4.elf $(BINARIES_DIR)/rpi-firmware/start4.elf - $(INSTALL) -D -m 0644 $(@D)/boot/fixup4.dat $(BINARIES_DIR)/rpi-firmware/fixup4.dat - $(INSTALL) -D -m 0644 package/rpi-firmware/config.txt $(BINARIES_DIR)/rpi-firmware/config.txt - $(INSTALL) -D -m 0644 package/rpi-firmware/cmdline.txt $(BINARIES_DIR)/rpi-firmware/cmdline.txt - $(RPI_FIRMWARE_CUSTOM_INSTALL_DTB) - $(RPI_FIRMWARE_CUSTOM_INSTALL_DTB_OVERLAYS) -endef - -$(eval $(generic-package)) diff --git a/scriptexecute/package/rpi-pinctrl/Config.in b/scriptexecute/package/rpi-pinctrl/Config.in new file mode 100644 index 0000000..7da638f --- /dev/null +++ b/scriptexecute/package/rpi-pinctrl/Config.in @@ -0,0 +1,5 @@ +config BR2_PACKAGE_RPI_PINCTRL + bool "rpi-pinctrl" + depends on BR2_PACKAGE_LIBGPIOD2 + help + Raspberry Pi pinctrl binary \ No newline at end of file diff --git a/scriptexecute/package/rpi-pinctrl/rpi-pinctrl.mk b/scriptexecute/package/rpi-pinctrl/rpi-pinctrl.mk new file mode 100644 index 0000000..926f7ef --- /dev/null +++ b/scriptexecute/package/rpi-pinctrl/rpi-pinctrl.mk @@ -0,0 +1,14 @@ +################################################################################ +# +# rpi-pinctrl +# +################################################################################ + +RPI_PINCTRL_VERSION = 2a79d719687d5cea097927069434b8075df06850 +RPI_PINCTRL_SITE = $(call github,raspberrypi,utils,$(RPI_PINCTRL_VERSION)) +RPI_PINCTRL_LICENSE = BSD-3-Clause +RPI_PINCTRL_LICENSE_FILES = LICENSE +RPI_PINCTRL_INSTALL_TARGET = YES +RPI_PINCTRL_SUBDIR = pinctrl + +$(eval $(cmake-package)) \ No newline at end of file