Any custom kernel driver fails to build (no .ko)

Hello, I need some help. I'm migrating from an older OpenWrt (custom) . There are some custom kernel drivers which all build OK on that version. Most are very simple some are just a test driver. None of those build in the current OpenWrt. I even took one which is part of OpenWrt a button driver, just changed the names of the package and it does not build. Do I miss something ? I do use make menuconfig and enable the drivers, after dropping them in which works perfectly on the older version. Do I miss something ? I tried a clean build, same result.

Example: Take an existing driver which builds button-hotplug under packages/kernel. Create a new package, just changing the names. The make file now looks like this:

#
# Copyright (C) 2008-2010 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk

PKG_NAME:=button-test
PKG_RELEASE:=3
PKG_LICENSE:=GPL-2.0

include $(INCLUDE_DIR)/package.mk

define KernelPackage/button-test
  SUBMENU:=Other modules
  TITLE:=Button Hotplug driver
  DEPENDS:=+kmod-input-core
  FILES:=$(PKG_BUILD_DIR)/button-test.ko
  AUTOLOAD:=$(call AutoLoad,30,button-test,1)
  KCONFIG:=
endef

define KernelPackage/button-test/description
  Kernel module to generate button uevent-s from input subsystem events.
  If your device uses GPIO buttons, see gpio-button-test.
endef

define Build/Compile
	$(KERNEL_MAKE) M="$(PKG_BUILD_DIR)" modules
endef

$(eval $(call KernelPackage,button-test))

Do:
make target/linux/compile
make package/kernel/linux/compile
make

Result: build_dir/target-mips_24kc_musl/linux-ath79_generic/button-test/button-test.ko' is missing.

Not even make defconfig download clean world fixed the problem. It's like the system blocks any additional drivers to be added. There is any setting which may be doing this ? Did not find anything in documentation.

This happens with any custom driver. On an older OpenWrt version this works without problems.

Problem solved. Two problems. One, the old driver had some warnings. It looks like on newer kernels warnings are treated as errors. Second problem, the driver was using a function which is not available anymore in newer kernels, Need to be replaced with another one. This one was the hardest as there was no direct link error but it was a compile warning. In fact from all warnings this one was really an error.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.