Bluetooth (RTL8723D USB combo chip): - GPIO pin 357 (active low) enables WiFi/BT hardware via x6200_gpio_set() - bluez5_utils 5.64 (downgraded from 5.79 — HID input plugin broken in 5.79) - rtl8723d_config.bin added to overlay (missing from linux-firmware package) - S45wifi-bt: GPIO enable + modprobe btusb/uhid/hidp at boot - S85bt-keyboard: auto-connect loop with scan+connect every 20s WiFi (RTL8723DU): - out-of-tree lwfinger/rtw88 driver (RTW88_8723DU not in kernel 6.1 mainline) - linux-firmware RTL_RTW88 for rtw88/rtw8723d_fw.bin - regulatory.db for cfg80211 - wpa_supplicant with multi-network config in /etc/wpa_supplicant.conf - S46wifi: wpa_supplicant + udhcpc at boot Key findings: - RTL8723D USB WiFi (0bda:d723) requires out-of-tree rtw88 on kernel 6.1 - BT and WiFi share same USB device, both need GPIO 357 = 0 to power on - bluez5 5.79 HID input plugin not linked into bluetoothd (build system bug)
192 lines
6.9 KiB
Plaintext
192 lines
6.9 KiB
Plaintext
# Mestre — Buildroot defconfig for the Xiegu X6200
|
|
# Milestone 1: serial console + SSH + Ethernet. No GUI, no audio.
|
|
#
|
|
# Derived from gdyuldin/AetherX6200Buildroot (GPL-2.0)
|
|
# https://github.com/gdyuldin/AetherX6200Buildroot
|
|
#
|
|
# Build with:
|
|
# ./scripts/build.sh
|
|
#
|
|
# Subsequent milestones add packages incrementally on top of this base.
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Architecture: Allwinner R16 (sun8i-a33), Cortex-A7 quad-core
|
|
# ---------------------------------------------------------------------------
|
|
BR2_arm=y
|
|
BR2_cortex_a7=y
|
|
BR2_ARM_FPU_NEON_VFPV4=y
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Toolchain
|
|
# ---------------------------------------------------------------------------
|
|
BR2_TOOLCHAIN_BUILDROOT_CXX=y
|
|
BR2_CCACHE=y
|
|
BR2_SSP_REGULAR=y
|
|
BR2_RELRO_PARTIAL=y
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# System
|
|
# ---------------------------------------------------------------------------
|
|
BR2_TARGET_GENERIC_HOSTNAME="mestre"
|
|
BR2_TARGET_GENERIC_ISSUE="Mestre — SDR Control Head"
|
|
BR2_TARGET_GENERIC_ROOT_PASSWD="mestre"
|
|
BR2_SYSTEM_BIN_SH_BASH=y
|
|
BR2_SYSTEM_DHCP="eth0"
|
|
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
|
|
BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_MESTRE_PATH)/board/x6200/rootfs-overlay"
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Post-image: assemble sdcard.img via genimage
|
|
# ---------------------------------------------------------------------------
|
|
BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
|
|
BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BR2_EXTERNAL_MESTRE_PATH)/board/x6200/genimage.cfg"
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Linux kernel
|
|
# ---------------------------------------------------------------------------
|
|
# Pinned to 6.6 LTS. The X6200 board support (sun8i-a33/R16) has been
|
|
# mainline since 4.x, so this is a stable, well-tested combination.
|
|
#
|
|
# NOTE: linux.config was derived from Aether's 6.1-era defconfig.
|
|
# Run `make linux-olddefconfig` after the first build to migrate any
|
|
# renamed or removed symbols for 6.6.
|
|
#
|
|
# NOTE: The LCD panel patch (patches/0001-drm-panel-jinglitai-jlt4013a.patch)
|
|
# targets 6.1-era panel/Kconfig line numbers and may need forward-porting
|
|
# for 6.6. Milestone 1 (serial console) does not require the LCD driver.
|
|
BR2_LINUX_KERNEL=y
|
|
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
|
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.82"
|
|
BR2_KERNEL_HEADERS_6_1=y
|
|
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
|
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_MESTRE_PATH)/board/x6200/linux/linux.config"
|
|
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_MESTRE_PATH)/board/x6200/linux/linux-midi.fragment"
|
|
BR2_LINUX_KERNEL_PATCH="$(BR2_EXTERNAL_MESTRE_PATH)/board/x6200/linux/patches/"
|
|
BR2_LINUX_KERNEL_DTS_SUPPORT=y
|
|
BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="$(BR2_EXTERNAL_MESTRE_PATH)/board/x6200/dts/sun8i-r16-x6200.dts"
|
|
BR2_LINUX_KERNEL_INSTALL_TARGET=y
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# U-Boot
|
|
# ---------------------------------------------------------------------------
|
|
BR2_TARGET_UBOOT=y
|
|
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
|
|
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
|
|
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2023.10"
|
|
BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG=y
|
|
BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_MESTRE_PATH)/board/x6200/uboot/uboot.config"
|
|
BR2_TARGET_UBOOT_NEEDS_DTC=y
|
|
BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y
|
|
BR2_TARGET_UBOOT_NEEDS_OPENSSL=y
|
|
BR2_TARGET_UBOOT_SPL=y
|
|
BR2_TARGET_UBOOT_SPL_NAME="u-boot-sunxi-with-spl.bin"
|
|
BR2_TARGET_UBOOT_CUSTOM_DTS_PATH="$(BR2_EXTERNAL_MESTRE_PATH)/board/x6200/dts/sun8i-r16-x6200.dts"
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Root filesystem
|
|
# ---------------------------------------------------------------------------
|
|
BR2_TARGET_ROOTFS_EXT2=y
|
|
BR2_TARGET_ROOTFS_EXT2_4=y
|
|
BR2_TARGET_ROOTFS_EXT2_SIZE="512M"
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Host tools required for image assembly
|
|
# ---------------------------------------------------------------------------
|
|
BR2_PACKAGE_HOST_DOSFSTOOLS=y
|
|
BR2_PACKAGE_HOST_GENIMAGE=y
|
|
BR2_PACKAGE_HOST_MTOOLS=y
|
|
BR2_PACKAGE_HOST_UBOOT_TOOLS=y
|
|
BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y
|
|
BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_MESTRE_PATH)/board/x6200/uboot/boot.cmd"
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Target packages — minimal: remote access + diagnostics
|
|
# ---------------------------------------------------------------------------
|
|
BR2_PACKAGE_OPENSSH=y
|
|
BR2_PACKAGE_NANO=y
|
|
BR2_PACKAGE_LESS=y
|
|
BR2_PACKAGE_BASH_COMPLETION=y
|
|
BR2_PACKAGE_UTIL_LINUX_BINARIES=y
|
|
BR2_PACKAGE_UTIL_LINUX_MOUNT=y
|
|
BR2_PACKAGE_UTIL_LINUX_RFKILL=y
|
|
BR2_PACKAGE_DOSFSTOOLS=y
|
|
BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y
|
|
BR2_PACKAGE_E2FSPROGS=y
|
|
BR2_PACKAGE_I2C_TOOLS=y
|
|
BR2_PACKAGE_USBUTILS=y
|
|
BR2_PACKAGE_EVTEST=y
|
|
BR2_PACKAGE_STRACE=y
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# NOT included here (added in later milestones):
|
|
# - X11 / framebuffer console / touchscreen
|
|
# - ALSA / PulseAudio / audio stack
|
|
# - piHPSDR / WDSP / SoapySDR
|
|
# - mestred (our evdev→MIDI service)
|
|
# - Network Manager (using simple /etc/network/interfaces for now)
|
|
# ---------------------------------------------------------------------------
|
|
|
|
BR2_GLOBAL_PATCH_DIR="../br2_external/board/x6200/patches"
|
|
|
|
# x6200
|
|
BR2_PACKAGE_X6200_CONTROL=y
|
|
|
|
# MISC
|
|
BR2_PACKAGE_PYTHON3=y
|
|
BR2_PACKAGE_PYTHON3_CTYPES=y
|
|
BR_PACKAGE_JOE=y
|
|
|
|
# Audio
|
|
BR2_PACKAGE_ALSA_UTILS=y
|
|
BR2_PACKAGE_ALSA_UTILS_APLAY=y
|
|
BR2_PACKAGE_ALSA_UTILS_AMIXER=y
|
|
BR2_PACKAGE_ALSA_UTILS_ALSAMIXER=y
|
|
BR2_PACKAGE_ALSA_LIB=y
|
|
BR2_PACKAGE_ALSA_LIB_MIXER=y
|
|
BR2_PACKAGE_ALSA_LIB_PCM=y
|
|
BR2_PACKAGE_ALSA_LIB_RAWMIDI=y
|
|
BR2_PACKAGE_PULSEAUDIO=y
|
|
BR2_PACKAGE_PULSEAUDIO_DAEMON=y
|
|
BR2_PACKAGE_PULSEAUDIO_MODULE_ALSA=y
|
|
BR2_PACKAGE_PULSEAUDIO=y
|
|
BR2_PACKAGE_PULSEAUDIO_DAEMON=y
|
|
BR2_PACKAGE_PULSEAUDIO_MODULE_ALSA=y
|
|
|
|
# X11
|
|
BR2_PACKAGE_XORG7=y
|
|
BR2_PACKAGE_XSERVER_XORG_SERVER=y
|
|
BR2_PACKAGE_XAPP_XINIT=y
|
|
BR2_PACKAGE_XDRIVER_XF86_VIDEO_FBDEV=y
|
|
BR2_PACKAGE_XDRIVER_XF86_INPUT_LIBINPUT=y
|
|
BR2_PACKAGE_XKEYBOARD_CONFIG=y
|
|
BR2_PACKAGE_LIBINPUT=y
|
|
BR2_PACKAGE_XTERM=y
|
|
|
|
# GTK3
|
|
BR2_PACKAGE_LIBGTK3=y
|
|
BR2_PACKAGE_LIBGTK3_X11=y
|
|
BR2_PACKAGE_LIBEPOXY=y
|
|
|
|
# BT TGB MOUSE & WIFI
|
|
BR2_PACKAGE_LINUX_FIRMWARE=y
|
|
BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y
|
|
BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX_BT=y
|
|
BR2_PACKAGE_BLUEZ5_UTILS=y
|
|
BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y
|
|
BR2_PACKAGE_BLUEZ5_UTILS_DEPRECATED=y
|
|
BR2_PACKAGE_BLUEZ5_UTILS_TOOLS=y
|
|
BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HID=y
|
|
BR2_PACKAGE_BLUEZ5_UTILS_TOOLS_HID2HCI=y
|
|
BR2_PACKAGE_EUDEV=y
|
|
BR2_PACKAGE_XKEYBOARD_CONFIG=y
|
|
BR2_PACKAGE_XINPUT=y
|
|
BR2_PACKAGE_XAPP_XRANDR=y
|
|
BR2_PACKAGE_LINUX_FIRMWARE_RTL_RTW88=y
|
|
BR2_PACKAGE_RTW88=y
|
|
BR2_PACKAGE_LINUX_FIRMWARE_REGULATORY=y
|
|
BR2_PACKAGE_WPA_SUPPLICANT=y
|
|
BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y
|
|
BR2_PACKAGE_WPA_SUPPLICANT_CTRL_IFACE=y
|
|
BR2_PACKAGE_DHCP=y
|
|
BR2_PACKAGE_DHCP_CLIENT=y
|