From f2c9cddda53c83029eee579ec584553d217ed1db Mon Sep 17 00:00:00 2001 From: Daniel Volz Date: Mon, 31 Jan 2022 19:31:28 +0100 Subject: [PATCH 1/3] Initial commit: add support for Banan Pi M2 Zero --- .../bananapi-m2-zero/linux-extras.config | 47 ++++++++ .../rootfs_overlay/etc/init.d/S10modules | 4 + configs/bananapi_m2_zero_poobs4_defconfig | 102 ++++++++++++++++++ 3 files changed, 153 insertions(+) create mode 100644 board/bananapi/bananapi-m2-zero/linux-extras.config create mode 100755 board/bananapi/bananapi-m2-zero/rootfs_overlay/etc/init.d/S10modules create mode 100644 configs/bananapi_m2_zero_poobs4_defconfig diff --git a/board/bananapi/bananapi-m2-zero/linux-extras.config b/board/bananapi/bananapi-m2-zero/linux-extras.config new file mode 100644 index 0000000..ff796bc --- /dev/null +++ b/board/bananapi/bananapi-m2-zero/linux-extras.config @@ -0,0 +1,47 @@ +# wireless core +CONFIG_WIRELESS=y +CONFIG_CFG80211=y +CONFIG_MAC80211=y +CONFIG_CFG80211_WEXT=y + +# wireless drivers +CONFIG_WLAN=y +CONFIG_WLAN_VENDOR_BROADCOM=y +CONFIG_BRCMFMAC=m + +# Must have crypto lib +CONFIG_CRYPTO_SKCIPHER=y +CONFIG_KEY_DH_OPERATIONS=y +CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_DES=y +CONFIG_CRYPTO_SHA512=y +CONFIG_CRYPTO_DES3_EDE_ARM=y +CONFIG_CRYPTO_AES_ARM=y +CONFIG_ASYMMETRIC_KEY_TYPE=y +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y + +# modularize crypto lib +CONFIG_CRYPTO_USER_API_SKCIPHER=m +CONFIG_CRYPTO_USER_API_AEAD=m +CONFIG_CRYPTO_USER_API_HASH=m +CONFIG_CRYPTO_RSA=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_SHA1_SSSE3=m +CONFIG_CRYPTO_SHA256_SSSE3=m +CONFIG_CRYPTO_SHA512_SSSE3=m +CONFIG_CRYPTO_CMAC=m +CONFIG_CRYPTO_ARC4=m +CONFIG_X509_CERTIFICATE_PARSER=m +CONFIG_PKCS7_MESSAGE_PARSER=m +CONFIG_PKCS8_PRIVATE_KEY_PARSER=m + +# RT Kernel / Preemptive +# CONFIG_PREEMPT_NONE is not set +# CONFIG_PREEMPT_VOLUNTARY is not set +CONFIG_PREEMPT=y +CONFIG_PREEMPT_COUNT=y +CONFIG_PREEMPTION=y + +# RCU subsystem +CONFIG_PREEMPT_RCU=y \ No newline at end of file diff --git a/board/bananapi/bananapi-m2-zero/rootfs_overlay/etc/init.d/S10modules b/board/bananapi/bananapi-m2-zero/rootfs_overlay/etc/init.d/S10modules new file mode 100755 index 0000000..40280bc --- /dev/null +++ b/board/bananapi/bananapi-m2-zero/rootfs_overlay/etc/init.d/S10modules @@ -0,0 +1,4 @@ +#!/bin/sh + +/sbin/modprobe brcmfmac +sleep 2 diff --git a/configs/bananapi_m2_zero_poobs4_defconfig b/configs/bananapi_m2_zero_poobs4_defconfig new file mode 100644 index 0000000..d851579 --- /dev/null +++ b/configs/bananapi_m2_zero_poobs4_defconfig @@ -0,0 +1,102 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_NEON_VFPV4=y +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_9=y +BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the Bananapi M2 Zero" +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/bananapi/bananapi-m2-zero/genimage.cfg" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.9.11" +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h2-plus-bananapi-m2-zero" +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BOARDNAME="bananapi_m2_zero" +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.10" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot-sunxi-with-spl.bin" +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/bananapi/bananapi-m2-zero/boot.cmd" +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# System Configuration +BR2_TARGET_GENERIC_HOSTNAME="BananaPiZero" + +# Bootloader ? +BR2_TARGET_UBOOT_SPL=y +BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin" + +# wireless driver and firmware +BR2_PACKAGE_ARMBIAN_FIRMWARE=y +BR2_PACKAGE_ARMBIAN_FIRMWARE_AP6212=y + +# wireless support +BR2_PACKAGE_IW=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WIRELESS_TOOLS_LIB=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y +BR2_PACKAGE_WPA_SUPPLICANT_CLI=y + +# spi flash support +BR2_PACKAGE_MTD=y + +# +# pOOBs4 customization start +# + +# Build Options +BR2_CCACHE=y +BR2_PACKAGE_OVERRIDE_FILE="$(BR2_EXTERNAL_pOOBs4_PATH)/package/package_override" + +# Toolchain +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y +BR2_TOOLCHAIN_BUILDROOT_LOCALE=y + +# Kernel +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_pOOBs4_PATH)/board/bananapi/bananapi-m2-zero/linux-extras.config $(BR2_EXTERNAL_pOOBs4_PATH)/board/poobs4/common/linux-fragment.config" +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +# Filesystem Images +BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_pOOBs4_PATH)/board/poobs4/common/rootfs_overlay/ $(BR2_EXTERNAL_pOOBs4_PATH)/board/bananapi/bananapi-m2-zero/rootfs_overlay/" +BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_pOOBs4_PATH)/board/poobs4/common/post_build.sh" + +# Packages +# use haveged for better entropy +BR2_PACKAGE_URANDOM_SCRIPTS=n +BR2_PACKAGE_HAVEGED=y + +# busybox +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-minimal.config" +BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_pOOBs4_PATH)/board/poobs4/common/busybox-fragment.config" + +# openssh +BR2_PACKAGE_OPENSSH=y + +# hostapd +BR2_PACKAGE_HOSTAPD=y + +# dnsmasq +BR2_PACKAGE_DNSMASQ=y +BR2_PACKAGE_DNSMASQ_DHCP=y + +# nano +BR2_PACKAGE_NANO=y + +# Firmware +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX=y + +# Wi-Fi (wireless) firmware +# USB dongle, useful for board without onboard Wi-Fi From ad9338e0b164b2333b32600b9780dfb3794c824f Mon Sep 17 00:00:00 2001 From: Daniel Volz Date: Tue, 1 Feb 2022 11:45:43 +0100 Subject: [PATCH 2/3] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index c3adffe..6c31a77 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,7 @@ The final image is saved here `output/images/sdcard.img`. Below is the currently supported board with defconfig ready use. - Orange Pi Zero / Orange Pi Zero LTS [ `orangepi_zero_poobs4_defconfig` ] +- Banana PI M2 Zero [ `bananapi_m2_zero_poobs4_defconfig` ] - Raspberry Pi Zero W [ `not yet` ] - Raspberry Pi Zero 2 W [ `not yet` ] - your board? From 96f21ab7b576595e0a9a65a7e32e5e19383a85fd Mon Sep 17 00:00:00 2001 From: Daniel Volz Date: Tue, 1 Feb 2022 11:47:09 +0100 Subject: [PATCH 3/3] Fix typo README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6c31a77..66e87ff 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ The final image is saved here `output/images/sdcard.img`. Below is the currently supported board with defconfig ready use. - Orange Pi Zero / Orange Pi Zero LTS [ `orangepi_zero_poobs4_defconfig` ] -- Banana PI M2 Zero [ `bananapi_m2_zero_poobs4_defconfig` ] +- Banana Pi M2 Zero [ `bananapi_m2_zero_poobs4_defconfig` ] - Raspberry Pi Zero W [ `not yet` ] - Raspberry Pi Zero 2 W [ `not yet` ] - your board?