# from rk3399_arm64.config
BR2_aarch64=y
BR2_cortex_a72_a53=y
BR2_PACKAGE_RK3399=y
BR2_ROOTFS_OVERLAY="board/rockchip/rk3399/fs-overlay-64/"

# from base.config
# base subset is the basic subset of all rootfs, ramdisk. 
#  - auto resize ext2 fs
BR2_TARGET_ROOTFS_EXT2_SIZE="AUTO"
#  - use glibc as the basic libc
BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
#  - Rockchip use 4.4 kernel, so we need 4.4 kernel header
BR2_KERNEL_HEADERS_4_4=y
#  - use local kernel source
BR2_LINUX_KERNEL_CUSTOM_GIT=y
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="file://$(TOPDIR)/../kernel"
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="HEAD"
#  - we use buildroot toolcharn here, may change to custom toolchain in the feature
BR2_TOOLCHAIN_BUILDROOT_CXX=y
#  - the basic fs-overlay, will copy to rootfs after all package built
# BR2_ROOTFS_OVERLAY="board/rockchip/common/base"
#  - the post build script will be excuted after all fs-overlay copyed
BR2_ROOTFS_POST_BUILD_SCRIPT="build/post.sh"
#  - specify this is rockchip package
BR2_PACKAGE_ROCKCHIP=y
#  - show other busybox config
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
#  - we need to support various rootfs, cpio for ramdisk, ext2/4 for large system, squashfs for small system
BR2_TARGET_ROOTFS_CPIO=y
BR2_TARGET_ROOTFS_CPIO_GZIP=y
#  - some people may wish to use their own modified BusyBox configuration file.
BR2_PACKAGE_BUSYBOX_CONFIG="board/rockchip/common/base/busybox.config"

# from base_extra.config
#  - we need to use fsck and resize2fs to check and extend ext2/4 file system when the first time system boot up
BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_FSCK=y
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y

# from gpu.config
BR2_PACKAGE_LIBMALI=y
BR2_PACKAGE_MESA3D=y
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST=y
BR2_PACKAGE_MESA3D_OPENGL_EGL=y
BR2_PACKAGE_MESA3D_OPENGL_ES=y

# from video_mpp.config
#  - user space library for use rga to do image zoom in/out, rotate, etc
BR2_PACKAGE_LINUX_RGA=y

# from audio.config
# Audio subset mainly include functions:
#  - asls tools
#  - libmad to play mp3
BR2_PACKAGE_ALSA_UTILS=y
BR2_PACKAGE_ALSA_UTILS_ALSACONF=y
BR2_PACKAGE_ALSA_UTILS_AMIXER=y
BR2_PACKAGE_ALSA_UTILS_APLAY=y
BR2_PACKAGE_ALSA_UTILS_ALSALOOP=y
BR2_PACKAGE_ALSA_PLUGINS=y
BR2_PACKAGE_LIBMAD=y
# Copy alsa configs
BR2_PACKAGE_ALSA_CONFIG=y

# from debug.config"
# debug subset is all the debug tools we used
#  - evtest used to debug input event like touch panel, key, mouse, etc
BR2_PACKAGE_EVTEST=y
#  - lrzsz used to transfer file between device and secure crt
BR2_PACKAGE_LRZSZ=y
#  - procrank used to monitor the memory used by each process, thread, application
BR2_PACKAGE_PROCRANK_LINUX=y
#  - install the libdrm test programs
BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y
#  - io tool used to read/write register and memory
BR2_PACKAGE_IO=y
#  - i2c tool used to detec, dump, set and get i2c devices
BR2_PACKAGE_I2C_TOOLS=y
#  - strace used to track what system calls a program makes
BR2_PACKAGE_STRACE=y
#  - iputils is a set of network debug tools like ping, tracepath, arping, tftpd, rarpd, clockdiff, rdisc
BR2_PACKAGE_IPUTILS=y
#  - debug tools for wireless devices using the mac80211 kernel stack
BR2_PACKAGE_IW=y
#  - a collection of tools to configure wireless lan cards, including iwconfig, iwlist, iwspy, iwpriv, ifrename
BR2_PACKAGE_WIRELESS_TOOLS=y
#  - perf tool provided by kernel
BR2_PACKAGE_LINUX_TOOLS_PERF=y
#  - add stress-ng
BR2_PACKAGE_STRESS_NG=y

# from "network.config"
#  - user space IEEE 802.1X/WPA supplicant
BR2_PACKAGE_WPA_SUPPLICANT=y
#  - support ap mode for your wifi
BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT=y
#  - enable support for the autoscan feature (allow periodic scan)
BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN=y
#  - enable eap support for your wifi
BR2_PACKAGE_WPA_SUPPLICANT_EAP=y
#  - install wpa_cli command line utility
BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
#  - install libwpa_client.so
BR2_PACKAGE_WPA_SUPPLICANT_WPA_CLIENT_SO=y
#  - install wpa_passphrase command line utility
BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y
#  - tiny ssh server
BR2_PACKAGE_DROPBEAR=y

# from bt.config
# BR2_PACKAGE_RKWIFIBT=y
# BR2_PACKAGE_RKWIFIBT_RTL8821CS=y
# BR2_PACKAGE_BLUEZ_ALSA=y
# BR2_PACKAGE_BLUEZ_ALSA_HCITOP=y
# BR2_PACKAGE_BLUEZ5_UTILS=y
# BR2_PACKAGE_BLUEZ5_UTILS_OBEX=y
# BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y
# BR2_PACKAGE_BLUEZ5_UTILS_GATTTOOL=y
# BR2_PACKAGE_BLUEZ5_UTILS_EXPERIMENTAL=y
# BR2_PACKAGE_BLUEZ5_PLUGINS_SIXAXIS=y

# form ntfs.config
# - A full-featured exFAT file system implementation and exFAT filesystem utilities.
BR2_PACKAGE_EXFAT=y
BR2_PACKAGE_EXFAT_UTILS=y

# atc_defconfig
BR2_TARGET_GENERIC_HOSTNAME="rk3399"
BR2_TARGET_GENERIC_ISSUE="Welcome to RK3399 Buildroot"
BR2_TARGET_ROOTFS_EXT2=n
BR2_TARGET_ROOTFS_EXT2_4=n
BR2_TARGET_ROOTFS_SQUASHFS=n
BR2_PACKAGE_DEVICEIO_TEST=y
BR2_PACKAGE_SBC=y
BR2_PACKAGE_LIBBSD=y
BR2_PACKAGE_GPTFDISK=y
BR2_PACKAGE_GPTFDISK_SGDISK=y
BR2_PACKAGE_LIBFUSE=y
BR2_PACKAGE_MPG123=y
BR2_PACKAGE_LIBUNWIND=y
BR2_PACKAGE_JPEG=y
BR2_PACKAGE_JPEG_SIMD_SUPPORT=y
BR2_PACKAGE_JPEG_TURBO=y
BR2_PACKAGE_HAS_JPEG=y
BR2_PACKAGE_PROVIDES_JPEG="jpeg-turbo"
BR2_PACKAGE_AVAHI=y
BR2_PACKAGE_AVAHI_AUTOIPD=y
BR2_PACKAGE_AVAHI_DAEMON=y
BR2_PACKAGE_LIBCURL=y
BR2_PACKAGE_LIBCURL_CURL=y
BR2_PACKAGE_SQLCIPHER=y
BR2_PACKAGE_LIBCURL_VERBOSE=y
BR2_PACKAGE_OPENSSL=y
BR2_PACKAGE_LIBOPENSSL=y
BR2_PACKAGE_CA_CERTIFICATES=y
BR2_ROOTFS_OVERLAY="board/rockchip/rk3399/fs-overlay-atc/"
BR2_PACKAGE_IPROUTE2=y
BR2_PACKAGE_LIBUSB=y
# BR2_PACKAGE_NET_TOOLS=y
BR2_PACKAGE_LIBWEBSOCKETS=y
BR2_PACKAGE_LIBQRENCODE=y
BR2_PACKAGE_LIBPCAP=y
BR2_PACKAGE_MBEDTLS=y
BR2_PACKAGE_LIBXML2=y

BR2_PACKAGE_ANDROID_TOOLS=n
BR2_PACKAGE_PROCPS_NG=y
BR2_PACKAGE_UBOOT_TOOLS=y
BR2_PACKAGE_HOSTAPD=n

BR2_PACKAGE_BLUEZ_UTILS=y
# BR2_PACKAGE_BLUEZ_TOOLS=y

BR2_PACKAGE_CMAKE=y
BR2_PACKAGE_JSON_FOR_MODERN_CPP=y
BR2_PACKAGE_FMT=y
BR2_PACKAGE_SPDLOG=y
BR2_PACKAGE_LIBARCHIVE=y
BR2_PACKAGE_LIBUV=y

# systemd
BR2_INIT_SYSTEMD=y
BR2_PACKAGE_SYSTEMD_FIRSTBOOT=y
# BR2_PACKAGE_SYSTEMD_HWDB is not set
# BR2_PACKAGE_SYSTEMD_MYHOSTNAME is not set
# BR2_PACKAGE_SYSTEMD_NETWORKD is not set
# BR2_PACKAGE_SYSTEMD_RESOLVED is not set
BR2_TARGET_GENERIC_ROOT_PASSWD=""
BR2_PACKAGE_UPOWER=n
BR2_PACKAGE_SYSTEMD_TIMEDATED=y
BR2_PACKAGE_SYSTEMD_TIMESYNCD=n
BR2_PACKAGE_NTP=n

# X11
BR2_PACKAGE_XAPP_TWM=y
BR2_PACKAGE_XAPP_XINIT=y
BR2_PACKAGE_XAPP_XINPUT=y
BR2_PACKAGE_XAPP_XSET=y
BR2_PACKAGE_XAPP_XSETMODE=y
BR2_PACKAGE_XAPP_XSETPOINTER=y
BR2_PACKAGE_XAPP_XSETROOT=y
BR2_PACKAGE_XAPP_XWININFO=y
BR2_PACKAGE_XAPP_XWD=y
BR2_PACKAGE_CAIRO_PNG=y
BR2_PACKAGE_XDRIVER_XF86_INPUT_MOUSE=y
BR2_PACKAGE_XDRIVER_XF86_INPUT_LIBINPUT=y
BR2_PACKAGE_XORG7=y
BR2_PACKAGE_XSERVER_XORG_SERVER=y
BR2_TOOLCHAIN_BUILDROOT_WCHAR=y
BR2_USE_WCHAR=y

BR2_PACKAGE_XAPP_XRANDR=y

# for eglChooseConfig?
BR2_PACKAGE_XLIB_LIBXCOMPOSITE=y

# set /bin/sh bash && enbale completion
BR2_SYSTEM_BIN_SH_BASH=y
BR2_PACKAGE_BASH_COMPLETION=y

# dropbear clinet (scp, ssh)
BR2_PACKAGE_DROPBEAR_CLIENT=y

# kernel trace utility
BR2_PACKAGE_TRACE_CMD=y

# move from benchmark.config
BR2_PACKAGE_IPERF3=y

# move form test.config
BR2_PACKAGE_MEMTESTER=y

# GDB(gdbserver)
BR2_PACKAGE_GDB=n
BR2_PACKAGE_HOST_GDB=y
BR2_PACKAGE_HOST_GDB_PYTHON=y

BR2_PACKAGE_BINUTILS=n

# filesystem utility
BR2_PACKAGE_HFSPROGS=y

# delete unnecessary packages
# BR2_PACKAGE_RKSCRIPT is not set
# BR2_PACKAGE_IPERF is not set
# BR2_PACKAGE_LIBFFI is not set
# BR2_PACKAGE_PCRE is not set
# BR2_PACKAGE_LIBMPEG2 is not set
# BR2_PACKAGE_MESA3D_DEMOS is not set
# BR2_PACKAGE_PERL is not set
# BR2_PACKAGE_DHRYSTONE is not set
# BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_DEBUGUTILS is not set
# BR2_PACKAGE_ROCKCHIP_TEST is not set

BR2_PACKAGE_CRYPTSETUP=y

