Kernel symbol in OpenWrt buildroot enabled but not showing

So with other problems solved, new ones arise. :smile:

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.

2 Likes

Anyone? :angel: