Adding backported driver to the kernel #kernel


I built cfg80211 driver externally and added it as a recipe to the system:
install -m 755 ${S}/cfg80211.ko ${D}${nonarch_base_libdir}/modules/${KERNEL_VERSION}/extra
In kernel I setup to use cfg80211 as a module.
If I copy this manually it's working but if I want build this recipe I received error:
wlan-driver-1.0-r0 do_packagedata: The recipe wlan-driver is trying to install files into a shared area when those files already exist.
Ofcourse I have already installed cfg80211 because it selected as a module so kernel create the file:

If I disabled cfg80211 from kernel, building is working but I received error during insmod:
cfg80211: disagrees about version of symbol wireless_send_event
cfg80211: Unknown symbol wireless_send_event (err -22)



Probably you have two packages that provides that Kernel module. Kernel's default one via kernel-module-split BBClass, and yours with your recipe.

Try telling Yocto you have your own runtime provider for that driver. Into the recipe add this as well:

RPROVIDES:${PN} = " kernel-module-cfg80211-${KERNEL_VERSION}"