Hacker News new | ask | show | jobs
by lionkor 1098 days ago
I've had the pleasure of using Zephyr OS on an embedded bluetooth project with a few others. We were using NRF52x chips, with a dev board, and Zephyr was one of the least painful parts of the whole thing. Can absolutely recommend Zephyr in general.
1 comments

Zephyr has a lot of good points, but I really wish it didn't use Kconfig. Getting a working config seems to be mostly a matter of copying an already working example. It might be okay for hardware side of things, but it's a really bad at software/feature dependency.

Set https://docs.zephyrproject.org/latest/build/kconfig/tips.htm... and the issue: https://github.com/zephyrproject-rtos/zephyr/issues/52575. And don't even get me started on trying anything to group options together.

Could Zephyr's difficulties be resolved if Kconfig supported an additional operator besides 'select' and 'depends on'? Or perhaps with an overlay capability like bitbake has?

Since Kconfig is used to configure the kernel, why aren't the kernel devs experiencing similar issues with their configurations?

I would think so. I've tried to do 'feature' groups of options, but without any way to do optional includes I gave up on that idea.

Maybe I'm just doing it wrong with just trying to add the dependencies I want. It might work better if I used the menuconfig GUI. To me though it seems if I decide I want to enable 'CONFIG_NET_TCP' on my project, I shouldn't also have to specify 'CONFIG_NETWORKING'.

As for why it works better in the kernel, that's a good question that I don't know the answer to as it's been years since I tried to build a kernel with a minimum configuration.

I need to double-check this, but I’m pretty sure it does have an overlay-type capability through West. Definitely does on the devicetree side, but I’m pretty sure it does on the Kconfig side too.