By using IMAGE_INSTALL += 'kernel-modules' in our image recipe we can have the modules installed in /lib on the root file system but this also causes the kernel bzImage to be installed in /boot which is not required because we have the kernel loading from elsewhere. This is an issue because size is a constraint and including the kernel pushes the size of the root file system over our limit. The recipe we are using is based on core-image-minimal.bb.
Can you attach the output of bitbake -e <your image> ? It's the kernel-image package that adds /boot and the kernel image, and it isn't triggered by the kernel-modules package. kernel-image is in the kernel-modules blacklist, so won't be added to it as a runtime dependency. There must be something else adding this depencency, and the environment dump may show it.
The dependency is introduced by this line: do_split_packages(d, root='/lib/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='update-modules kernel-%s' % d.getVar("KERNEL_VERSION", True)) kernel-${KERNEL_VERSION} is provided by kernel-base, and kernel-base RDEPENDS upon kernel-image - although this part is optional. John has changed the latter in his kernel recipe and the kernel-image is no longer pulled in. I'm marking this as resolved, but I do think we need to document this clearly.