diff --git a/board/pinecube/board.conf b/board/pinecube/board.conf new file mode 100644 index 0000000000..c4bf839eee --- /dev/null +++ b/board/pinecube/board.conf @@ -0,0 +1,3 @@ +BOOT_BIN=( + "${BINARIES_DIR}/u-boot-sunxi-with-spl.bin@16" +) diff --git a/board/pinecube/boot.cmd b/board/pinecube/boot.cmd new file mode 100644 index 0000000000..fefc647624 --- /dev/null +++ b/board/pinecube/boot.cmd @@ -0,0 +1,21 @@ +setenv bootargs console=ttyS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait rw + +fatload mmc 0 ${loadaddr} uEnv.txt +env import -t ${loadaddr} ${filesize} + +if test -n "${initrd}"; then + setenv bootargs "${bootargs} initrd=${initrd}" + fatload mmc 0 ${ramdisk_addr_r} ${initrd} + setenv initrd_size ${filesize} +fi + +fatload mmc 0 ${kernel_addr_r} ${kernel} +fatload mmc 0 ${fdt_addr_r} ${fdt} + +echo "Boot args: ${bootargs}" +if test -n "${initrd}"; then + echo "Initrd size is ${initrd_size}" + bootz ${kernel_addr_r} ${ramdisk_addr_r}:${initrd_size} ${fdt_addr_r} +else + bootz ${kernel_addr_r} - ${fdt_addr_r} +fi diff --git a/board/pinecube/cpinitramfs.sh b/board/pinecube/cpinitramfs.sh new file mode 100755 index 0000000000..5f41f710a5 --- /dev/null +++ b/board/pinecube/cpinitramfs.sh @@ -0,0 +1 @@ +cp ${BINARIES_DIR}/rootfs.cpio.gz ${BOARD_DIR}/initrd.gz diff --git a/board/pinecube/initrd.gz b/board/pinecube/initrd.gz new file mode 100644 index 0000000000..fa96b5374e Binary files /dev/null and b/board/pinecube/initrd.gz differ diff --git a/board/pinecube/kernel-extra.config b/board/pinecube/kernel-extra.config new file mode 100644 index 0000000000..c97c1bb0b0 --- /dev/null +++ b/board/pinecube/kernel-extra.config @@ -0,0 +1,3 @@ +CONFIG_WIRELESS=y +CONFIG_CFG80211=y # For rtl8189es out-of-tree driver +CONFIG_BLK_DEV_LOOP=y diff --git a/board/pinecube/os.conf b/board/pinecube/os.conf new file mode 100644 index 0000000000..5abd337c8a --- /dev/null +++ b/board/pinecube/os.conf @@ -0,0 +1 @@ +OS_AP="wlan0" diff --git a/board/pinecube/overlay-initramfs/remove_initramfs b/board/pinecube/overlay-initramfs/remove_initramfs new file mode 100755 index 0000000000..b508491809 --- /dev/null +++ b/board/pinecube/overlay-initramfs/remove_initramfs @@ -0,0 +1,4 @@ +#!/bin/sh + +cat /boot/uEnv.txt | grep -v initrd > /boot/uEnv.txt.new +mv /boot/uEnv.txt.new /boot/uEnv.txt diff --git a/board/pinecube/overlay/etc/board b/board/pinecube/overlay/etc/board new file mode 100644 index 0000000000..09304c667b --- /dev/null +++ b/board/pinecube/overlay/etc/board @@ -0,0 +1 @@ +pinecube diff --git a/board/pinecube/overlay/usr/libexec/fw-prepare-boot b/board/pinecube/overlay/usr/libexec/fw-prepare-boot new file mode 100755 index 0000000000..312ca1899f --- /dev/null +++ b/board/pinecube/overlay/usr/libexec/fw-prepare-boot @@ -0,0 +1,3 @@ +#!/bin/bash + +echo "initrd=initrd.gz" >> /boot/uEnv.txt diff --git a/board/pinecube/postscript.sh b/board/pinecube/postscript.sh new file mode 100755 index 0000000000..bc8d0496c7 --- /dev/null +++ b/board/pinecube/postscript.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +cp ${BINARIES_DIR}/zImage ${BOOT_DIR} +cp ${BINARIES_DIR}/sun8i-s3-pinecube.dtb ${BOOT_DIR} +cp ${BINARIES_DIR}/boot.scr ${BOOT_DIR} + +cp ${BOARD_DIR}/initrd.gz ${BOOT_DIR} +cp ${BOARD_DIR}/uEnv.txt ${BOOT_DIR} diff --git a/board/pinecube/uEnv.txt b/board/pinecube/uEnv.txt new file mode 100644 index 0000000000..9dd0db092e --- /dev/null +++ b/board/pinecube/uEnv.txt @@ -0,0 +1,2 @@ +kernel=zImage +fdt=sun8i-s3-pinecube.dtb diff --git a/configs/pinecube_defconfig b/configs/pinecube_defconfig new file mode 100644 index 0000000000..6cc381ae07 --- /dev/null +++ b/configs/pinecube_defconfig @@ -0,0 +1,96 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_NEON_VFPV4=y +BR2_CCACHE=y +BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-pinecube" +BR2_OPTIMIZE_2=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TARGET_OPTIMIZATION="-pipe" +BR2_TARGET_GENERIC_HOSTNAME="pinecube" +BR2_TARGET_GENERIC_ISSUE="Welcome to PINECUBE" +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y +BR2_TARGET_TZ_INFO=y +BR2_ROOTFS_OVERLAY="board/common/overlay board/pinecube/overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/common/postscript.sh" +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15" +BR2_LINUX_KERNEL_DEFCONFIG="sunxi" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/pinecube/kernel-extra.config" +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-s3-pinecube" +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox.config" +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_ALSA_UTILS=y +BR2_PACKAGE_ALSA_UTILS_APLAY=y +BR2_PACKAGE_GZIP=y +BR2_PACKAGE_JQ=y +BR2_PACKAGE_E2FSPROGS=y +BR2_PACKAGE_NTFS_3G=y +BR2_PACKAGE_B43_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y +BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8797=y +BR2_PACKAGE_LINUX_FIRMWARE_MWIFIEX_USB8897=y +BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7601U=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_88XX=y +BR2_PACKAGE_RNG_TOOLS=y +BR2_PACKAGE_RTL8189ES=y +BR2_PACKAGE_USB_MODESWITCH_DATA=y +BR2_PACKAGE_CA_CERTIFICATES=y +BR2_PACKAGE_LIBSSH2=y +BR2_PACKAGE_LIBFUSE=y +BR2_PACKAGE_LIBCURL=y +BR2_PACKAGE_LIBCURL_CURL=y +BR2_PACKAGE_LIBCAP=y +BR2_PACKAGE_PCRE=y +BR2_PACKAGE_PCRE_UCP=y +BR2_PACKAGE_SEMVER_SORT=y +BR2_PACKAGE_AUTOSSH=y +BR2_PACKAGE_CHRONY=y +BR2_PACKAGE_CRDA=y +BR2_PACKAGE_DHCP=y +BR2_PACKAGE_DHCP_CLIENT=y +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_IW=y +BR2_PACKAGE_NET_TOOLS=y +BR2_PACKAGE_NETCAT=y +BR2_PACKAGE_NTP=y +BR2_PACKAGE_NTP_SNTP=y +# BR2_PACKAGE_NTP_NTPD is not set +BR2_PACKAGE_OPENSSH=y +BR2_PACKAGE_PPPD=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN=y +BR2_PACKAGE_WPA_SUPPLICANT_EAP=y +BR2_PACKAGE_WPA_SUPPLICANT_WPS=y +BR2_PACKAGE_WPA_SUPPLICANT_CLI=y +BR2_PACKAGE_BASH=y +BR2_PACKAGE_LOGROTATE=y +BR2_PACKAGE_TAR=y +BR2_PACKAGE_UTIL_LINUX_BINARIES=y +BR2_PACKAGE_UTIL_LINUX_PARTX=y +BR2_PACKAGE_NANO=y +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="pinecube" +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_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/pinecube/boot.cmd" diff --git a/configs/pinecube_initramfs_defconfig b/configs/pinecube_initramfs_defconfig new file mode 100644 index 0000000000..fdc817713a --- /dev/null +++ b/configs/pinecube_initramfs_defconfig @@ -0,0 +1,17 @@ +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_FPU_NEON_VFPV4=y +BR2_CCACHE=y +BR2_CCACHE_DIR="$(TOPDIR)/.buildroot-ccache-pinecube-initramfs" +BR2_OPTIMIZE_2=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TARGET_OPTIMIZATION="-pipe" +BR2_TARGET_GENERIC_HOSTNAME="pinecube" +BR2_TARGET_GENERIC_ISSUE="Welcome to PINECUBE" +BR2_ROOTFS_OVERLAY="board/common/overlay-initramfs board/pinecube/overlay-initramfs" +BR2_PACKAGE_BUSYBOX_CONFIG="board/common/busybox_initramfs.config" +BR2_PACKAGE_UTIL_LINUX=y +BR2_PACKAGE_UTIL_LINUX_LIBBLKID=y +BR2_TARGET_ROOTFS_CPIO=y +BR2_TARGET_ROOTFS_CPIO_GZIP=y +# BR2_TARGET_ROOTFS_TAR is not set diff --git a/package/Config.in b/package/Config.in index 3e455b0282..e0686166e1 100644 --- a/package/Config.in +++ b/package/Config.in @@ -555,6 +555,7 @@ endmenu source "package/rs485conf/Config.in" source "package/rtc-tools/Config.in" source "package/rtl8188eu/Config.in" + source "package/rtl8189es/Config.in" source "package/rtl8189fs/Config.in" source "package/rtl8723bs/Config.in" source "package/rtl8723bu/Config.in" diff --git a/package/rtl8189es/Config.in b/package/rtl8189es/Config.in new file mode 100644 index 0000000000..2e3474e5e1 --- /dev/null +++ b/package/rtl8189es/Config.in @@ -0,0 +1,10 @@ +config BR2_PACKAGE_RTL8189ES + bool "rtl8189es" + depends on BR2_LINUX_KERNEL + help + Wireless driver rtl8189es. + + https://github.com/jwrdegoede/rtl8189ES_linux.git + +comment "rtl8189es needs a Linux kernel to be built" + depends on !BR2_LINUX_KERNEL diff --git a/package/rtl8189es/rtl8189es.hash b/package/rtl8189es/rtl8189es.hash new file mode 100644 index 0000000000..d897e5e6c2 --- /dev/null +++ b/package/rtl8189es/rtl8189es.hash @@ -0,0 +1,2 @@ +# Locally calculated +sha256 74325014c1a8503b3a7e48ad06997baddad8c1dae86bb79f4368532cc3e75fb2 rtl8189es-39c17661136da48f8e9c644194dce6a7f5076896.tar.gz diff --git a/package/rtl8189es/rtl8189es.mk b/package/rtl8189es/rtl8189es.mk new file mode 100644 index 0000000000..51477ccc97 --- /dev/null +++ b/package/rtl8189es/rtl8189es.mk @@ -0,0 +1,17 @@ +################################################################################ +# +# rtl8189es +# +################################################################################ + +RTL8189ES_VERSION = 39c17661136da48f8e9c644194dce6a7f5076896 +RTL8189ES_SITE = $(call github,jwrdegoede,rtl8189ES_linux,$(RTL8189ES_VERSION)) +RTL8189ES_LICENSE = GPL-2.0 + +RTL8189ES_MODULE_MAKE_OPTS = \ + CONFIG_RTL8189ES=m \ + KVER=$(LINUX_VERSION_PROBED) \ + KSRC=$(LINUX_DIR) + +$(eval $(kernel-module)) +$(eval $(generic-package))