So with other problems solved, new ones arise.
My latest master build for ath79/tiny (with a few additions) is breaking my 4 MiB images again. I am trying to expose the SERIAL_8250 kernel symbol in the Openwrt menuconfig. Traditionally, one sets kernel settings through OpenWrt's .config
by prefixing them with CONFIG_KERNEL_ (similar to CONFIG_PACKAGE_ for packages in the buildroot). However, for that to work the symbols need to be exposed already (which seems to be done through config/Config-kernel.in
).
Going on the settings that show in make kernel_menuconfig target=ath79
, I have added this code to config/Config-kernel.in
:
config KERNEL_SERIAL_8250
tristate "8250/16550 and compatible serial support"
default n if SMALL_FLASH
#depends on KERNEL_TTY && KERNEL_HAS_IOMEM
depends on KERNEL_HAS_IOMEM
select KERNEL_SERIAL_CORE
select KERNEL_SERIAL_MCTRL_GPIO
OpenWrt does not seem to define the TTY symbol somehow so I am just trying with HAS_IOMEM for now. This code should make the symbol turn up in menuconfig under Global build settings -> Kernel build options
but it's not there. The search function does show a match though:
Symbol: KERNEL_SERIAL_8250 [=n]
Type : tristate
Defined at config/Config-kernel.in:1153
Prompt: 8250/16550 and compatible serial support
Depends on: KERNEL_HAS_IOMEM
Location:
-> Global build settings
(1) -> Kernel build options
Selects: KERNEL_SERIAL_CORE && KERNEL_SERIAL_MCTRL_GPIO
Can someone tell me what I'm doing wrong?
As documented in this excellent write-up, disabling kernel symbols helps with flash constrained devices, but I'd need these exposed in menuconfig to make them usable; otherwise the same kernel options would be used for my ath79/generic builds as well, not just for ath79/tiny.