I've been compiling some additional kernel modules, namely the tulip ethernet drivers, and ran into a bit of trouble. In a related thread (http://forum.openwrt.org/viewtopic.php?pid=31206#p31206) florian mentioned the following syntax of the makefile template used in ./include/modules-2..mk:
$1 Config.in symbol => BR2_KMOD_SYMBOL
$2 package name (have to match the control file) => kmod-name
$3 Files to package
$4 Specify here if the modules relie on kernel configuration symbol
$5 not used
$6 order for loading from /etc/modules.d file
$7 modules to autoload at boot time
Now the $4 parameter should hold all the symbols from kernel's .config that this particular kmod-*.ipkg package uses, right? In my case, these are: CONFIG_NET_TULIP=y, CONFIG_DE2104X=m, CONFIG_TULIP=m, CONFIG_TULIP_MWI=y, CONFIG_TULIP_MMIO=y, CONFIG_TULIP_NAPI=y, CONFIG_TULIP_NAPI_HW_MITIGATION=y, CONFIG_DE4X5=m, CONFIG_WINBOND_840=m, CONFIG_DM9102=m, CONFIG_ULI526X=m. But if I add all these into $4 with no =y or =m and whitespaces in between, no package is created. If I remove all these dependencies, package is created normally since I've already reconfigured the kernel and stored its .config into ./target/linux/x86-2.6/config. For me, this works. For all others, it won't work since they will have the stock ./target/linux/x86-2.6/config file. How is this thing done properly?
Oh and yes, this is buildroot-ng.