Config.in.runtime 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557
  1. # This file is part of the OpenADK project. OpenADK is copyrighted
  2. # material, please see the LICENCE file in the top-level directory.
  3. config ADK_RUNTIME_HOSTNAME
  4. string "hostname for the embedded system"
  5. default "openadk"
  6. help
  7. Set your target hostname.
  8. choice
  9. prompt "System for /dev management"
  10. config ADK_RUNTIME_DEV_MDEV
  11. bool "Use mdev"
  12. select ADK_KERNEL_DEVTMPFS
  13. select ADK_KERNEL_DEVTMPFS_MOUNT
  14. config ADK_RUNTIME_DEV_UDEV
  15. bool "Use udev"
  16. select ADK_PACKAGE_UDEV
  17. select ADK_KERNEL_DEVTMPFS
  18. select ADK_KERNEL_DEVTMPFS_MOUNT
  19. config ADK_RUNTIME_DEV_STATIC
  20. bool "Use static /dev"
  21. endchoice
  22. config ADK_RUNTIME_SSH_PUBKEY
  23. string "SSH public key (root user only)"
  24. depends on ADK_PACKAGE_OPENSSH_SERVER || ADK_PACKAGE_DROPBEAR
  25. default ""
  26. help
  27. Paste your generated SSH public key here and it will be embedded into
  28. the built image, so you can use it to login instantly.
  29. config ADK_RUNTIME_PASSWORD
  30. string "root password for the embedded system"
  31. default "$1$bJoW4DmS$7fUVat.9iFSAePzA4j4Jm."
  32. help
  33. Predefine the root password enabled in the built image.
  34. Use ./host_*/usr/bin/mkcrypt to generate the hash.
  35. Default password is linux123
  36. config ADK_RUNTIME_ADDUSER
  37. bool "add an user"
  38. default n
  39. help
  40. Enable this option to add an unprivileged user.
  41. Fixed UID/GID 100 is used. A group with the same name is added.
  42. config ADK_RUNTIME_USER_NAME
  43. string "user name"
  44. default "adk"
  45. depends on ADK_RUNTIME_ADDUSER
  46. config ADK_RUNTIME_USER_PASSWORD
  47. string "user password"
  48. default "$1$bJoW4DmS$7fUVat.9iFSAePzA4j4Jm."
  49. depends on ADK_RUNTIME_ADDUSER
  50. help
  51. Predefine the user password enabled in the built image.
  52. Use ./host_*/usr/bin/mkcrypt to generate the hash.
  53. Default password is linux123
  54. config ADK_RUNTIME_USER_HOME
  55. string "user home directory"
  56. default "/home/adk"
  57. depends on ADK_RUNTIME_ADDUSER
  58. help
  59. Set the home directory to use.
  60. config ADK_RUNTIME_USER_SHELL
  61. string "user shell"
  62. default "/bin/sh"
  63. depends on ADK_RUNTIME_ADDUSER
  64. help
  65. Set the shell to use.
  66. config ADK_RUNTIME_START_SERVICES
  67. bool "start services by default"
  68. default n
  69. help
  70. Enable this option to start selected services on boot.
  71. source "target/config/Config.in.scripts"
  72. config ADK_RUNTIME_TMPFS_SIZE
  73. string "size of /tmp in memory (kB)"
  74. default "16384" if ADK_TARGET_VBOX
  75. default "16384" if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
  76. default "32768" if ADK_TARGET_SYSTEM_IBM_X40
  77. default "32768" if ADK_TARGET_SYSTEM_RASPBERRY_PI
  78. default "32768" if ADK_TARGET_SYSTEM_RASPBERRY_PI2
  79. default "32768" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
  80. default "8192" if ADK_TARGET_SYSTEM_MIKROTIK_RB532
  81. default "2048"
  82. help
  83. Size of /tmp in memory in Kilobyte.
  84. config ADK_RUNTIME_TIMEZONE
  85. string "timezone for the embedded system"
  86. default "Europe/Berlin"
  87. help
  88. Predefine the timezone for the embedded system.
  89. choice
  90. prompt "bootup messages from kernel"
  91. config ADK_RUNTIME_VERBOSE_KERNEL_VGA_ONLY
  92. bool "output via VGA only"
  93. depends on ADK_TARGET_WITH_VGA
  94. config ADK_RUNTIME_VERBOSE_KERNEL_SERIAL_ONLY
  95. bool "output via serial console only"
  96. depends on ADK_TARGET_WITH_SERIAL \
  97. || ADK_TARGET_QEMU \
  98. || ADK_TARGET_SIM
  99. config ADK_RUNTIME_VERBOSE_KERNEL_VGA_SERIAL
  100. bool "output via VGA and serial console"
  101. depends on ADK_TARGET_WITH_SERIAL && \
  102. ADK_TARGET_WITH_VGA
  103. help
  104. Output is via VGA and serial console.
  105. Init can use only serial via /dev/console.
  106. config ADK_RUNTIME_VERBOSE_KERNEL_SERIAL_VGA
  107. bool "output via serial console and VGA"
  108. depends on ADK_TARGET_WITH_SERIAL && \
  109. ADK_TARGET_WITH_VGA
  110. help
  111. Output is via serial console and VGA.
  112. Init can use only VGA via /dev/console.
  113. config ADK_RUNTIME_QUIET_KERNEL
  114. bool "no output from the kernel"
  115. help
  116. Make bootup quiet without messages from the kernel.
  117. endchoice
  118. choice
  119. prompt "bootup messages from initscripts"
  120. default ADK_RUNTIME_VERBOSE_INIT_VGA if ADK_TARGET_WITH_VGA
  121. default ADK_RUNTIME_VERBOSE_INIT_SERIAL
  122. config ADK_RUNTIME_VERBOSE_INIT_VGA
  123. bool "output via VGA"
  124. depends on ADK_TARGET_WITH_VGA
  125. depends on ADK_RUNTIME_VERBOSE_KERNEL_SERIAL_VGA || \
  126. ADK_RUNTIME_VERBOSE_KERNEL_VGA_ONLY || \
  127. ADK_RUNTIME_QUIET_KERNEL
  128. config ADK_RUNTIME_VERBOSE_INIT_SERIAL
  129. bool "output via serial"
  130. depends on ADK_TARGET_WITH_SERIAL \
  131. || ADK_TARGET_QEMU \
  132. || ADK_TARGET_SIM
  133. depends on ADK_RUNTIME_VERBOSE_KERNEL_VGA_SERIAL || \
  134. ADK_RUNTIME_VERBOSE_KERNEL_SERIAL_ONLY || \
  135. ADK_RUNTIME_QUIET_KERNEL
  136. config ADK_RUNTIME_QUIET_INIT
  137. bool "no output"
  138. endchoice
  139. choice
  140. prompt "start getty or shell after bootup"
  141. default ADK_RUNTIME_GETTY
  142. config ADK_RUNTIME_GETTY
  143. bool "start a getty after bootup"
  144. help
  145. Start a getty after bootup.
  146. config ADK_RUNTIME_SHELL
  147. bool "start a shell after bootup"
  148. help
  149. Start a shell after bootup.
  150. config ADK_RUNTIME_NONE
  151. bool "start no shell nor getty after bootup"
  152. help
  153. Do not start a shell or getty after bootup.
  154. endchoice
  155. config ADK_RUNTIME_GETTY_VGA
  156. bool "start getty on VGA console (tty1-tty6)"
  157. depends on ADK_RUNTIME_GETTY && ADK_TARGET_WITH_VGA
  158. default y if ADK_TARGET_QEMU_WITH_GRAPHIC_ONLY
  159. default y if ADK_TARGET_QEMU_WITH_GRAPHIC
  160. default y if ADK_TARGET_SYSTEM_RASPBERRY_PI
  161. default y if ADK_TARGET_SYSTEM_RASPBERRY_PI2
  162. default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
  163. default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
  164. default y if ADK_TARGET_SYSTEM_IBM_X40
  165. default y if ADK_TARGET_SYSTEM_ARANYM_M68K
  166. default y if ADK_TARGET_VBOX
  167. default n
  168. help
  169. Start getty on VGA console. (tty1-tty6)
  170. config ADK_RUNTIME_GETTY_SERIAL
  171. bool "start getty on serial console"
  172. depends on ADK_RUNTIME_GETTY && ( ADK_TARGET_WITH_SERIAL \
  173. || ADK_TARGET_QEMU \
  174. || ADK_TARGET_SIM )
  175. default n if ADK_TARGET_QEMU_WITH_GRAPHIC_ONLY
  176. default n if ADK_TARGET_QEMU_WITH_GRAPHIC
  177. default n if ADK_TARGET_SYSTEM_RASPBERRY_PI
  178. default n if ADK_TARGET_SYSTEM_RASPBERRY_PI2
  179. default n if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
  180. default n if ADK_TARGET_SYSTEM_IBM_X40
  181. default n if ADK_TARGET_SYSTEM_ARANYM_M68K
  182. default n if ADK_TARGET_VBOX
  183. default y
  184. help
  185. Start getty on serial console.
  186. config ADK_RUNTIME_CONSOLE_VGA_DEVICE
  187. string "VGA console device"
  188. depends on ADK_TARGET_WITH_VGA
  189. default "tty0"
  190. config ADK_RUNTIME_CONSOLE_SERIAL_DEVICE
  191. string "serial console device"
  192. depends on ADK_TARGET_WITH_SERIAL \
  193. || ADK_TARGET_QEMU \
  194. || ADK_TARGET_SIM
  195. default "hvc0" if ADK_TARGET_SYSTEM_QEMU_PPC64
  196. default "ttyBF0" if ADK_TARGET_ARCH_BFIN
  197. default "ttyUL0" if ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_S3ADSP1800
  198. default "ttyARC0" if ADK_TARGET_SYSTEM_NSIM_ARCV1 \
  199. || ADK_TARGET_SYSTEM_NSIM_ARCV2
  200. default "ttyAMA0" if ADK_TARGET_SYSTEM_QEMU_ARM_VERSATILEPB \
  201. || ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9 \
  202. || ADK_TARGET_SYSTEM_ARM_FM \
  203. || ADK_TARGET_SYSTEM_QEMU_AARCH64
  204. default "ttySC1" if ADK_TARGET_SYSTEM_QEMU_SH
  205. default "ttySC0" if ADK_TARGET_SYSTEM_SIM_H8300H
  206. default "ttymxc0" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
  207. default "ttyAMA0" if ADK_TARGET_SYSTEM_RASPBERRY_PI
  208. default "ttyAMA0" if ADK_TARGET_SYSTEM_RASPBERRY_PI2
  209. default "ttyDA1" if ADK_TARGET_SYSTEM_QEMU_METAG
  210. default "ttyS2" if ADK_TARGET_SYSTEM_KINETIS_K70
  211. default "ttyO0" if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
  212. default "ttyS0"
  213. config ADK_RUNTIME_CONSOLE_SERIAL_SPEED
  214. string "serial console speed"
  215. depends on ADK_TARGET_WITH_SERIAL \
  216. || ADK_TARGET_QEMU \
  217. || ADK_TARGET_SIM
  218. default "9600" if ADK_TARGET_SYSTEM_FON_FON2100
  219. default "38400" if ADK_TARGET_SYSTEM_PCENGINES_WRAP
  220. default "115200"
  221. config ADK_RUNTIME_KBD_LAYOUT
  222. string "keyboard layout for the embedded system"
  223. depends on ADK_TARGET_WITH_INPUT
  224. default "de-latin1-nodeadkeys"
  225. help
  226. Predefine the keyboard layout for the embedded system.
  227. For example use de-latin1-nodeadkeys.
  228. choice
  229. prompt "initial login shell for the root user"
  230. default ADK_ROOTSH_SASH if ADK_TARGET_WITHOUT_MMU
  231. default ADK_ROOTSH_MKSH
  232. config ADK_ROOTSH_MKSH
  233. bool "mksh (MirBSD Korn Shell)"
  234. select ADK_PACKAGE_MKSH if !ADK_TOOLCHAIN_ONLY
  235. help
  236. Use mksh (a Korn Shell variant) as standard login shell
  237. for the superuser.
  238. config ADK_ROOTSH_SASH
  239. bool "sash (Shell compatible with non-MMU systems)"
  240. select ADK_PACKAGE_SASH if !ADK_TOOLCHAIN_ONLY
  241. help
  242. standalone shell.
  243. config ADK_ROOTSH_HUSH
  244. bool "hush (Shell compatible with non-MMU systems)"
  245. select ADK_PACKAGE_HUSH if !ADK_TOOLCHAIN_ONLY
  246. help
  247. hush shell from busybox.
  248. config ADK_ROOTSH_ASH
  249. bool "ash (busybox)"
  250. select BUSYBOX_ASH
  251. help
  252. Use the minimalistic ash variant that is part of busybox
  253. as standard login shell for the superuser. This is the
  254. default, but discouraged due to its frugality.
  255. config ADK_ROOTSH_BASH
  256. bool "bash (GNU Bourne-Again Shell)"
  257. select ADK_PACKAGE_BASH
  258. help
  259. Use GNU bash as standard login shell for the superuser.
  260. config ADK_ROOTSH_TCSH
  261. bool "tcsh (Tenex C Shell)"
  262. select ADK_PACKAGE_TCSH
  263. help
  264. Use tcsh (a C Shell variant) as standard login shell
  265. for the superuser.
  266. config ADK_ROOTSH_ZSH
  267. bool "zsh (The Z Shell)"
  268. select ADK_PACKAGE_ZSH
  269. help
  270. Use zsh as standard login shell for the superuser.
  271. endchoice
  272. choice
  273. prompt "system /bin/sh (POSIX script shell)"
  274. default ADK_BINSH_SASH if ADK_TARGET_WITHOUT_MMU
  275. default ADK_BINSH_MKSH
  276. config ADK_BINSH_MKSH
  277. bool "mksh (MirBSD Korn Shell)"
  278. select ADK_PACKAGE_MKSH if !ADK_TOOLCHAIN_ONLY
  279. help
  280. Use mksh (a Korn Shell variant) as system shell, which is
  281. both small and powerful, so quite suited for this task.
  282. config ADK_BINSH_SASH
  283. bool "sash (Standalone Shell)"
  284. select ADK_PACKAGE_SASH if !ADK_TOOLCHAIN_ONLY
  285. help
  286. hush shell.
  287. config ADK_BINSH_HUSH
  288. bool "hush (busybox)"
  289. select ADK_PACKAGE_HUSH if !ADK_TOOLCHAIN_ONLY
  290. help
  291. hush shell.
  292. config ADK_BINSH_ASH
  293. bool "ash (busybox)"
  294. select BUSYBOX_ASH
  295. help
  296. Use the minimalistic ash variant that is part of busybox
  297. as system shell. This is the default and rather small and
  298. fast, but lacks scripting features.
  299. config ADK_BINSH_BASH
  300. bool "bash (GNU Bourne-Again Shell)"
  301. select ADK_PACKAGE_BASH
  302. help
  303. Use GNU bash as system shell. This is discouraged due to
  304. its size and slowness.
  305. config ADK_BINSH_ZSH
  306. bool "zsh (The Z Shell)"
  307. select ADK_PACKAGE_ZSH
  308. help
  309. Use zsh as system shell. This is probably a bad idea.
  310. endchoice
  311. # workaround for USB ethernet f.e. Raspberry Pi2
  312. config ADK_RUNTIME_WAIT_FOR_ETHERNET
  313. bool
  314. default y if ADK_TARGET_SYSTEM_RASPBERRY_PI2
  315. config ADK_SIMPLE_NETWORK_CONFIG
  316. bool "simple network configuration"
  317. help
  318. Manually change network config
  319. menu "eth0 Configuration"
  320. depends on ADK_SIMPLE_NETWORK_CONFIG
  321. choice
  322. prompt "Type"
  323. default ADK_SIMPLE_NETWORK_CONFIG_ETH0_TYPE_MANUAL
  324. config ADK_SIMPLE_NETWORK_CONFIG_ETH0_STATIC
  325. bool "static IP configuration"
  326. config ADK_SIMPLE_NETWORK_CONFIG_ETH0_DHCP
  327. bool "DHCP"
  328. config ADK_SIMPLE_NETWORK_CONFIG_ETH0_NONE
  329. bool "no configuration"
  330. endchoice
  331. choice
  332. prompt "configure default Gateway"
  333. depends on ADK_SIMPLE_NETWORK_CONFIG_ETH0_STATIC
  334. config ADK_SIMPLE_NETWORK_CONFIG_ETH0_STATIC_WITH_GW
  335. bool "with Gateway"
  336. config ADK_SIMPLE_NETWORK_CONFIG_ETH0_STATIC_WITHOUT_GW
  337. bool "without Gateway"
  338. endchoice
  339. config ADK_SIMPLE_NETWORK_CONFIG_ETH0_IP
  340. string "IP Address"
  341. depends on ADK_SIMPLE_NETWORK_CONFIG_ETH0_STATIC
  342. default "10.0.0.2"
  343. config ADK_SIMPLE_NETWORK_CONFIG_ETH0_NM
  344. string "Netmask"
  345. depends on ADK_SIMPLE_NETWORK_CONFIG_ETH0_STATIC
  346. default "255.255.255.0"
  347. config ADK_SIMPLE_NETWORK_CONFIG_ETH0_GW
  348. string "Gateway"
  349. depends on ADK_SIMPLE_NETWORK_CONFIG_ETH0_STATIC_WITH_GW
  350. default "10.0.0.1"
  351. endmenu
  352. menu "wlan0 Configuration"
  353. depends on ADK_SIMPLE_NETWORK_CONFIG
  354. depends on ADK_TARGET_WITH_WIFI
  355. choice
  356. prompt "Type"
  357. default ADK_SIMPLE_NETWORK_CONFIG_WLAN0_NONE
  358. config ADK_SIMPLE_NETWORK_CONFIG_WLAN0_NONE
  359. bool "No configuration"
  360. config ADK_SIMPLE_NETWORK_CONFIG_WLAN0_STATIC
  361. bool "static IP configuration"
  362. config ADK_SIMPLE_NETWORK_CONFIG_WLAN0_DHCP
  363. bool "DHCP"
  364. endchoice
  365. choice
  366. prompt "configure default Gateway"
  367. depends on ADK_SIMPLE_NETWORK_CONFIG_WLAN0_STATIC
  368. config ADK_SIMPLE_NETWORK_CONFIG_WLAN0_STATIC_WITH_GW
  369. bool "with Gateway"
  370. config ADK_SIMPLE_NETWORK_CONFIG_WLAN0_STATIC_WITHOUT_GW
  371. bool "without Gateway"
  372. endchoice
  373. config ADK_SIMPLE_NETWORK_CONFIG_WLAN0_IP
  374. string "IP Address"
  375. depends on ADK_SIMPLE_NETWORK_CONFIG_WLAN0_STATIC
  376. default "192.168.1.2"
  377. config ADK_SIMPLE_NETWORK_CONFIG_WLAN0_NM
  378. string "Netmask"
  379. depends on ADK_SIMPLE_NETWORK_CONFIG_WLAN0_STATIC
  380. default "255.255.255.0"
  381. config ADK_SIMPLE_NETWORK_CONFIG_WLAN0_GW
  382. string "Gateway"
  383. depends on ADK_SIMPLE_NETWORK_CONFIG_WLAN0_STATIC_WITH_GW
  384. default "192.168.1.1"
  385. endmenu
  386. choice
  387. prompt "WLAN Security"
  388. depends on ADK_SIMPLE_NETWORK_CONFIG_WLAN0_STATIC || ADK_SIMPLE_NETWORK_CONFIG_WLAN0_DHCP
  389. default ADK_SIMPLE_NETWORK_CONFIG_WLAN0_NOSEC
  390. config ADK_SIMPLE_NETWORK_CONFIG_WLAN0_NOSEC
  391. bool "No security"
  392. config ADK_SIMPLE_NETWORK_CONFIG_WLAN0_WPA2
  393. bool "WPA2"
  394. endchoice
  395. config ADK_SIMPLE_NETWORK_CONFIG_WLAN0_WPA2_SSID
  396. string "SSID"
  397. depends on ADK_SIMPLE_NETWORK_CONFIG_WLAN0_WPA2
  398. default ""
  399. config ADK_SIMPLE_NETWORK_CONFIG_WLAN0_WPA2_PW
  400. string "Password"
  401. depends on ADK_SIMPLE_NETWORK_CONFIG_WLAN0_WPA2
  402. default ""
  403. menu "eth1 Configuration"
  404. depends on ADK_SIMPLE_NETWORK_CONFIG && \
  405. ADK_TARGET_SYSTEM_MIKROTIK_RB532
  406. choice
  407. prompt "Type"
  408. default ADK_SIMPLE_NETWORK_CONFIG_ETH1_NONE
  409. config ADK_SIMPLE_NETWORK_CONFIG_ETH1_STATIC
  410. bool "static IP configuration"
  411. config ADK_SIMPLE_NETWORK_CONFIG_ETH1_DHCP
  412. bool "DHCP"
  413. config ADK_SIMPLE_NETWORK_CONFIG_ETH1_NONE
  414. bool "no configuration"
  415. endchoice
  416. choice
  417. prompt "configure default Gateway"
  418. depends on ADK_SIMPLE_NETWORK_CONFIG_ETH1_STATIC
  419. config ADK_SIMPLE_NETWORK_CONFIG_ETH1_STATIC_WITH_GW
  420. bool "with Gateway"
  421. config ADK_SIMPLE_NETWORK_CONFIG_ETH1_STATIC_WITHOUT_GW
  422. bool "without Gateway"
  423. endchoice
  424. config ADK_SIMPLE_NETWORK_CONFIG_ETH1_IP
  425. string "IP Address"
  426. depends on ADK_SIMPLE_NETWORK_CONFIG_ETH1_STATIC
  427. default "172.16.0.2"
  428. config ADK_SIMPLE_NETWORK_CONFIG_ETH1_NM
  429. string "Netmask"
  430. depends on ADK_SIMPLE_NETWORK_CONFIG_ETH1_STATIC
  431. default "255.255.0.0"
  432. config ADK_SIMPLE_NETWORK_CONFIG_ETH1_GW
  433. string "Gateway"
  434. depends on ADK_SIMPLE_NETWORK_CONFIG_ETH1_STATIC_WITH_GW
  435. default "172.16.0.1"
  436. endmenu
  437. config ADK_SIMPLE_NETWORK_CONFIG_NS
  438. string "Nameserver"
  439. depends on ADK_SIMPLE_NETWORK_CONFIG
  440. depends on !ADK_SIMPLE_NETWORK_CONFIG_ETH0_DHCP
  441. depends on !ADK_SIMPLE_NETWORK_CONFIG_ETH1_DHCP
  442. depends on !ADK_SIMPLE_NETWORK_CONFIG_WLAN0_DHCP
  443. default "10.0.0.1"
  444. config ADK_SIMPLE_NETWORK_CONFIG_PROXY
  445. string "HTTP-Proxy (f.e. http://10.0.0.2:8080)"
  446. depends on ADK_SIMPLE_NETWORK_CONFIG
  447. default ""