diff --git a/buildroot-external/board/rpi2/barebox.config b/buildroot-external/board/rpi2/barebox.config new file mode 100644 index 000000000..e9a985961 --- /dev/null +++ b/buildroot-external/board/rpi2/barebox.config @@ -0,0 +1,55 @@ +CONFIG_ARCH_BCM283X=y +CONFIG_MACH_RPI2=y +CONFIG_AEABI=y +CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y +CONFIG_ARM_UNWIND=y +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_MMU=y +CONFIG_MALLOC_SIZE=0x0 +CONFIG_MALLOC_TLSF=y +CONFIG_KALLSYMS=y +CONFIG_PROMPT="HassOS-boot:" +CONFIG_CMDLINE_EDITING=y +CONFIG_AUTO_COMPLETE=y +CONFIG_MENU=y +# CONFIG_TIMESTAMP is not set +CONFIG_BOOTM_SHOW_TYPE=y +CONFIG_BOOTM_OFTREE=y +CONFIG_FLEXIBLE_BOOTARGS=y +# CONFIG_PARTITION_DISK_DOS is not set +CONFIG_PARTITION_DISK_EFI=y +# CONFIG_PARTITION_DISK_EFI_GPT_NO_FORCE is not set +# CONFIG_PARTITION_DISK_EFI_GPT_COMPARE is not set +CONFIG_DEFAULT_ENVIRONMENT_PATH="/build/buildroot-external/barebox-env" +CONFIG_STATE=y +CONFIG_BOOTCHOOSER=y +# CONFIG_CMD_VERSION is not set +CONFIG_CMD_BOOT=y +CONFIG_CMD_UIMAGE=y +CONFIG_CMD_AUTOMOUNT=y +CONFIG_CMD_NV=y +CONFIG_CMD_EXPORT=y +CONFIG_CMD_GLOBAL=y +CONFIG_CMD_BASENAME=y +CONFIG_CMD_DIRNAME=y +CONFIG_CMD_READLINK=y +CONFIG_CMD_GETOPT=y +CONFIG_CMD_MENUTREE=y +CONFIG_CMD_TIMEOUT=y +CONFIG_CMD_DETECT=y +CONFIG_CMD_STATE=y +CONFIG_CMD_BOOTCHOOSER=y +CONFIG_SERIAL_AMBA_PL011=y +# CONFIG_SPI is not set +CONFIG_MCI=y +CONFIG_MCI_BCM283X=y +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_BCM2835=y +CONFIG_GPIO_BCM283X=y +# CONFIG_PINCTRL is not set +CONFIG_REGULATOR=y +CONFIG_FS_FAT=y +CONFIG_FS_FAT_WRITE=y +CONFIG_FS_FAT_LFN=y +CONFIG_FS_SQUASHFS=y +CONFIG_LZ4_DECOMPRESS=y diff --git a/buildroot-external/board/rpi2/info b/buildroot-external/board/rpi2/info new file mode 100644 index 000000000..7319f7183 --- /dev/null +++ b/buildroot-external/board/rpi2/info @@ -0,0 +1,3 @@ +BOARD_ID=rpi2 +BOARD_NAME="RaspberryPi 2" +CHASSIS=embedded diff --git a/buildroot-external/board/rpi2/post-image.sh b/buildroot-external/board/rpi2/post-image.sh new file mode 100755 index 000000000..2b1070af4 --- /dev/null +++ b/buildroot-external/board/rpi2/post-image.sh @@ -0,0 +1,47 @@ +#!/bin/bash +set -e + +SCRIPT_DIR=${BR2_EXTERNAL_HASSOS_PATH}/scripts +BOARD_DIR=${2} +BOOT_DATA=${BINARIES_DIR}/boot + +. ${SCRIPT_DIR}/hdd-image.sh +. ${BR2_EXTERNAL_HASSOS_PATH}/info +. ${BOARD_DIR}/info + +# Filename +IMAGE_FILE=${BINARIES_DIR}/${HASSOS_ID}_${BOARD_ID}-${VERSION_MAJOR}.${VERSION_BUILD}.img + +# Init boot data +rm -rf ${BOOT_DATA} +mkdir -p ${BOOT_DATA} + +cp ${BINARIES_DIR}/barebox.bin ${BOOT_DATA}/ +cp -t ${BOOT_DATA} \ + ${BINARIES_DIR}/bcm2709-rpi-2-b.dtb \ + ${BINARIES_DIR}/rpi-firmware/bootcode.bin \ + ${BINARIES_DIR}/rpi-firmware/fixup.dat \ + ${BINARIES_DIR}/rpi-firmware/start.elf +cp -r ${BINARIES_DIR}/rpi-firmware/overlays ${BOOT_DATA}/ + +# Update Boot options +( + echo "kernel=barebox.bin" + echo "cmdline=\"\"" + echo "gpu_mem=16" + echo "disable_splash=1" + echo "dtparam=i2c_arm=on" + echo "dtparam=spi=on" + echo "dtparam=audio=on" +) > ${BOOT_DATA}/config.txt + + +# Create other layers +create_boot_image ${BINARIES_DIR} +create_overlay_image ${BINARIES_DIR} + +create_disk_image ${BINARIES_DIR} ${IMAGE_FILE} 2 +fix_disk_image_mbr ${IMAGE_FILE} + +rm -rf ${IMAGE_FILE}.gz +gzip ${IMAGE_FILE} diff --git a/buildroot-external/configs/rpi2_defconfig b/buildroot-external/configs/rpi2_defconfig new file mode 100644 index 000000000..d20b6605e --- /dev/null +++ b/buildroot-external/configs/rpi2_defconfig @@ -0,0 +1,88 @@ +BR2_arm=y +BR2_cortex_a53=y +BR2_ARM_FPU_VFPV4=y +BR2_DL_DIR="/cache/dl" +BR2_CCACHE=y +BR2_CCACHE_DIR="/cache/cc" +BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_HASSOS_PATH)/patches" +BR2_TOOLCHAIN_BUILDROOT_GLIBC=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_14=y +BR2_GCC_VERSION_7_X=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_TARGET_GENERIC_HOSTNAME="hassio" +BR2_TARGET_GENERIC_ISSUE="Welcome to HassOS" +BR2_INIT_SYSTEMD=y +BR2_TARGET_GENERIC_GETTY_PORT="tty1" +# BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set +BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_HASSOS_PATH)/rootfs-overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/board/rpi2/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/rpi2" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_GIT=y +BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/raspberrypi/linux" +BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rpi-4.14.y" +BR2_LINUX_KERNEL_DEFCONFIG="bcm2709" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel.config" +BR2_LINUX_KERNEL_LZ4=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2709-rpi-2-b" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_HASSOS_PATH)/busybox.config" +BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES=y +BR2_PACKAGE_JQ=y +BR2_PACKAGE_DOSFSTOOLS=y +BR2_PACKAGE_E2FSPROGS=y +BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y +BR2_PACKAGE_RPI_FIRMWARE=y +BR2_PACKAGE_DT_UTILS=y +BR2_PACKAGE_GPTFDISK=y +BR2_PACKAGE_GPTFDISK_SGDISK=y +BR2_PACKAGE_CA_CERTIFICATES=y +BR2_PACKAGE_LIBDNET=y +BR2_PACKAGE_LIBCGROUP=y +BR2_PACKAGE_LIBCGROUP_TOOLS=y +BR2_PACKAGE_AVAHI=y +BR2_PACKAGE_AVAHI_DAEMON=y +BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y +BR2_PACKAGE_DROPBEAR=y +# BR2_PACKAGE_DROPBEAR_CLIENT is not set +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set +BR2_PACKAGE_NETWORK_MANAGER=y +BR2_PACKAGE_NETWORK_MANAGER_MODEM_MANAGER=y +BR2_PACKAGE_DOCKER_ENGINE=y +BR2_PACKAGE_RAUC=y +BR2_PACKAGE_RAUC_NETWORK=y +# BR2_PACKAGE_SYSTEMD_HWDB is not set +# BR2_PACKAGE_SYSTEMD_NETWORKD is not set +BR2_PACKAGE_SYSTEMD_RANDOMSEED=y +# BR2_PACKAGE_SYSTEMD_RESOLVED is not set +BR2_PACKAGE_UTIL_LINUX_PARTX=y +BR2_PACKAGE_UTIL_LINUX_ZRAMCTL=y +BR2_TARGET_ROOTFS_SQUASHFS=y +BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_BAREBOX=y +BR2_TARGET_BAREBOX_CUSTOM_VERSION=y +BR2_TARGET_BAREBOX_CUSTOM_VERSION_VALUE="2018.05.0" +BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG=y +BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/board/rpi3/barebox.config" +BR2_TARGET_BAREBOX_CUSTOM_EMBEDDED_ENV_PATH="$(BR2_EXTERNAL_HASSOS_PATH)/barebox-env" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_E2FSPROGS=y +BR2_PACKAGE_HOST_GPTFDISK=y +BR2_PACKAGE_HOST_MTOOLS=y +BR2_PACKAGE_HOST_RAUC=y +BR2_PACKAGE_MINGETTY=y +BR2_PACKAGE_HASSOS=y +BR2_PACKAGE_HASSOS_SUPERVISOR="homeassistant/armhf-hassio-supervisor" +BR2_PACKAGE_HASSOS_SUPERVISOR_VERSION="103.3" +BR2_PACKAGE_HASSOS_SUPERVISOR_ARGS="-e HOMEASSISTANT_REPOSITORY=homeassistant/raspberrypi3-homeassistant" +BR2_PACKAGE_HASSOS_SUPERVISOR_PROFILE="hassio-supervisor" +BR2_PACKAGE_HASSOS_CLI="homeassistant/armhf-hassio-cli" +BR2_PACKAGE_HASSOS_CLI_VERSION="3" +BR2_PACKAGE_HASSOS_CLI_PROFILE="docker-default" +BR2_PACKAGE_HASSOS_APPARMOR_DIR="supervisor/apparmor" +BR2_PACKAGE_APPARMOR=y