[Buildroot] [PATCH] board/t3/t3-gem-o1: add new board

Selman Çetin via buildroot <[email protected]>
Newsgroups net.busybox.buildroot
Message-ID <[email protected]>
This commit adds support for the T3-GEM-O1

More information about the board can be found at:
https://t3gemstone.org/en

Documentation and usage guides are available at:
https://docs.t3gemstone.org/en/introduction

The official GitHub repository can be found at:
https://github.com/t3gemstone

Hardware Specifications:
- Processor: Quad-core ARM Cortex-A53 @1.4 GHz with GPU, DSP and AI accelerators
- RAM: 4 GB LPDDR4
- Storage: 32 GB eMMC, MicroSD slot (SDR104), M.2 2280 NVMe SSD Port
- Connectivity: Wi-Fi 802.11n & Bluetooth 5.1 (WL1835MOD)
- Network: Gigabit Ethernet
- USB: 2x USB 3.0 Type-A, 1x USB 2.0 Type-A, 1x USB 2.0 Type-C (Device + PD)
- Display/Camera: 1x HDMI, 1x 4-lane MIPI display, 1x 4-lane MIPI camera
- Peripherals: CAN FD, 40-pin GPIO Header, 10-pin JTAG, RTC (Maxim DS1340)
- Sensors: ICM-20948 (9-Axis IMU), BMP390 (Barometric), HDC2010 (Humidity/Temp)
- Power: USB Type-C (5-9V/3A) or DC Jack (5-12V/5A)

Signed-off-by: Selman Çetin <[email protected]>
---
 DEVELOPERS                                    |  4 ++
 board/t3/t3-gem-o1/genimage.cfg               | 30 ++++++++++
 .../arm-trusted-firmware.hash                 |  2 +
 .../patches/linux-headers/linux-headers.hash  |  2 +
 board/t3/t3-gem-o1/patches/linux/linux.hash   |  2 +
 .../t3-gem-o1/patches/optee-os/optee-os.hash  |  2 +
 .../0001-fix-binman-importlib.patch           | 49 +++++++++++++++
 .../ti-k3-r5-loader/ti-k3-r5-loader.hash      |  2 +
 .../uboot/0001-fix-binman-importlib.patch     | 49 +++++++++++++++
 board/t3/t3-gem-o1/patches/uboot/uboot.hash   |  2 +
 board/t3/t3-gem-o1/post-image.sh              | 21 +++++++
 board/t3/t3-gem-o1/readme.txt                 | 35 +++++++++++
 .../rootfs_overlay/etc/init.d/S89firstboot    | 50 ++++++++++++++++
 board/t3/t3-gem-o1/uEnv.txt                   |  6 ++
 configs/t3_gem_o1_defconfig                   | 59 +++++++++++++++++++
 15 files changed, 315 insertions(+)
 create mode 100644 board/t3/t3-gem-o1/genimage.cfg
 create mode 100644 board/t3/t3-gem-o1/patches/arm-trusted-firmware/arm-trusted-firmware.hash
 create mode 100644 board/t3/t3-gem-o1/patches/linux-headers/linux-headers.hash
 create mode 100644 board/t3/t3-gem-o1/patches/linux/linux.hash
 create mode 100644 board/t3/t3-gem-o1/patches/optee-os/optee-os.hash
 create mode 100644 board/t3/t3-gem-o1/patches/ti-k3-r5-loader/0001-fix-binman-importlib.patch
 create mode 100644 board/t3/t3-gem-o1/patches/ti-k3-r5-loader/ti-k3-r5-loader.hash
 create mode 100644 board/t3/t3-gem-o1/patches/uboot/0001-fix-binman-importlib.patch
 create mode 100644 board/t3/t3-gem-o1/patches/uboot/uboot.hash
 create mode 100755 board/t3/t3-gem-o1/post-image.sh
 create mode 100644 board/t3/t3-gem-o1/readme.txt
 create mode 100755 board/t3/t3-gem-o1/rootfs_overlay/etc/init.d/S89firstboot
 create mode 100644 board/t3/t3-gem-o1/uEnv.txt
 create mode 100644 configs/t3_gem_o1_defconfig

diff --git a/DEVELOPERS b/DEVELOPERS
index c6c228ae91..05c9a000d8 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2996,6 +2996,10 @@ F:	package/python-flask-login/
 F:	package/qt5/qt5charts/
 F:	package/wlr-randr/
 
+N:	Selman Çetin <[email protected]>
+F:	board/t3/t3-gem-o1/
+F:	configs/t3_gem_o1_defconfig
+
 N:	Semyon Kolganov <[email protected]>
 F:	package/fmt/
 F:	package/lua-resty-http/
diff --git a/board/t3/t3-gem-o1/genimage.cfg b/board/t3/t3-gem-o1/genimage.cfg
new file mode 100644
index 0000000000..3647706542
--- /dev/null
+++ b/board/t3/t3-gem-o1/genimage.cfg
@@ -0,0 +1,30 @@
+image boot.vfat {
+	vfat {
+		files = {
+			"tiboot3.bin",
+			"tispl.bin",
+			"u-boot.img",
+			"Image",
+			"k3-am67a-t3-gem-o1.dtb",
+			"uEnv.txt"
+		}
+	}
+	size = 64M
+}
+
+image sdcard.img {
+	hdimage {
+	}
+
+	partition boot {
+		partition-type = 0xC
+		bootable = "true"
+		image = "boot.vfat"
+		offset = 4M
+	}
+
+	partition rootfs {
+		partition-type = 0x83
+		image = "rootfs.ext4"
+	}
+}
diff --git a/board/t3/t3-gem-o1/patches/arm-trusted-firmware/arm-trusted-firmware.hash b/board/t3/t3-gem-o1/patches/arm-trusted-firmware/arm-trusted-firmware.hash
new file mode 100644
index 0000000000..6f02bfbb22
--- /dev/null
+++ b/board/t3/t3-gem-o1/patches/arm-trusted-firmware/arm-trusted-firmware.hash
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256  7efa89e1b4e4106ee05d68e876c8efbb146364d89cfd5d26bf4647b09c08f32b  arm-trusted-firmware-v2.10-git4.tar.gz
diff --git a/board/t3/t3-gem-o1/patches/linux-headers/linux-headers.hash b/board/t3/t3-gem-o1/patches/linux-headers/linux-headers.hash
new file mode 100644
index 0000000000..3c4761fa9c
--- /dev/null
+++ b/board/t3/t3-gem-o1/patches/linux-headers/linux-headers.hash
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256  631d4166e2700c4777fa10edde89015efa37e69ac8f43ca301f29d70419e353d  linux-c0d426f64f22aa7ddba37b5552dd5b2013654990-git4.tar.gz
diff --git a/board/t3/t3-gem-o1/patches/linux/linux.hash b/board/t3/t3-gem-o1/patches/linux/linux.hash
new file mode 100644
index 0000000000..3c4761fa9c
--- /dev/null
+++ b/board/t3/t3-gem-o1/patches/linux/linux.hash
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256  631d4166e2700c4777fa10edde89015efa37e69ac8f43ca301f29d70419e353d  linux-c0d426f64f22aa7ddba37b5552dd5b2013654990-git4.tar.gz
diff --git a/board/t3/t3-gem-o1/patches/optee-os/optee-os.hash b/board/t3/t3-gem-o1/patches/optee-os/optee-os.hash
new file mode 100644
index 0000000000..3f5c58fcff
--- /dev/null
+++ b/board/t3/t3-gem-o1/patches/optee-os/optee-os.hash
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256  9400e16c45bfa45f15585b2c933b86c449e7de05def0ecaaa62a4f38973a3a45  optee-os-4.9.0.tar.gz
diff --git a/board/t3/t3-gem-o1/patches/ti-k3-r5-loader/0001-fix-binman-importlib.patch b/board/t3/t3-gem-o1/patches/ti-k3-r5-loader/0001-fix-binman-importlib.patch
new file mode 100644
index 0000000000..67324956d7
--- /dev/null
+++ b/board/t3/t3-gem-o1/patches/ti-k3-r5-loader/0001-fix-binman-importlib.patch
@@ -0,0 +1,49 @@
+Fix binman importlib usage for modern Python
+
+The binman `control.py` used `pkg_resources.resource_string()` and
+`pkg_resources.resource_listdir()` which are not ideal on newer Python
+versions. Replace usage with the `importlib.resources` API which is the
+recommended approach in recent Python releases. This avoids runtime
+errors when `pkg_resources` is not available or when the packaged
+resources are accessed differently.
+
+Signed-off-by: Selman Çetin <[email protected]>
+
+---
+diff --git a/tools/binman/control.py.orig b/tools/binman/control.py
+index e73c598298..7ce325ec5e 100644
+--- a/tools/binman/control.py
++++ b/tools/binman/control.py
+@@ -13,7 +13,7 @@ except ImportError:  # pragma: no cover
+     # for Python 3.6
+     import importlib_resources
+ import os
+-import pkg_resources
++import importlib.resources
+ import re
+ 
+ import sys
+@@ -96,12 +96,12 @@ def _ReadMissingBlobHelp():
+             msg = ''
+         return tag, msg
+ 
+-    my_data = pkg_resources.resource_string(__name__, 'missing-blob-help')
++    my_data = importlib.resources.files(__name__).joinpath('missing-blob-help').read_text(encoding='utf-8')
+     re_tag = re.compile('^([-a-z0-9]+):$')
+     result = {}
+     tag = None
+     msg = ''
+-    for line in my_data.decode('utf-8').splitlines():
++    for line in my_data.splitlines():
+         if not line.startswith('#'):
+             m_tag = re_tag.match(line)
+             if m_tag:
+@@ -151,7 +151,7 @@ def GetEntryModules(include_testing=True):
+     Returns:
+         Set of paths to entry class filenames
+     """
+-    glob_list = pkg_resources.resource_listdir(__name__, 'etype')
++    glob_list = [f.name for f in importlib.resources.files(__name__).joinpath('etype').iterdir() if f.is_file()]
+     glob_list = [fname for fname in glob_list if fname.endswith('.py')]
+     return set([os.path.splitext(os.path.basename(item))[0]
+                 for item in glob_list
diff --git a/board/t3/t3-gem-o1/patches/ti-k3-r5-loader/ti-k3-r5-loader.hash b/board/t3/t3-gem-o1/patches/ti-k3-r5-loader/ti-k3-r5-loader.hash
new file mode 100644
index 0000000000..592ea66751
--- /dev/null
+++ b/board/t3/t3-gem-o1/patches/ti-k3-r5-loader/ti-k3-r5-loader.hash
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256  4e98496545b7f9955b178d65489624691e0d4ba2687fb507ffa364a9978bb51a  uboot-8b5ae72c281207430fcc58031fe36f40900f7a2d-git4.tar.gz
diff --git a/board/t3/t3-gem-o1/patches/uboot/0001-fix-binman-importlib.patch b/board/t3/t3-gem-o1/patches/uboot/0001-fix-binman-importlib.patch
new file mode 100644
index 0000000000..67324956d7
--- /dev/null
+++ b/board/t3/t3-gem-o1/patches/uboot/0001-fix-binman-importlib.patch
@@ -0,0 +1,49 @@
+Fix binman importlib usage for modern Python
+
+The binman `control.py` used `pkg_resources.resource_string()` and
+`pkg_resources.resource_listdir()` which are not ideal on newer Python
+versions. Replace usage with the `importlib.resources` API which is the
+recommended approach in recent Python releases. This avoids runtime
+errors when `pkg_resources` is not available or when the packaged
+resources are accessed differently.
+
+Signed-off-by: Selman Çetin <[email protected]>
+
+---
+diff --git a/tools/binman/control.py.orig b/tools/binman/control.py
+index e73c598298..7ce325ec5e 100644
+--- a/tools/binman/control.py
++++ b/tools/binman/control.py
+@@ -13,7 +13,7 @@ except ImportError:  # pragma: no cover
+     # for Python 3.6
+     import importlib_resources
+ import os
+-import pkg_resources
++import importlib.resources
+ import re
+ 
+ import sys
+@@ -96,12 +96,12 @@ def _ReadMissingBlobHelp():
+             msg = ''
+         return tag, msg
+ 
+-    my_data = pkg_resources.resource_string(__name__, 'missing-blob-help')
++    my_data = importlib.resources.files(__name__).joinpath('missing-blob-help').read_text(encoding='utf-8')
+     re_tag = re.compile('^([-a-z0-9]+):$')
+     result = {}
+     tag = None
+     msg = ''
+-    for line in my_data.decode('utf-8').splitlines():
++    for line in my_data.splitlines():
+         if not line.startswith('#'):
+             m_tag = re_tag.match(line)
+             if m_tag:
+@@ -151,7 +151,7 @@ def GetEntryModules(include_testing=True):
+     Returns:
+         Set of paths to entry class filenames
+     """
+-    glob_list = pkg_resources.resource_listdir(__name__, 'etype')
++    glob_list = [f.name for f in importlib.resources.files(__name__).joinpath('etype').iterdir() if f.is_file()]
+     glob_list = [fname for fname in glob_list if fname.endswith('.py')]
+     return set([os.path.splitext(os.path.basename(item))[0]
+                 for item in glob_list
diff --git a/board/t3/t3-gem-o1/patches/uboot/uboot.hash b/board/t3/t3-gem-o1/patches/uboot/uboot.hash
new file mode 100644
index 0000000000..592ea66751
--- /dev/null
+++ b/board/t3/t3-gem-o1/patches/uboot/uboot.hash
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256  4e98496545b7f9955b178d65489624691e0d4ba2687fb507ffa364a9978bb51a  uboot-8b5ae72c281207430fcc58031fe36f40900f7a2d-git4.tar.gz
diff --git a/board/t3/t3-gem-o1/post-image.sh b/board/t3/t3-gem-o1/post-image.sh
new file mode 100755
index 0000000000..9747f4ef90
--- /dev/null
+++ b/board/t3/t3-gem-o1/post-image.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+set -e
+
+BOARD_DIR="$(dirname "$0")"
+GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
+GENIMAGE_TMP="$(mktemp -d)"
+ROOTPATH_TMP="$(mktemp -d)"
+
+# Copy uEnv.txt to binaries directory so genimage can pack it into FAT
+cp -f "${BOARD_DIR}/uEnv.txt" "${BINARIES_DIR}/uEnv.txt"
+
+trap 'rm -rf "${GENIMAGE_TMP}" "${ROOTPATH_TMP}"' EXIT
+
+${HOST_DIR}/bin/genimage \
+        --rootpath "${ROOTPATH_TMP}" \
+        --tmppath "${GENIMAGE_TMP}" \
+        --inputpath "${BINARIES_DIR}" \
+        --outputpath "${BINARIES_DIR}" \
+        --config "${GENIMAGE_CFG}"
+
+exit $?
diff --git a/board/t3/t3-gem-o1/readme.txt b/board/t3/t3-gem-o1/readme.txt
new file mode 100644
index 0000000000..8ac17e821c
--- /dev/null
+++ b/board/t3/t3-gem-o1/readme.txt
@@ -0,0 +1,35 @@
+T3 Gemstone O1 (AM67A) Buildroot Support
+========================================
+
+How to build
+============
+
+$ make t3_gem_o1_defconfig
+$ make
+
+How to write the SD card
+========================
+
+Once the build process is finished you will have an image
+called "sdcard.img" in the output/images/ directory.
+
+Copy the bootable "sdcard.img" onto an SD card with "dd":
+
+  $ sudo dd if=output/images/sdcard.img of=/dev/sdX bs=1M && sync
+
+Where /dev/sdX is the device node of your SD card.
+
+If you would like use tool with gui, you can use gem-imager.
+- Gem-imager: https://github.com/t3gemstone/gem-imager
+
+Booting the board
+=================
+
+Insert the SD card into the T3 Gemstone O1 board.
+Connect the UART cable to get terminal access.
+Power on the board. The system should boot into Buildroot.
+
+Repositories Used
+=================
+- U-Boot: https://github.com/t3gemstone/u-boot.git (branch: v2025.04-rc3-t3-gem-o1)
+- Linux Kernel: https://github.com/t3gemstone/linux.git (branch: v6.12.24-ti-arm64-r43-t3-gem-o1)
diff --git a/board/t3/t3-gem-o1/rootfs_overlay/etc/init.d/S89firstboot b/board/t3/t3-gem-o1/rootfs_overlay/etc/init.d/S89firstboot
new file mode 100755
index 0000000000..1354cc863f
--- /dev/null
+++ b/board/t3/t3-gem-o1/rootfs_overlay/etc/init.d/S89firstboot
@@ -0,0 +1,50 @@
+#!/bin/sh
+# S89firstboot: Resize root partition and filesystem on first boot via uEnv.txt params
+
+case "$1" in
+  start)
+    if ! grep -q "firstboot=1" /proc/cmdline; then
+        exit 0
+    fi
+
+    printf "\nLooks like system is booting for the first time\n" >/dev/console
+
+    BOOTPART=$(cat /proc/cmdline | tr ' ' '\n' | grep '^bootpart=' | cut -d= -f2)
+    ROOT_DEV=$(cat /proc/cmdline | tr ' ' '\n' | grep '^root=' | cut -d= -f2)
+
+    if [ -z "$BOOTPART" ] || [ -z "$ROOT_DEV" ]; then
+        echo "Error: bootpart or root param missing in cmdline."
+        exit 1
+    fi
+
+    DRIVE=$(echo $ROOT_DEV | sed 's/p[0-9]*$//')
+    PART=$(echo $ROOT_DEV | grep -o '[0-9]*$')
+
+    echo "Expanding root partition on '${DRIVE}'..."
+    parted -m -s "$DRIVE" resizepart "$PART" 100% > /dev/null
+    partprobe "$DRIVE" || true
+
+    echo "Expanding root filesystem on '${ROOT_DEV}'..."
+    resize2fs "$ROOT_DEV"
+
+    echo "Disabling firstboot in uEnv.txt..."
+    boot_mntpoint="/tmp/bootmnt"
+    mkdir -p "$boot_mntpoint"
+
+    if mount "$BOOTPART" "$boot_mntpoint"; then
+        sed -i 's/firstboot=1/firstboot=0/g' "$boot_mntpoint/uEnv.txt"
+        umount "$boot_mntpoint"
+        echo "Operation is successful."
+    else
+        echo "Error: Unable to mount boot partition to disable firstboot"
+    fi
+    ;;
+  stop)
+    ;;
+  *)
+    echo "Usage: $0 {start|stop}"
+    exit 1
+    ;;
+esac
+
+exit 0
diff --git a/board/t3/t3-gem-o1/uEnv.txt b/board/t3/t3-gem-o1/uEnv.txt
new file mode 100644
index 0000000000..f26b624322
--- /dev/null
+++ b/board/t3/t3-gem-o1/uEnv.txt
@@ -0,0 +1,6 @@
+# Environment file for T3 Gemstone O1 to override U-Boot default variables
+rootfstype=ext4
+
+# Override U-boot args to force ext4
+args_eth=setenv bootargs console=${console} ${optargs} root=/dev/mmcblk0p2 rw rootfstype=${rootfstype} bootpart=/dev/mmcblk0p1 firstboot=1 init_fatal_sh=1;
+args_mmc=setenv bootargs console=${console} ${optargs} root=/dev/mmcblk${mmcdev}p2 rw rootfstype=${rootfstype} rootwait bootpart=/dev/mmcblk${mmcdev}p1 firstboot=1 init_fatal_sh=1;
diff --git a/configs/t3_gem_o1_defconfig b/configs/t3_gem_o1_defconfig
new file mode 100644
index 0000000000..d4dd672e4a
--- /dev/null
+++ b/configs/t3_gem_o1_defconfig
@@ -0,0 +1,59 @@
+BR2_aarch64=y
+BR2_cortex_a53=y
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/t3/t3-gem-o1/post-image.sh"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/t3gemstone/linux.git"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="02ecef0cb08a6bd123a4f035a296bc824bcfe5b4"
+BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="ti/k3-am67a-t3-gem-o1"
+BR2_LINUX_KERNEL_INSTALL_TARGET=y
+BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+BR2_KERNEL_HEADERS_AS_KERNEL=y
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_12=y
+BR2_TARGET_TI_K3_R5_LOADER=y
+BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_GIT=y
+BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_URL="https://github.com/t3gemstone/u-boot.git"
+BR2_TARGET_TI_K3_R5_LOADER_CUSTOM_REPO_VERSION="8b5ae72c281207430fcc58031fe36f40900f7a2d"
+BR2_TARGET_TI_K3_R5_LOADER_BOARD_DEFCONFIG="am67a_t3_gem_o1_r5"
+BR2_TARGET_TI_K3_R5_LOADER_USE_DEFCONFIG=y
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
+BR2_TARGET_UBOOT_CUSTOM_GIT=y
+BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/t3gemstone/u-boot.git"
+BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="8b5ae72c281207430fcc58031fe36f40900f7a2d"
+BR2_TARGET_UBOOT_BOARD_DEFCONFIG="am67a_t3_gem_o1_a53"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
+BR2_TARGET_UBOOT_NEEDS_PYTHON3=y
+BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y
+BR2_TARGET_UBOOT_NEEDS_OPENSSL=y
+BR2_TARGET_UBOOT_NEEDS_GNUTLS=y
+BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y
+BR2_TARGET_UBOOT_NEEDS_OPTEE_TEE=y
+BR2_TARGET_UBOOT_NEEDS_OPTEE_TEE_RAW_BIN=y
+BR2_TARGET_UBOOT_USE_BINMAN=y
+# BR2_TARGET_UBOOT_FORMAT_BIN is not set
+BR2_TARGET_UBOOT_FORMAT_IMG=y
+BR2_TARGET_UBOOT_SPL=y
+BR2_TARGET_UBOOT_SPL_NAME="tispl.bin"
+BR2_TARGET_TI_K3_BOOT_FIRMWARE=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.10"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="k3"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_TARGET_BOARD="lite"
+BR2_TARGET_OPTEE_OS=y
+BR2_TARGET_OPTEE_OS_PLATFORM="k3-am62x"
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+BR2_TARGET_ROOTFS_EXT2_SIZE="256M"
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_MTOOLS=y
+BR2_GLOBAL_PATCH_DIR="board/t3/t3-gem-o1/patches"
+BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="BINMAN_INDIRS=$(BINARIES_DIR) TEE=$(BINARIES_DIR)/tee-pager_v2.bin"
+BR2_PACKAGE_E2FSPROGS=y
+BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
+BR2_PACKAGE_PARTED=y
+BR2_ROOTFS_OVERLAY="board/t3/t3-gem-o1/rootfs_overlay"
-- 
2.43.0

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.