# This file is part of the OpenADK project. OpenADK is copyrighted
# material, please see the LICENCE file in the top-level directory.

config ADK_RUNTIME_HOSTNAME
	string "hostname for the embedded system"
	default "openadk"
	help
	  Set your target hostname.

config ADK_RUNTIME_SSH_PUBKEY
	string "SSH public key (root user only)"
	default ""
	depends on ADK_PACKAGE_OPENSSH_SERVER || ADK_PACKAGE_DROPBEAR
	help
	  Paste your generated SSH public key here and it will be embedded into
	  the built image, so you can use it to login instantly.

config ADK_RUNTIME_PASSWORD
	string "root password for the embedded system"
	default "linux123"
	help
	  Predefine the root password enabled in the built image.

config ADK_RUNTIME_START_SERVICES
	prompt "start services by default"
	boolean
	default n
	help

source "target/config/Config.in.scripts"

config ADK_RUNTIME_TMPFS_SIZE
	string "size of /tmp in memory (kB)"
	default "16384" if ADK_TARGET_QEMU
	default "16384" if ADK_TARGET_VBOX
	default "16384" if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
	default "32768" if ADK_TARGET_SYSTEM_IBM_X40
	default "32768" if ADK_TARGET_SYSTEM_RASPBERRY_PI
	default "32768" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
	default "8192" if ADK_TARGET_SYSTEM_MIKROTIK_RB532
	default "2048"
	help
	  Size of /tmp in memory in Kilobyte.

config ADK_RUNTIME_TIMEZONE
	string "timezone for the embedded system"
	default "Europe/Berlin"
	help
	  Predefine the timezone for the embedded system.

config ADK_QUIET_KERNEL
	prompt "make bootup quiet without messages from the kernel"
	boolean
	default n
	help
	  Make bootup quiet without messages from the kernel.

choice
prompt "bootup messages from initscripts"
default ADK_RUNTIME_QUIET_INIT if ADK_PKG_XBMCBOX
default ADK_RUNTIME_VERBOSE_INIT_VGA if ADK_TARGET_WITH_VGA || ADK_TARGET_QEMU_WITH_GRAPHIC || ADK_TARGET_QEMU_WITH_GRAPHIC_ONLY || ADK_TARGET_VBOX
default ADK_RUNTIME_VERBOSE_INIT_SERIAL

config ADK_RUNTIME_VERBOSE_INIT_VGA
	depends on ADK_TARGET_WITH_VGA || ADK_TARGET_QEMU_WITH_GRAPHIC || ADK_TARGET_QEMU_WITH_GRAPHIC_ONLY || ADK_TARGET_VBOX
	boolean "output via VGA"

config ADK_RUNTIME_VERBOSE_INIT_SERIAL
	boolean "output via serial"

config ADK_RUNTIME_QUIET_INIT
	boolean "no output"

endchoice

choice
prompt "start getty or shell after bootup"
default ADK_RUNTIME_SHELL if ADK_PKG_TEST
default ADK_RUNTIME_NONE if ADK_PKG_XBMCBOX
default ADK_RUNTIME_GETTY

config ADK_RUNTIME_GETTY
	boolean "start a getty after bootup"
	help
	  Start a getty after bootup.

config ADK_RUNTIME_SHELL
	boolean "start a shell after bootup"
	help
	  Start a shell after bootup

config ADK_RUNTIME_NONE
	boolean "start no shell nor getty after bootup"
	help
	  Do not start a shell or getty after bootup

endchoice

config ADK_RUNTIME_GETTY_VGA
	boolean "start getty on VGA console (tty1-tty6)"
	depends on ADK_RUNTIME_GETTY
	default y if ADK_TARGET_QEMU_WITH_GRAPHIC_ONLY
	default y if ADK_TARGET_QEMU_WITH_GRAPHIC
	default y if ADK_TARGET_SYSTEM_RASPBERRY_PI
	default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
	default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
	default y if ADK_TARGET_SYSTEM_IBM_X40
	default y if ADK_TARGET_SYSTEM_ARANYM_M68K
	default y if ADK_TARGET_VBOX
	default n
	help
          Start getty on VGA console. (tty1-tty6)

config ADK_RUNTIME_GETTY_SERIAL
	boolean "start getty on serial console"
	depends on ADK_RUNTIME_GETTY
	default n if ADK_TARGET_QEMU_WITH_GRAPHIC_ONLY
	default n if ADK_TARGET_QEMU_WITH_GRAPHIC
	default n if ADK_TARGET_SYSTEM_RASPBERRY_PI
	default n if ADK_TARGET_SYSTEM_HUMMINGBOARD
	default n if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
	default n if ADK_TARGET_SYSTEM_IBM_X40
	default n if ADK_TARGET_SYSTEM_ARANYM_M68K
	default n if ADK_TARGET_VBOX
	default y
	help
	  Start getty on serial console.

config ADK_RUNTIME_CONSOLE_SERIAL_DEVICE
	string
	default "hvc0" if ADK_TARGET_SYSTEM_QEMU_PPC64
	default "ttyUL0" if ADK_TARGET_QEMU_MICROBLAZE_MODEL_S3ADSP1800
	default "ttyAMA0" if ADK_TARGET_QEMU_ARM_MODEL_VERSATILEPB || ADK_TARGET_QEMU_ARM_MODEL_VEXPRESS_A9 || ADK_TARGET_SYSTEM_ARM_FM || ADK_TARGET_SYSTEM_QEMU_AARCH64
	default "ttySC1" if ADK_TARGET_SYSTEM_QEMU_SH
	default "ttymxc0" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
	default "ttyAMA0" if ADK_TARGET_SYSTEM_RASPBERRY_PI
	default "ttyS0"

config ADK_RUNTIME_CONSOLE_SERIAL_SPEED
	string
	default "9600" if ADK_TARGET_SYSTEM_FON_FON2100
	default "38400" if ADK_TARGET_SYSTEM_PCENGINES_WRAP	
	default "115200"

config ADK_RUNTIME_KBD_LAYOUT
	string "keyboard layout for the embedded system"
	default ""
	depends on ADK_TARGET_WITH_INPUT
	help
	  Predefine the keyboard layout for the embedded system.

choice
prompt "initial login shell for the root user"
default ADK_ROOTSH_SASH if ADK_TARGET_UCLINUX
default ADK_ROOTSH_MKSH

config ADK_ROOTSH_MKSH
	select ADK_PACKAGE_MKSH if !ADK_TOOLCHAIN_ONLY
	bool "mksh (MirBSD Korn Shell)"
	help
	  Use mksh (a Korn Shell variant) as standard login shell
	  for the superuser.

config ADK_ROOTSH_SASH
	select ADK_PACKAGE_SASH if !ADK_TOOLCHAIN_ONLY
	bool "sash (Shell compatible with non-MMU systems)"
	help
	  standalone shell.

config ADK_ROOTSH_HUSH
	select ADK_PACKAGE_HUSH if !ADK_TOOLCHAIN_ONLY
	bool "hush (Shell compatible with non-MMU systems)"
	help
	  hush shell from busybox.

config ADK_ROOTSH_ASH
	select BUSYBOX_ASH
	bool "ash (busybox)"
	help
	  Use the minimalistic ash variant that is part of busybox
	  as standard login shell for the superuser. This is the
	  default, but discouraged due to its frugality.

config ADK_ROOTSH_BASH
	select ADK_PACKAGE_BASH
	bool "bash (GNU Bourne-Again Shell)"
	help
	  Use GNU bash as standard login shell for the superuser.

config ADK_ROOTSH_TCSH
	select ADK_PACKAGE_TCSH
	bool "tcsh (Tenex C Shell)"
	help
	  Use tcsh (a C Shell variant) as standard login shell
	  for the superuser.

config ADK_ROOTSH_ZSH
	select ADK_PACKAGE_ZSH
	bool "zsh (The Z Shell)"
	help
	  Use zsh as standard login shell for the superuser.

endchoice

choice
prompt "system /bin/sh (POSIX script shell)"
default ADK_BINSH_SASH if ADK_TARGET_UCLINUX
default ADK_BINSH_MKSH

config ADK_BINSH_MKSH
	select ADK_PACKAGE_MKSH if !ADK_TOOLCHAIN_ONLY
	bool "mksh (MirBSD Korn Shell)"
	help
	  Use mksh (a Korn Shell variant) as system shell, which is
	  both small and powerful, so quite suited for this task.

config ADK_BINSH_SASH
	select ADK_PACKAGE_SASH if !ADK_TOOLCHAIN_ONLY
	bool "sash (Standalone Shell)"
	help
	  hush shell.

config ADK_BINSH_HUSH
	select ADK_PACKAGE_HUSH if !ADK_TOOLCHAIN_ONLY
	bool "hush (busybox)"
	help
	  hush shell.

config ADK_BINSH_ASH
	select BUSYBOX_ASH
	bool "ash (busybox)"
	help
	  Use the minimalistic ash variant that is part of busybox
	  as system shell. This is the default and rather small and
	  fast, but lacks scripting features.

config ADK_BINSH_BASH
	select ADK_PACKAGE_BASH
	bool "bash (GNU Bourne-Again Shell)"
	help
	  Use GNU bash as system shell. This is discouraged due to
	  its size and slowness.

config ADK_BINSH_ZSH
	select ADK_PACKAGE_ZSH
	bool "zsh (The Z Shell)"
	help
	  Use zsh as system shell. This is probably a bad idea.

endchoice

config ADK_SIMPLE_NETWORK_CONFIG
	prompt "simple network configuration"
	boolean
	help
	  Manually change network config
	  
menu "eth0 Configuration"
depends on ADK_SIMPLE_NETWORK_CONFIG

choice
prompt "Type"
default ADK_SIMPLE_NETWORK_CONFIG_ETH0_TYPE_MANUAL

config ADK_SIMPLE_NETWORK_CONFIG_ETH0_STATIC
	bool "static IP configuration"

config ADK_SIMPLE_NETWORK_CONFIG_ETH0_DHCP
	bool "DHCP"

config ADK_SIMPLE_NETWORK_CONFIG_ETH0_NONE
	bool "no configuration"
endchoice

choice
prompt "configure default Gateway"
depends on ADK_SIMPLE_NETWORK_CONFIG_ETH0_STATIC

config ADK_SIMPLE_NETWORK_CONFIG_ETH0_STATIC_WITH_GW
	boolean "with Gateway"

config ADK_SIMPLE_NETWORK_CONFIG_ETH0_STATIC_WITHOUT_GW
	boolean "without Gateway"

endchoice

config ADK_SIMPLE_NETWORK_CONFIG_ETH0_IP
	depends on ADK_SIMPLE_NETWORK_CONFIG_ETH0_STATIC
	string "IP Address"
	default "10.0.0.2"

config ADK_SIMPLE_NETWORK_CONFIG_ETH0_NM
	depends on ADK_SIMPLE_NETWORK_CONFIG_ETH0_STATIC
	string "Netmask"
	default "255.255.255.0"

config ADK_SIMPLE_NETWORK_CONFIG_ETH0_GW
	depends on ADK_SIMPLE_NETWORK_CONFIG_ETH0_STATIC_WITH_GW
	string "Gateway"
	default "10.0.0.1"

endmenu

menu "wlan0 Configuration"
depends on ADK_SIMPLE_NETWORK_CONFIG
depends on ADK_TARGET_WITH_WIFI

choice
prompt "Type"
default ADK_SIMPLE_NETWORK_CONFIG_WLAN0_NONE

config ADK_SIMPLE_NETWORK_CONFIG_WLAN0_NONE
	bool "No configuration"

config ADK_SIMPLE_NETWORK_CONFIG_WLAN0_STATIC
	bool "static IP configuration"

config ADK_SIMPLE_NETWORK_CONFIG_WLAN0_DHCP
	bool "DHCP"

endchoice

choice
prompt "configure default Gateway"
depends on ADK_SIMPLE_NETWORK_CONFIG_WLAN0_STATIC

config ADK_SIMPLE_NETWORK_CONFIG_WLAN0_STATIC_WITH_GW
	boolean "with Gateway"

config ADK_SIMPLE_NETWORK_CONFIG_WLAN0_STATIC_WITHOUT_GW
	boolean "without Gateway"

endchoice

config ADK_SIMPLE_NETWORK_CONFIG_WLAN0_IP
	depends on ADK_SIMPLE_NETWORK_CONFIG_WLAN0_STATIC
	string "IP Address"
	default "192.168.1.2"

config ADK_SIMPLE_NETWORK_CONFIG_WLAN0_NM
	depends on ADK_SIMPLE_NETWORK_CONFIG_WLAN0_STATIC
	string "Netmask"
	default "255.255.255.0"

config ADK_SIMPLE_NETWORK_CONFIG_WLAN0_GW
	depends on ADK_SIMPLE_NETWORK_CONFIG_WLAN0_STATIC_WITH_GW
	string "Gateway"
	default "192.168.1.1"

endmenu

menu "eth1 Configuration"
depends on ADK_SIMPLE_NETWORK_CONFIG && \
	ADK_TARGET_SYSTEM_MIKROTIK_RB532 

choice
prompt "Type"
default ADK_SIMPLE_NETWORK_CONFIG_ETH1_NONE

config ADK_SIMPLE_NETWORK_CONFIG_ETH1_STATIC
	bool "static IP configuration"

config ADK_SIMPLE_NETWORK_CONFIG_ETH1_DHCP
	bool "DHCP"

config ADK_SIMPLE_NETWORK_CONFIG_ETH1_NONE
	bool "no configuration"
endchoice

choice
prompt "configure default Gateway"
depends on ADK_SIMPLE_NETWORK_CONFIG_ETH1_STATIC

config ADK_SIMPLE_NETWORK_CONFIG_ETH1_STATIC_WITH_GW
	boolean "with Gateway"

config ADK_SIMPLE_NETWORK_CONFIG_ETH1_STATIC_WITHOUT_GW
	boolean "without Gateway"

endchoice

config ADK_SIMPLE_NETWORK_CONFIG_ETH1_IP
	depends on ADK_SIMPLE_NETWORK_CONFIG_ETH1_STATIC
	string "IP Address"
	default "172.16.0.2"

config ADK_SIMPLE_NETWORK_CONFIG_ETH1_NM
	depends on ADK_SIMPLE_NETWORK_CONFIG_ETH1_STATIC
	string "Netmask"
	default "255.255.0.0"

config ADK_SIMPLE_NETWORK_CONFIG_ETH1_GW
	depends on ADK_SIMPLE_NETWORK_CONFIG_ETH1_STATIC_WITH_GW
	string "Gateway"
	default "172.16.0.1"

endmenu

config ADK_SIMPLE_NETWORK_CONFIG_NS
	depends on ADK_SIMPLE_NETWORK_CONFIG
	depends on !ADK_SIMPLE_NETWORK_CONFIG_ETH0_DHCP
	depends on !ADK_SIMPLE_NETWORK_CONFIG_ETH1_DHCP
	depends on !ADK_SIMPLE_NETWORK_CONFIG_WLAN0_DHCP
	string "Nameserver"
	default "10.0.0.1"

config ADK_SIMPLE_NETWORK_CONFIG_PROXY
	depends on ADK_SIMPLE_NETWORK_CONFIG
	string "HTTP-Proxy (f.e. http://10.0.0.2:8080)"
	default ""