diff mbox series

[11/20,WIP] package/target: update to get modules from $(LINUX_OBJ_DIR)

Message ID 652e94875c4be20b04855917a9f8b556cd59c71f.1700010292.git.ehem+openwrt@m5p.com
State Not Applicable
Delegated to: Petr Štetiar
Headers show
Series Kernel build fixups, split object directory off (partial WIP) | expand

Commit Message

Elliott Mitchell Nov. 12, 2023, 6:51 a.m. UTC
Modules built from kernel source will now be in $(LINUX_OBJ_DIR).

Signed-off-by: Elliott Mitchell <ehem+openwrt@m5p.com>
---
 package/kernel/linux/modules/block.mk        | 106 +++----
 package/kernel/linux/modules/can.mk          |  36 +--
 package/kernel/linux/modules/crypto.mk       | 252 ++++++++--------
 package/kernel/linux/modules/firewire.mk     |   8 +-
 package/kernel/linux/modules/fs.mk           | 100 +++----
 package/kernel/linux/modules/gpio-cascade.mk |   2 +-
 package/kernel/linux/modules/hwmon.mk        |  98 +++----
 package/kernel/linux/modules/i2c.mk          |   2 +-
 package/kernel/linux/modules/iio.mk          |  80 +++---
 package/kernel/linux/modules/input.mk        |  26 +-
 package/kernel/linux/modules/leds.mk         |  20 +-
 package/kernel/linux/modules/lib.mk          |  76 ++---
 package/kernel/linux/modules/multiplexer.mk  |   4 +-
 package/kernel/linux/modules/netdevices.mk   | 214 +++++++-------
 package/kernel/linux/modules/netfilter.mk    | 168 +++++------
 package/kernel/linux/modules/netsupport.mk   | 204 ++++++-------
 package/kernel/linux/modules/nls.mk          |  44 +--
 package/kernel/linux/modules/other.mk        | 202 ++++++-------
 package/kernel/linux/modules/pcmcia.mk       |  14 +-
 package/kernel/linux/modules/sound.mk        |  98 +++----
 package/kernel/linux/modules/spi.mk          |  10 +-
 package/kernel/linux/modules/usb.mk          | 288 +++++++++----------
 package/kernel/linux/modules/video.mk        | 168 +++++------
 package/kernel/linux/modules/virt.mk         |  24 +-
 package/kernel/linux/modules/w1.mk           |   2 +-
 package/kernel/linux/modules/wpan.mk         |  20 +-
 target/linux/apm821xx/modules.mk             |   4 +-
 target/linux/armsr/modules.mk                |  80 +++---
 target/linux/at91/modules.mk                 |  18 +-
 target/linux/ath79/modules.mk                |   2 +-
 target/linux/bcm27xx/modules/hwmon.mk        |   2 +-
 target/linux/bcm27xx/modules/other.mk        |   6 +-
 target/linux/bcm27xx/modules/sound.mk        | 206 ++++++-------
 target/linux/bcm27xx/modules/spi.mk          |   4 +-
 target/linux/bcm27xx/modules/video.mk        |  16 +-
 target/linux/bcm47xx/modules.mk              |   6 +-
 target/linux/bcm53xx/modules.mk              |   6 +-
 target/linux/bcm63xx/modules.mk              |   4 +-
 target/linux/bmips/modules.mk                |   6 +-
 target/linux/gemini/modules.mk               |   2 +-
 target/linux/ipq806x/modules.mk              |  14 +-
 target/linux/kirkwood/modules.mk             |   4 +-
 target/linux/layerscape/modules.mk           |   4 +-
 target/linux/mediatek/modules.mk             |   8 +-
 target/linux/mvebu/modules.mk                |   4 +-
 target/linux/oxnas/modules.mk                |   4 +-
 target/linux/ramips/modules.mk               |  20 +-
 target/linux/sunxi/modules.mk                |  16 +-
 target/linux/x86/modules.mk                  |  22 +-
 49 files changed, 1362 insertions(+), 1362 deletions(-)

Comments

Elliott Mitchell Nov. 20, 2023, 4:17 a.m. UTC | #1
On Sat, Nov 11, 2023 at 10:51:08PM -0800, Elliott Mitchell wrote:
> Modules built from kernel source will now be in $(LINUX_OBJ_DIR).
> 
> Signed-off-by: Elliott Mitchell <ehem+openwrt@m5p.com>
> ---
>  package/kernel/linux/modules/block.mk        | 106 +++----
>  package/kernel/linux/modules/can.mk          |  36 +--
>  package/kernel/linux/modules/crypto.mk       | 252 ++++++++--------
>  package/kernel/linux/modules/firewire.mk     |   8 +-
>  package/kernel/linux/modules/fs.mk           | 100 +++----
>  package/kernel/linux/modules/gpio-cascade.mk |   2 +-
>  package/kernel/linux/modules/hwmon.mk        |  98 +++----
>  package/kernel/linux/modules/i2c.mk          |   2 +-
>  package/kernel/linux/modules/iio.mk          |  80 +++---
>  package/kernel/linux/modules/input.mk        |  26 +-
>  package/kernel/linux/modules/leds.mk         |  20 +-
>  package/kernel/linux/modules/lib.mk          |  76 ++---
>  package/kernel/linux/modules/multiplexer.mk  |   4 +-
>  package/kernel/linux/modules/netdevices.mk   | 214 +++++++-------
>  package/kernel/linux/modules/netfilter.mk    | 168 +++++------
>  package/kernel/linux/modules/netsupport.mk   | 204 ++++++-------
>  package/kernel/linux/modules/nls.mk          |  44 +--
>  package/kernel/linux/modules/other.mk        | 202 ++++++-------
>  package/kernel/linux/modules/pcmcia.mk       |  14 +-
>  package/kernel/linux/modules/sound.mk        |  98 +++----
>  package/kernel/linux/modules/spi.mk          |  10 +-
>  package/kernel/linux/modules/usb.mk          | 288 +++++++++----------
>  package/kernel/linux/modules/video.mk        | 168 +++++------
>  package/kernel/linux/modules/virt.mk         |  24 +-
>  package/kernel/linux/modules/w1.mk           |   2 +-
>  package/kernel/linux/modules/wpan.mk         |  20 +-
>  target/linux/apm821xx/modules.mk             |   4 +-
>  target/linux/armsr/modules.mk                |  80 +++---
>  target/linux/at91/modules.mk                 |  18 +-
>  target/linux/ath79/modules.mk                |   2 +-
>  target/linux/bcm27xx/modules/hwmon.mk        |   2 +-
>  target/linux/bcm27xx/modules/other.mk        |   6 +-
>  target/linux/bcm27xx/modules/sound.mk        | 206 ++++++-------
>  target/linux/bcm27xx/modules/spi.mk          |   4 +-
>  target/linux/bcm27xx/modules/video.mk        |  16 +-
>  target/linux/bcm47xx/modules.mk              |   6 +-
>  target/linux/bcm53xx/modules.mk              |   6 +-
>  target/linux/bcm63xx/modules.mk              |   4 +-
>  target/linux/bmips/modules.mk                |   6 +-
>  target/linux/gemini/modules.mk               |   2 +-
>  target/linux/ipq806x/modules.mk              |  14 +-
>  target/linux/kirkwood/modules.mk             |   4 +-
>  target/linux/layerscape/modules.mk           |   4 +-
>  target/linux/mediatek/modules.mk             |   8 +-
>  target/linux/mvebu/modules.mk                |   4 +-
>  target/linux/oxnas/modules.mk                |   4 +-
>  target/linux/ramips/modules.mk               |  20 +-
>  target/linux/sunxi/modules.mk                |  16 +-
>  target/linux/x86/modules.mk                  |  22 +-
>  49 files changed, 1362 insertions(+), 1362 deletions(-)

The reason this patch ended up so huge was every kernel module package
was setting $(FILES) to the absolute path of the module.  If instead
$(FILES) is set relative to the kernel object directory, and converted
to an absolute path during KernelPackage/$(1)/config, this becomes MUCH
smaller.  Unfortunately in turn the patch to do that ends up jumbo.

Can't win.  The cleanup has been long needed, but never done.  Now it
ends up a gigantic patch.
diff mbox series

Patch

diff --git a/package/kernel/linux/modules/block.mk b/package/kernel/linux/modules/block.mk
index 5e6eefa76a..efe87a879f 100644
--- a/package/kernel/linux/modules/block.mk
+++ b/package/kernel/linux/modules/block.mk
@@ -11,7 +11,7 @@  define KernelPackage/aoe
   SUBMENU:=$(BLOCK_MENU)
   TITLE:=ATA over Ethernet support
   KCONFIG:=CONFIG_ATA_OVER_ETH
-  FILES:=$(LINUX_DIR)/drivers/block/aoe/aoe.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/block/aoe/aoe.ko
   AUTOLOAD:=$(call AutoLoad,30,aoe)
 endef
 
@@ -27,9 +27,9 @@  define KernelPackage/ata-core
   TITLE:=Serial and Parallel ATA support
   DEPENDS:=@PCI_SUPPORT||TARGET_sunxi +kmod-scsi-core
   KCONFIG:=CONFIG_ATA
-  FILES:=$(LINUX_DIR)/drivers/ata/libata.ko
-ifneq ($(wildcard $(LINUX_DIR)/drivers/ata/libahci.ko),)
-  FILES+=$(LINUX_DIR)/drivers/ata/libahci.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/ata/libata.ko
+ifneq ($(wildcard $(LINUX_OBJ_DIR)/drivers/ata/libahci.ko),)
+  FILES+=$(LINUX_OBJ_DIR)/drivers/ata/libahci.ko
 endif
 endef
 
@@ -46,7 +46,7 @@  define KernelPackage/ata-ahci
   TITLE:=AHCI Serial ATA support
   KCONFIG:=CONFIG_SATA_AHCI
   FILES:= \
-    $(LINUX_DIR)/drivers/ata/ahci.ko
+    $(LINUX_OBJ_DIR)/drivers/ata/ahci.ko
   AUTOLOAD:=$(call AutoLoad,41,libahci ahci,1)
   $(call AddDepends/ata)
 endef
@@ -62,8 +62,8 @@  define KernelPackage/ata-ahci-platform
   TITLE:=AHCI Serial ATA Platform support
   KCONFIG:=CONFIG_SATA_AHCI_PLATFORM
   FILES:= \
-    $(LINUX_DIR)/drivers/ata/ahci_platform.ko \
-    $(LINUX_DIR)/drivers/ata/libahci_platform.ko
+    $(LINUX_OBJ_DIR)/drivers/ata/ahci_platform.ko \
+    $(LINUX_OBJ_DIR)/drivers/ata/libahci_platform.ko
   AUTOLOAD:=$(call AutoLoad,40,libahci libahci_platform ahci_platform,1)
   $(call AddDepends/ata,@TARGET_ipq806x||TARGET_layerscape||TARGET_sunxi)
 endef
@@ -78,7 +78,7 @@  $(eval $(call KernelPackage,ata-ahci-platform))
 define KernelPackage/ata-artop
   TITLE:=ARTOP 6210/6260 PATA support
   KCONFIG:=CONFIG_PATA_ARTOP
-  FILES:=$(LINUX_DIR)/drivers/ata/pata_artop.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/ata/pata_artop.ko
   AUTOLOAD:=$(call AutoLoad,41,pata_artop,1)
   $(call AddDepends/ata)
 endef
@@ -93,7 +93,7 @@  $(eval $(call KernelPackage,ata-artop))
 define KernelPackage/ata-nvidia-sata
   TITLE:=Nvidia Serial ATA support
   KCONFIG:=CONFIG_SATA_NV
-  FILES:=$(LINUX_DIR)/drivers/ata/sata_nv.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/ata/sata_nv.ko
   AUTOLOAD:=$(call AutoLoad,41,sata_nv,1)
   $(call AddDepends/ata)
 endef
@@ -106,7 +106,7 @@  define KernelPackage/ata-pdc202xx-old
   KCONFIG:= \
        CONFIG_ATA_SFF=y \
        CONFIG_PATA_PDC_OLD
-  FILES:=$(LINUX_DIR)/drivers/ata/pata_pdc202xx_old.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/ata/pata_pdc202xx_old.ko
   AUTOLOAD:=$(call AutoLoad,41,pata_pdc202xx_old,1)
   $(call AddDepends/ata)
 endef
@@ -122,7 +122,7 @@  $(eval $(call KernelPackage,ata-pdc202xx-old))
 define KernelPackage/ata-piix
   TITLE:=Intel PIIX PATA/SATA support
   KCONFIG:=CONFIG_ATA_PIIX
-  FILES:=$(LINUX_DIR)/drivers/ata/ata_piix.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/ata/ata_piix.ko
   AUTOLOAD:=$(call AutoLoad,41,ata_piix,1)
   $(call AddDepends/ata)
 endef
@@ -138,7 +138,7 @@  $(eval $(call KernelPackage,ata-piix))
 define KernelPackage/ata-sil
   TITLE:=Silicon Image SATA support
   KCONFIG:=CONFIG_SATA_SIL
-  FILES:=$(LINUX_DIR)/drivers/ata/sata_sil.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/ata/sata_sil.ko
   AUTOLOAD:=$(call AutoLoad,41,sata_sil,1)
   $(call AddDepends/ata)
 endef
@@ -153,7 +153,7 @@  $(eval $(call KernelPackage,ata-sil))
 define KernelPackage/ata-sil24
   TITLE:=Silicon Image 3124/3132 SATA support
   KCONFIG:=CONFIG_SATA_SIL24
-  FILES:=$(LINUX_DIR)/drivers/ata/sata_sil24.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/ata/sata_sil24.ko
   AUTOLOAD:=$(call AutoLoad,41,sata_sil24,1)
   $(call AddDepends/ata)
 endef
@@ -168,7 +168,7 @@  $(eval $(call KernelPackage,ata-sil24))
 define KernelPackage/ata-via-sata
   TITLE:=VIA SATA support
   KCONFIG:=CONFIG_SATA_VIA
-  FILES:=$(LINUX_DIR)/drivers/ata/sata_via.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/ata/sata_via.ko
   AUTOLOAD:=$(call AutoLoad,41,sata_via,1)
   $(call AddDepends/ata)
 endef
@@ -184,7 +184,7 @@  define KernelPackage/block2mtd
   SUBMENU:=$(BLOCK_MENU)
   TITLE:=Block device MTD emulation
   KCONFIG:=CONFIG_MTD_BLOCK2MTD
-  FILES:=$(LINUX_DIR)/drivers/mtd/devices/block2mtd.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/mtd/devices/block2mtd.ko
 endef
 
 $(eval $(call KernelPackage,block2mtd))
@@ -194,7 +194,7 @@  define KernelPackage/dax
   SUBMENU:=$(BLOCK_MENU)
   TITLE:=DAX: direct access to differentiated memory
   KCONFIG:=CONFIG_DAX
-  FILES:=$(LINUX_DIR)/drivers/dax/dax.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/dax/dax.ko
 endef
 
 $(eval $(call KernelPackage,dax))
@@ -223,11 +223,11 @@  define KernelPackage/dm
 	CONFIG_DM_CRYPT \
 	CONFIG_DM_MIRROR
   FILES:= \
-    $(LINUX_DIR)/drivers/md/dm-mod.ko \
-    $(LINUX_DIR)/drivers/md/dm-crypt.ko \
-    $(LINUX_DIR)/drivers/md/dm-log.ko \
-    $(LINUX_DIR)/drivers/md/dm-mirror.ko \
-    $(LINUX_DIR)/drivers/md/dm-region-hash.ko
+    $(LINUX_OBJ_DIR)/drivers/md/dm-mod.ko \
+    $(LINUX_OBJ_DIR)/drivers/md/dm-crypt.ko \
+    $(LINUX_OBJ_DIR)/drivers/md/dm-log.ko \
+    $(LINUX_OBJ_DIR)/drivers/md/dm-mirror.ko \
+    $(LINUX_OBJ_DIR)/drivers/md/dm-region-hash.ko
   AUTOLOAD:=$(call AutoLoad,30,dm-mod dm-log dm-region-hash dm-mirror dm-crypt,1)
 endef
 
@@ -244,7 +244,7 @@  define KernelPackage/dm-raid
            +kmod-md-raid0 +kmod-md-raid1 +kmod-md-raid10 +kmod-md-raid456
   KCONFIG:= \
 	CONFIG_DM_RAID
-  FILES:=$(LINUX_DIR)/drivers/md/dm-raid.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/md/dm-raid.ko
   AUTOLOAD:=$(call AutoLoad,31,dm-raid)
 endef
 
@@ -265,10 +265,10 @@  define KernelPackage/iscsi-initiator
 	CONFIG_ISCSI_TCP \
 	CONFIG_SCSI_ISCSI_ATTRS=y
   FILES:= \
-	$(LINUX_DIR)/drivers/scsi/iscsi_tcp.ko \
-	$(LINUX_DIR)/drivers/scsi/libiscsi.ko \
-	$(LINUX_DIR)/drivers/scsi/libiscsi_tcp.ko \
-	$(LINUX_DIR)/drivers/scsi/scsi_transport_iscsi.ko
+	$(LINUX_OBJ_DIR)/drivers/scsi/iscsi_tcp.ko \
+	$(LINUX_OBJ_DIR)/drivers/scsi/libiscsi.ko \
+	$(LINUX_OBJ_DIR)/drivers/scsi/libiscsi_tcp.ko \
+	$(LINUX_OBJ_DIR)/drivers/scsi/scsi_transport_iscsi.ko
   AUTOLOAD:=$(call AutoProbe,libiscsi libiscsi_tcp scsi_transport_iscsi iscsi_tcp)
 endef
 
@@ -289,7 +289,7 @@  define KernelPackage/md-mod
        CONFIG_BLK_DEV_MD=m \
        CONFIG_MD_AUTODETECT=y \
        CONFIG_MD_FAULTY=n
-  FILES:=$(LINUX_DIR)/drivers/md/md-mod.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/md/md-mod.ko
   AUTOLOAD:=$(call AutoLoad,27,md-mod)
 endef
 
@@ -311,7 +311,7 @@  define KernelPackage/md-linear
 $(call KernelPackage/md/Depends,)
   TITLE:=RAID Linear Module
   KCONFIG:=CONFIG_MD_LINEAR
-  FILES:=$(LINUX_DIR)/drivers/md/linear.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/md/linear.ko
   AUTOLOAD:=$(call AutoLoad,28,linear)
 endef
 
@@ -326,7 +326,7 @@  define KernelPackage/md-raid0
 $(call KernelPackage/md/Depends,)
   TITLE:=RAID0 Module
   KCONFIG:=CONFIG_MD_RAID0
-  FILES:=$(LINUX_DIR)/drivers/md/raid0.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/md/raid0.ko
   AUTOLOAD:=$(call AutoLoad,28,raid0)
 endef
 
@@ -341,7 +341,7 @@  define KernelPackage/md-raid1
 $(call KernelPackage/md/Depends,)
   TITLE:=RAID1 Module
   KCONFIG:=CONFIG_MD_RAID1
-  FILES:=$(LINUX_DIR)/drivers/md/raid1.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/md/raid1.ko
   AUTOLOAD:=$(call AutoLoad,28,raid1)
 endef
 
@@ -356,7 +356,7 @@  define KernelPackage/md-raid10
 $(call KernelPackage/md/Depends,)
   TITLE:=RAID10 Module
   KCONFIG:=CONFIG_MD_RAID10
-  FILES:=$(LINUX_DIR)/drivers/md/raid10.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/md/raid10.ko
   AUTOLOAD:=$(call AutoLoad,28,raid10)
 endef
 
@@ -380,12 +380,12 @@  $(call KernelPackage/md/Depends,+kmod-lib-raid6 +kmod-lib-xor +kmod-lib-crc32c)
        CONFIG_MD_RAID456 \
        CONFIG_MULTICORE_RAID456=n
   FILES:= \
-	$(LINUX_DIR)/crypto/async_tx/async_tx.ko \
-	$(LINUX_DIR)/crypto/async_tx/async_memcpy.ko \
-	$(LINUX_DIR)/crypto/async_tx/async_xor.ko \
-	$(LINUX_DIR)/crypto/async_tx/async_pq.ko \
-	$(LINUX_DIR)/crypto/async_tx/async_raid6_recov.ko \
-	$(LINUX_DIR)/drivers/md/raid456.ko
+	$(LINUX_OBJ_DIR)/crypto/async_tx/async_tx.ko \
+	$(LINUX_OBJ_DIR)/crypto/async_tx/async_memcpy.ko \
+	$(LINUX_OBJ_DIR)/crypto/async_tx/async_xor.ko \
+	$(LINUX_OBJ_DIR)/crypto/async_tx/async_pq.ko \
+	$(LINUX_OBJ_DIR)/crypto/async_tx/async_raid6_recov.ko \
+	$(LINUX_OBJ_DIR)/drivers/md/raid456.ko
   AUTOLOAD:=$(call AutoLoad,28, async_tx async_memcpy async_xor async_pq async_raid6_recov raid456)
 endef
 
@@ -410,7 +410,7 @@  define KernelPackage/md-multipath
 $(call KernelPackage/md/Depends,)
   TITLE:=MD Multipath Module
   KCONFIG:=CONFIG_MD_MULTIPATH
-  FILES:=$(LINUX_DIR)/drivers/md/multipath.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/md/multipath.ko
   AUTOLOAD:=$(call AutoLoad,29,multipath)
 endef
 
@@ -431,8 +431,8 @@  define KernelPackage/libsas
 	CONFIG_SCSI_SAS_HOST_SMP=y \
 	CONFIG_SCSI_SAS_LIBSAS_DEBUG=y
   FILES:= \
-	$(LINUX_DIR)/drivers/scsi/scsi_transport_sas.ko \
-	$(LINUX_DIR)/drivers/scsi/libsas/libsas.ko
+	$(LINUX_OBJ_DIR)/drivers/scsi/scsi_transport_sas.ko \
+	$(LINUX_OBJ_DIR)/drivers/scsi/libsas/libsas.ko
   AUTOLOAD:=$(call AutoLoad,29,scsi_transport_sas libsas,1)
 endef
 
@@ -449,7 +449,7 @@  define KernelPackage/loop
   KCONFIG:= \
 	CONFIG_BLK_DEV_LOOP \
 	CONFIG_BLK_DEV_CRYPTOLOOP=n
-  FILES:=$(LINUX_DIR)/drivers/block/loop.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/block/loop.ko
   AUTOLOAD:=$(call AutoLoad,30,loop,1)
 endef
 
@@ -467,7 +467,7 @@  define KernelPackage/mvsas
   KCONFIG:= \
 	CONFIG_SCSI_MVSAS \
 	CONFIG_SCSI_MVSAS_TASKLET=n
-  FILES:=$(LINUX_DIR)/drivers/scsi/mvsas/mvsas.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/scsi/mvsas/mvsas.ko
   AUTOLOAD:=$(call AutoLoad,40,mvsas,1)
 endef
 
@@ -482,7 +482,7 @@  define KernelPackage/nbd
   SUBMENU:=$(BLOCK_MENU)
   TITLE:=Network block device support
   KCONFIG:=CONFIG_BLK_DEV_NBD
-  FILES:=$(LINUX_DIR)/drivers/block/nbd.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/block/nbd.ko
   AUTOLOAD:=$(call AutoLoad,30,nbd)
 endef
 
@@ -503,8 +503,8 @@  define KernelPackage/nvme
 	CONFIG_NVME_MULTIPATH=n \
 	CONFIG_NVME_HWMON=y
   FILES:= \
-	$(LINUX_DIR)/drivers/nvme/host/nvme-core.ko \
-	$(LINUX_DIR)/drivers/nvme/host/nvme.ko
+	$(LINUX_OBJ_DIR)/drivers/nvme/host/nvme-core.ko \
+	$(LINUX_OBJ_DIR)/drivers/nvme/host/nvme.ko
   AUTOLOAD:=$(call AutoLoad,30,nvme-core nvme,1)
 endef
 
@@ -524,9 +524,9 @@  define KernelPackage/scsi-core
 	CONFIG_SCSI_COMMON \
 	CONFIG_BLK_DEV_SD
   FILES:= \
-	$(LINUX_DIR)/drivers/scsi/scsi_mod.ko \
-	$(LINUX_DIR)/drivers/scsi/scsi_common.ko \
-	$(LINUX_DIR)/drivers/scsi/sd_mod.ko
+	$(LINUX_OBJ_DIR)/drivers/scsi/scsi_mod.ko \
+	$(LINUX_OBJ_DIR)/drivers/scsi/scsi_common.ko \
+	$(LINUX_OBJ_DIR)/drivers/scsi/sd_mod.ko
   AUTOLOAD:=$(call AutoLoad,40,scsi_mod scsi_common sd_mod,1)
 endef
 
@@ -540,7 +540,7 @@  define KernelPackage/scsi-generic
   KCONFIG:= \
 	CONFIG_CHR_DEV_SG
   FILES:= \
-	$(LINUX_DIR)/drivers/scsi/sg.ko
+	$(LINUX_OBJ_DIR)/drivers/scsi/sg.ko
   AUTOLOAD:=$(call AutoLoad,65,sg)
 endef
 
@@ -551,7 +551,7 @@  define KernelPackage/cdrom
   TITLE:=Kernel library module for CD / DVD drives
   KCONFIG:=CONFIG_CDROM
   HIDDEN:=1
-  FILES:=$(LINUX_DIR)/drivers/cdrom/cdrom.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/cdrom/cdrom.ko
 endef
 
 $(eval $(call KernelPackage,cdrom))
@@ -564,7 +564,7 @@  define KernelPackage/scsi-cdrom
   KCONFIG:= \
     CONFIG_BLK_DEV_SR \
     CONFIG_BLK_DEV_SR_VENDOR=n
-  FILES:=$(LINUX_DIR)/drivers/scsi/sr_mod.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/scsi/sr_mod.ko
   AUTOLOAD:=$(call AutoLoad,45,sr_mod)
 endef
 
@@ -578,7 +578,7 @@  define KernelPackage/scsi-tape
   KCONFIG:= \
     CONFIG_CHR_DEV_ST
   FILES:= \
-    $(LINUX_DIR)/drivers/scsi/st.ko
+    $(LINUX_OBJ_DIR)/drivers/scsi/st.ko
   AUTOLOAD:=$(call AutoLoad,45,st)
 endef
 
@@ -592,7 +592,7 @@  define KernelPackage/iosched-bfq
     CONFIG_BFQ_GROUP_IOSCHED=y \
     CONFIG_BFQ_CGROUP_DEBUG=n
   FILES:= \
-    $(LINUX_DIR)/block/bfq.ko
+    $(LINUX_OBJ_DIR)/block/bfq.ko
   AUTOLOAD:=$(call AutoLoad,10,bfq)
 endef
 
diff --git a/package/kernel/linux/modules/can.mk b/package/kernel/linux/modules/can.mk
index 4ff85d1c01..27a3c64073 100644
--- a/package/kernel/linux/modules/can.mk
+++ b/package/kernel/linux/modules/can.mk
@@ -28,8 +28,8 @@  define KernelPackage/can
 	CONFIG_CAN_SOFTING=n \
 	CONFIG_NET_EMATCH_CANID=n \
 	CONFIG_CAN_DEBUG_DEVICES=n
-  FILES:=$(LINUX_DIR)/drivers/net/can/dev/can-dev.ko \
-	 $(LINUX_DIR)/net/can/can.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/can/dev/can-dev.ko \
+	 $(LINUX_OBJ_DIR)/net/can/can.ko
   AUTOLOAD:=$(call AutoProbe,can can-dev)
 endef
 
@@ -49,7 +49,7 @@  endef
 define KernelPackage/can-bcm
   TITLE:=Broadcast Manager CAN Protcol
   KCONFIG:=CONFIG_CAN_BCM
-  FILES:=$(LINUX_DIR)/net/can/can-bcm.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/can/can-bcm.ko
   AUTOLOAD:=$(call AutoProbe,can-bcm)
   $(call AddDepends/can)
 endef
@@ -66,7 +66,7 @@  $(eval $(call KernelPackage,can-bcm))
 define KernelPackage/can-c-can
   TITLE:=BOSCH C_CAN/D_CAN drivers
   KCONFIG:=CONFIG_CAN_C_CAN
-  FILES:=$(LINUX_DIR)/drivers/net/can/c_can/c_can.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/can/c_can/c_can.ko
   AUTOLOAD:=$(call AutoProbe,c_can)
   $(call AddDepends/can)
 endef
@@ -82,7 +82,7 @@  define KernelPackage/can-c-can-pci
   TITLE:=PCI Bus based BOSCH C_CAN/D_CAN driver
   KCONFIG:=CONFIG_CAN_C_CAN_PCI
   DEPENDS:=kmod-can-c-can @PCI_SUPPORT
-  FILES:=$(LINUX_DIR)/drivers/net/can/c_can/c_can_pci.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/can/c_can/c_can_pci.ko
   AUTOLOAD:=$(call AutoProbe,c_can_pci)
   $(call AddDepends/can)
 endef
@@ -99,7 +99,7 @@  define KernelPackage/can-c-can-platform
   TITLE:=Platform Bus based BOSCH C_CAN/D_CAN driver
   KCONFIG:=CONFIG_CAN_C_CAN_PLATFORM
   DEPENDS:=kmod-can-c-can +kmod-regmap-core
-  FILES:=$(LINUX_DIR)/drivers/net/can/c_can/c_can_platform.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/can/c_can/c_can_platform.ko
   AUTOLOAD:=$(call AutoProbe,c_can_platform)
   $(call AddDepends/can)
 endef
@@ -119,7 +119,7 @@  $(eval $(call KernelPackage,can-c-can-platform))
 define KernelPackage/can-flexcan
   TITLE:=Support for Freescale FLEXCAN based chips
   KCONFIG:=CONFIG_CAN_FLEXCAN
-  FILES:=$(LINUX_DIR)/drivers/net/can/flexcan.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/can/flexcan.ko
   AUTOLOAD:=$(call AutoProbe,flexcan)
   $(call AddDepends/can,@TARGET_imx)
 endef
@@ -134,7 +134,7 @@  $(eval $(call KernelPackage,can-flexcan))
 define KernelPackage/can-gw
   TITLE:=CAN Gateway/Router
   KCONFIG:=CONFIG_CAN_GW
-  FILES:=$(LINUX_DIR)/net/can/can-gw.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/can/can-gw.ko
   AUTOLOAD:=$(call AutoProbe,can-gw)
   $(call AddDepends/can)
 endef
@@ -151,7 +151,7 @@  define KernelPackage/can-mcp251x
   KCONFIG:=\
 	CONFIG_SPI=y \
 	CONFIG_CAN_MCP251X
-  FILES:=$(LINUX_DIR)/drivers/net/can/spi/mcp251x.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/can/spi/mcp251x.ko
   AUTOLOAD:=$(call AutoProbe,mcp251x)
   $(call AddDepends/can)
 endef
@@ -166,7 +166,7 @@  $(eval $(call KernelPackage,can-mcp251x))
 define KernelPackage/can-raw
   TITLE:=Raw CAN Protcol
   KCONFIG:=CONFIG_CAN_RAW
-  FILES:=$(LINUX_DIR)/net/can/can-raw.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/can/can-raw.ko
   AUTOLOAD:=$(call AutoProbe,can-raw)
   $(call AddDepends/can)
 endef
@@ -182,7 +182,7 @@  $(eval $(call KernelPackage,can-raw))
 define KernelPackage/can-slcan
   TITLE:=Serial / USB serial CAN Adaptors (slcan)
   KCONFIG:=CONFIG_CAN_SLCAN
-  FILES:=$(LINUX_DIR)/drivers/net/can/slcan.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/can/slcan.ko
   AUTOLOAD:=$(call AutoProbe,slcan)
   $(call AddDepends/can)
 endef
@@ -199,7 +199,7 @@  $(eval $(call KernelPackage,can-slcan))
 define KernelPackage/can-usb-8dev
   TITLE:=8 devices USB2CAN interface
   KCONFIG:=CONFIG_CAN_8DEV_USB
-  FILES:=$(LINUX_DIR)/drivers/net/can/usb/usb_8dev.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/can/usb/usb_8dev.ko
   AUTOLOAD:=$(call AutoProbe,usb_8dev)
   $(call AddDepends/can,+kmod-usb-core)
 endef
@@ -215,7 +215,7 @@  $(eval $(call KernelPackage,can-usb-8dev))
 define KernelPackage/can-usb-ems
   TITLE:=EMS CPC-USB/ARM7 CAN/USB interface
   KCONFIG:=CONFIG_CAN_EMS_USB
-  FILES:=$(LINUX_DIR)/drivers/net/can/usb/ems_usb.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/can/usb/ems_usb.ko
   AUTOLOAD:=$(call AutoProbe,ems_usb)
   $(call AddDepends/can,+kmod-usb-core)
 endef
@@ -231,7 +231,7 @@  $(eval $(call KernelPackage,can-usb-ems))
 define KernelPackage/can-usb-esd
   TITLE:=ESD USB/2 CAN/USB interface
   KCONFIG:=CONFIG_CAN_ESD_USB2
-  FILES:=$(LINUX_DIR)/drivers/net/can/usb/esd_usb2.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/can/usb/esd_usb2.ko
   AUTOLOAD:=$(call AutoProbe,esd_usb2)
   $(call AddDepends/can,+kmod-usb-core)
 endef
@@ -248,7 +248,7 @@  define KernelPackage/can-usb-kvaser
   TITLE:=Kvaser CAN/USB interface
   KCONFIG:=CONFIG_CAN_KVASER_USB
   FILES:= \
-	$(LINUX_DIR)/drivers/net/can/usb/kvaser_usb/kvaser_usb.ko
+	$(LINUX_OBJ_DIR)/drivers/net/can/usb/kvaser_usb/kvaser_usb.ko
   AUTOLOAD:=$(call AutoProbe,kvaser_usb)
   $(call AddDepends/can,+kmod-usb-core)
 endef
@@ -264,7 +264,7 @@  $(eval $(call KernelPackage,can-usb-kvaser))
 define KernelPackage/can-usb-peak
   TITLE:=PEAK PCAN-USB/USB Pro interfaces
   KCONFIG:=CONFIG_CAN_PEAK_USB
-  FILES:=$(LINUX_DIR)/drivers/net/can/usb/peak_usb/peak_usb.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/can/usb/peak_usb/peak_usb.ko
   AUTOLOAD:=$(call AutoProbe,peak_usb)
   $(call AddDepends/can,+kmod-usb-core)
 endef
@@ -280,7 +280,7 @@  $(eval $(call KernelPackage,can-usb-peak))
 define KernelPackage/can-vcan
   TITLE:=Virtual Local CAN Interface (vcan)
   KCONFIG:=CONFIG_CAN_VCAN
-  FILES:=$(LINUX_DIR)/drivers/net/can/vcan.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/can/vcan.ko
   AUTOLOAD:=$(call AutoProbe,vcan)
   $(call AddDepends/can)
 endef
@@ -295,7 +295,7 @@  $(eval $(call KernelPackage,can-vcan))
 define KernelPackage/can-xilinx-can
   TITLE:=Xilinx CAN IP
   KCONFIG:=CONFIG_CAN_XILINXCAN
-  FILES:=$(LINUX_DIR)/drivers/net/can/xilinx_can.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/can/xilinx_can.ko
   AUTOLOAD:=$(call AutoProbe,xilinx_can)
   $(call AddDepends/can,@TARGET_zynq)
 endef
diff --git a/package/kernel/linux/modules/crypto.mk b/package/kernel/linux/modules/crypto.mk
index 5e6fed631a..f87214eaa1 100644
--- a/package/kernel/linux/modules/crypto.mk
+++ b/package/kernel/linux/modules/crypto.mk
@@ -14,7 +14,7 @@  CRYPTO_MODULES = \
 CRYPTO_TARGET = $(BOARD)/$(if $(SUBTARGET),$(SUBTARGET),generic)
 
 crypto_confvar=CONFIG_CRYPTO_$(word 1,$(subst =,$(space),$(1)))
-crypto_file=$(LINUX_DIR)/crypto/$(word 2,$(subst =,$(space),$(1))).ko
+crypto_file=$(LINUX_OBJ_DIR)/crypto/$(word 2,$(subst =,$(space),$(1))).ko
 crypto_name=$(if $(findstring y,$($(call crypto_confvar,$(1)))),,$(word 2,$(subst =,$(space),$(1))))
 
 define AddDepends/crypto
@@ -27,7 +27,7 @@  define KernelPackage/crypto-acompress
   TITLE:=Asynchronous Compression operations
   HIDDEN:=1
   KCONFIG:=CONFIG_CRYPTO_ACOMP2
-  FILES:=$(LINUX_DIR)/crypto/crypto_acompress.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/crypto_acompress.ko
   AUTOLOAD:=$(call AutoLoad,09,crypto_acompress)
   $(call AddDepends/crypto)
 endef
@@ -41,8 +41,8 @@  define KernelPackage/crypto-aead
 	CONFIG_CRYPTO_AEAD \
 	CONFIG_CRYPTO_AEAD2
   FILES:= \
-	  $(LINUX_DIR)/crypto/aead.ko \
-	  $(LINUX_DIR)/crypto/geniv.ko
+	  $(LINUX_OBJ_DIR)/crypto/aead.ko \
+	  $(LINUX_OBJ_DIR)/crypto/geniv.ko
   AUTOLOAD:=$(call AutoLoad,09,aead,1)
   $(call AddDepends/crypto, +kmod-crypto-null)
 endef
@@ -57,8 +57,8 @@  define KernelPackage/crypto-arc4
 	  CONFIG_CRYPTO_ARC4 \
 	  CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y
   FILES:= \
-	  $(LINUX_DIR)/crypto/arc4.ko \
-	  $(LINUX_DIR)/lib/crypto/libarc4.ko
+	  $(LINUX_OBJ_DIR)/crypto/arc4.ko \
+	  $(LINUX_OBJ_DIR)/lib/crypto/libarc4.ko
   AUTOLOAD:=$(call AutoLoad,09,arc4)
   $(call AddDepends/crypto)
 endef
@@ -71,8 +71,8 @@  define KernelPackage/crypto-authenc
   DEPENDS:=+kmod-crypto-manager +kmod-crypto-null
   KCONFIG:=CONFIG_CRYPTO_AUTHENC
   FILES:= \
-	$(LINUX_DIR)/crypto/authenc.ko \
-	$(LINUX_DIR)/crypto/authencesn.ko
+	$(LINUX_OBJ_DIR)/crypto/authenc.ko \
+	$(LINUX_OBJ_DIR)/crypto/authencesn.ko
   AUTOLOAD:=$(call AutoLoad,09,authenc authencesn)
   $(call AddDepends/crypto)
 endef
@@ -84,7 +84,7 @@  define KernelPackage/crypto-cbc
   TITLE:=Cipher Block Chaining CryptoAPI module
   DEPENDS:=+kmod-crypto-manager
   KCONFIG:=CONFIG_CRYPTO_CBC
-  FILES:=$(LINUX_DIR)/crypto/cbc.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/cbc.ko
   AUTOLOAD:=$(call AutoLoad,09,cbc)
   $(call AddDepends/crypto)
 endef
@@ -96,7 +96,7 @@  define KernelPackage/crypto-ccm
  TITLE:=Support for Counter with CBC MAC (CCM)
  DEPENDS:=+kmod-crypto-ctr +kmod-crypto-aead
  KCONFIG:=CONFIG_CRYPTO_CCM
- FILES:=$(LINUX_DIR)/crypto/ccm.ko
+ FILES:=$(LINUX_OBJ_DIR)/crypto/ccm.ko
  AUTOLOAD:=$(call AutoLoad,09,ccm)
  $(call AddDepends/crypto)
 endef
@@ -108,7 +108,7 @@  define KernelPackage/crypto-chacha20poly1305
   TITLE:=ChaCha20-Poly1305 AEAD support, RFC7539 (used by strongSwan IPsec VPN)
   DEPENDS:=+kmod-crypto-aead +kmod-crypto-manager
   KCONFIG:=CONFIG_CRYPTO_CHACHA20POLY1305
-  FILES:=$(LINUX_DIR)/crypto/chacha20poly1305.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/chacha20poly1305.ko
   AUTOLOAD:=$(call AutoLoad,09,chacha20poly1305)
   $(call AddDepends/crypto)
 endef
@@ -120,7 +120,7 @@  define KernelPackage/crypto-cmac
   TITLE:=Support for Cipher-based Message Authentication Code (CMAC)
   DEPENDS:=+kmod-crypto-hash
   KCONFIG:=CONFIG_CRYPTO_CMAC
-  FILES:=$(LINUX_DIR)/crypto/cmac.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/cmac.ko
   AUTOLOAD:=$(call AutoLoad,09,cmac)
   $(call AddDepends/crypto)
 endef
@@ -133,7 +133,7 @@  define KernelPackage/crypto-crc32
   DEPENDS:=+kmod-crypto-hash
   KCONFIG:=CONFIG_CRYPTO_CRC32
   HIDDEN:=1
-  FILES:=$(LINUX_DIR)/crypto/crc32_generic.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/crc32_generic.ko
   AUTOLOAD:=$(call AutoLoad,04,crc32_generic,1)
   $(call AddDepends/crypto)
 endef
@@ -145,7 +145,7 @@  define KernelPackage/crypto-crc32c
   TITLE:=CRC32c CRC module
   DEPENDS:=+kmod-crypto-hash
   KCONFIG:=CONFIG_CRYPTO_CRC32C
-  FILES:=$(LINUX_DIR)/crypto/crc32c_generic.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/crc32c_generic.ko
   AUTOLOAD:=$(call AutoLoad,04,crc32c_generic,1)
   $(call AddDepends/crypto)
 endef
@@ -157,7 +157,7 @@  define KernelPackage/crypto-ctr
   TITLE:=Counter Mode CryptoAPI module
   DEPENDS:=+kmod-crypto-manager +kmod-crypto-seqiv
   KCONFIG:=CONFIG_CRYPTO_CTR
-  FILES:=$(LINUX_DIR)/crypto/ctr.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/ctr.ko
   AUTOLOAD:=$(call AutoLoad,09,ctr)
   $(call AddDepends/crypto)
 endef
@@ -169,7 +169,7 @@  define KernelPackage/crypto-cts
   TITLE:=Cipher Text Stealing CryptoAPI module
   DEPENDS:=+kmod-crypto-manager
   KCONFIG:=CONFIG_CRYPTO_CTS
-  FILES:=$(LINUX_DIR)/crypto/cts.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/cts.ko
   AUTOLOAD:=$(call AutoLoad,09,cts)
   $(call AddDepends/crypto)
 endef
@@ -181,7 +181,7 @@  define KernelPackage/crypto-deflate
   TITLE:=Deflate compression CryptoAPI module
   DEPENDS:=+kmod-lib-zlib-inflate +kmod-lib-zlib-deflate +kmod-crypto-acompress
   KCONFIG:=CONFIG_CRYPTO_DEFLATE
-  FILES:=$(LINUX_DIR)/crypto/deflate.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/deflate.ko
   AUTOLOAD:=$(call AutoLoad,09,deflate)
   $(call AddDepends/crypto)
 endef
@@ -193,8 +193,8 @@  define KernelPackage/crypto-des
   TITLE:=DES/3DES cipher CryptoAPI module
   KCONFIG:=CONFIG_CRYPTO_DES
   FILES:= \
-	$(LINUX_DIR)/crypto/des_generic.ko \
-	$(LINUX_DIR)/lib/crypto/libdes.ko
+	$(LINUX_OBJ_DIR)/crypto/des_generic.ko \
+	$(LINUX_OBJ_DIR)/lib/crypto/libdes.ko
   AUTOLOAD:=$(call AutoLoad,09,des_generic)
   $(call AddDepends/crypto)
 endef
@@ -206,7 +206,7 @@  define KernelPackage/crypto-ecb
   TITLE:=Electronic CodeBook CryptoAPI module
   DEPENDS:=+kmod-crypto-manager
   KCONFIG:=CONFIG_CRYPTO_ECB
-  FILES:=$(LINUX_DIR)/crypto/ecb.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/ecb.ko
   AUTOLOAD:=$(call AutoLoad,09,ecb)
   $(call AddDepends/crypto)
 endef
@@ -219,8 +219,8 @@  define KernelPackage/crypto-ecdh
   DEPENDS:=+kmod-crypto-kpp
   KCONFIG:= CONFIG_CRYPTO_ECDH
   FILES:= \
-	$(LINUX_DIR)/crypto/ecdh_generic.ko \
-	$(LINUX_DIR)/crypto/ecc.ko
+	$(LINUX_OBJ_DIR)/crypto/ecdh_generic.ko \
+	$(LINUX_OBJ_DIR)/crypto/ecc.ko
   AUTOLOAD:=$(call AutoLoad,10,ecdh_generic)
   $(call AddDepends/crypto)
 endef
@@ -232,7 +232,7 @@  define KernelPackage/crypto-echainiv
   TITLE:=Encrypted Chain IV Generator
   DEPENDS:=+kmod-crypto-aead
   KCONFIG:=CONFIG_CRYPTO_ECHAINIV
-  FILES:=$(LINUX_DIR)/crypto/echainiv.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/echainiv.ko
   AUTOLOAD:=$(call AutoLoad,09,echainiv)
   $(call AddDepends/crypto)
 endef
@@ -244,7 +244,7 @@  define KernelPackage/crypto-essiv
   TITLE:=ESSIV support for block encryption
   DEPENDS:=+kmod-crypto-authenc
   KCONFIG:=CONFIG_CRYPTO_ESSIV
-  FILES:= $(LINUX_DIR)/crypto/essiv.ko
+  FILES:= $(LINUX_OBJ_DIR)/crypto/essiv.ko
   AUTOLOAD:=$(call AutoLoad,10,essiv)
   $(call AddDepends/crypto)
 endef
@@ -255,7 +255,7 @@  $(eval $(call KernelPackage,crypto-essiv))
 define KernelPackage/crypto-fcrypt
   TITLE:=FCRYPT cipher CryptoAPI module
   KCONFIG:=CONFIG_CRYPTO_FCRYPT
-  FILES:=$(LINUX_DIR)/crypto/fcrypt.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/fcrypt.ko
   AUTOLOAD:=$(call AutoLoad,09,fcrypt)
   $(call AddDepends/crypto)
 endef
@@ -267,7 +267,7 @@  define KernelPackage/crypto-gcm
   TITLE:=GCM/GMAC CryptoAPI module
   DEPENDS:=+kmod-crypto-ctr +kmod-crypto-ghash +kmod-crypto-null
   KCONFIG:=CONFIG_CRYPTO_GCM
-  FILES:=$(LINUX_DIR)/crypto/gcm.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/gcm.ko
   AUTOLOAD:=$(call AutoLoad,09,gcm)
   $(call AddDepends/crypto)
 endef
@@ -279,7 +279,7 @@  define KernelPackage/crypto-xcbc
   TITLE:=XCBC CryptoAPI module
   DEPENDS:=+kmod-crypto-hash +kmod-crypto-manager
   KCONFIG:=CONFIG_CRYPTO_XCBC
-  FILES:=$(LINUX_DIR)/crypto/xcbc.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/xcbc.ko
   AUTOLOAD:=$(call AutoLoad,09,xcbc)
   $(call AddDepends/crypto)
 endef
@@ -290,7 +290,7 @@  $(eval $(call KernelPackage,crypto-xcbc))
 define KernelPackage/crypto-gf128
   TITLE:=GF(2^128) multiplication functions CryptoAPI module
   KCONFIG:=CONFIG_CRYPTO_GF128MUL
-  FILES:=$(LINUX_DIR)/crypto/gf128mul.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/gf128mul.ko
   AUTOLOAD:=$(call AutoLoad,09,gf128mul)
   $(call AddDepends/crypto)
 endef
@@ -304,13 +304,13 @@  define KernelPackage/crypto-ghash
   KCONFIG:= \
 	CONFIG_CRYPTO_GHASH \
 	CONFIG_CRYPTO_GHASH_ARM_CE
-  FILES:=$(LINUX_DIR)/crypto/ghash-generic.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/ghash-generic.ko
   AUTOLOAD:=$(call AutoLoad,09,ghash-generic)
   $(call AddDepends/crypto)
 endef
 
 define KernelPackage/crypto-ghash/arm-ce
-  FILES+= $(LINUX_DIR)/arch/arm/crypto/ghash-arm-ce.ko
+  FILES+= $(LINUX_OBJ_DIR)/arch/arm/crypto/ghash-arm-ce.ko
   AUTOLOAD+=$(call AutoLoad,09,ghash-arm-ce)
 endef
 
@@ -324,7 +324,7 @@  $(eval $(call KernelPackage,crypto-ghash))
 define KernelPackage/crypto-hash
   TITLE:=CryptoAPI hash support
   KCONFIG:=CONFIG_CRYPTO_HASH
-  FILES:=$(LINUX_DIR)/crypto/crypto_hash.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/crypto_hash.ko
   AUTOLOAD:=$(call AutoLoad,02,crypto_hash,1)
   $(call AddDepends/crypto)
 endef
@@ -336,7 +336,7 @@  define KernelPackage/crypto-hmac
   TITLE:=HMAC digest CryptoAPI module
   DEPENDS:=+kmod-crypto-hash +kmod-crypto-manager
   KCONFIG:=CONFIG_CRYPTO_HMAC
-  FILES:=$(LINUX_DIR)/crypto/hmac.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/hmac.ko
   AUTOLOAD:=$(call AutoLoad,09,hmac)
   $(call AddDepends/crypto)
 endef
@@ -362,8 +362,8 @@  define KernelPackage/crypto-hw-ccp
 	CONFIG_CRYPTO_DEV_CCP_DD \
 	CONFIG_CRYPTO_DEV_SP_CCP=y
   FILES:= \
-	$(LINUX_DIR)/drivers/crypto/ccp/ccp.ko \
-	$(LINUX_DIR)/drivers/crypto/ccp/ccp-crypto.ko
+	$(LINUX_OBJ_DIR)/drivers/crypto/ccp/ccp.ko \
+	$(LINUX_OBJ_DIR)/drivers/crypto/ccp/ccp-crypto.ko
   AUTOLOAD:=$(call AutoLoad,09,ccp ccp-crypto)
   $(call AddDepends/crypto)
 endef
@@ -377,7 +377,7 @@  define KernelPackage/crypto-hw-geode
   KCONFIG:= \
 	CONFIG_CRYPTO_HW=y \
 	CONFIG_CRYPTO_DEV_GEODE
-  FILES:=$(LINUX_DIR)/drivers/crypto/geode-aes.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/crypto/geode-aes.ko
   AUTOLOAD:=$(call AutoLoad,09,geode-aes)
   $(call AddDepends/crypto)
 endef
@@ -392,7 +392,7 @@  define KernelPackage/crypto-hw-hifn-795x
 	CONFIG_CRYPTO_HW=y \
 	CONFIG_CRYPTO_DEV_HIFN_795X \
 	CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
-  FILES:=$(LINUX_DIR)/drivers/crypto/hifn_795x.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/crypto/hifn_795x.ko
   AUTOLOAD:=$(call AutoLoad,09,hifn_795x)
   $(call AddDepends/crypto,+kmod-crypto-des)
 endef
@@ -405,7 +405,7 @@  define KernelPackage/crypto-hw-ixp4xx
   KCONFIG:= \
 	CONFIG_CRYPTO_HW=y \
 	CONFIG_CRYPTO_DEV_IXP4XX
-  FILES:=$(LINUX_DIR)/drivers/crypto/ixp4xx_crypto.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/crypto/ixp4xx_crypto.ko
   AUTOLOAD:=$(call AutoProbe,ixp4xx_crypto)
   $(call AddDepends/crypto)
 endef
@@ -422,8 +422,8 @@  define KernelPackage/crypto-hw-padlock
 	CONFIG_CRYPTO_DEV_PADLOCK_AES \
 	CONFIG_CRYPTO_DEV_PADLOCK_SHA
   FILES:= \
-	$(LINUX_DIR)/drivers/crypto/padlock-aes.ko \
-	$(LINUX_DIR)/drivers/crypto/padlock-sha.ko
+	$(LINUX_OBJ_DIR)/drivers/crypto/padlock-aes.ko \
+	$(LINUX_OBJ_DIR)/drivers/crypto/padlock-sha.ko
   AUTOLOAD:=$(call AutoLoad,09,padlock-aes padlock-sha)
   $(call AddDepends/crypto)
 endef
@@ -439,7 +439,7 @@  define KernelPackage/crypto-hw-safexcel
   KCONFIG:= \
 	CONFIG_CRYPTO_HW=y \
 	CONFIG_CRYPTO_DEV_SAFEXCEL
-  FILES:=$(LINUX_DIR)/drivers/crypto/inside-secure/crypto_safexcel.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/crypto/inside-secure/crypto_safexcel.ko
   AUTOLOAD:=$(call AutoLoad,90,crypto_safexcel)
   $(call AddDepends/crypto)
 endef
@@ -469,7 +469,7 @@  define KernelPackage/crypto-hw-talitos
 	CONFIG_CRYPTO_DEV_TALITOS1=y \
 	CONFIG_CRYPTO_DEV_TALITOS2=y
   FILES:= \
-	$(LINUX_DIR)/drivers/crypto/talitos.ko
+	$(LINUX_OBJ_DIR)/drivers/crypto/talitos.ko
   AUTOLOAD:=$(call AutoLoad,09,talitos)
   $(call AddDepends/crypto)
 endef
@@ -492,7 +492,7 @@  define KernelPackage/crypto-hw-eip93
 	CONFIG_CRYPTO_DEV_EIP93_AEAD=y \
 	CONFIG_CRYPTO_DEV_EIP93_GENERIC_SW_MAX_LEN=256 \
 	CONFIG_CRYPTO_DEV_EIP93_AES_128_SW_MAX_LEN=512
-  FILES:=$(LINUX_DIR)/drivers/crypto/mtk-eip93/crypto-hw-eip93.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/crypto/mtk-eip93/crypto-hw-eip93.ko
   AUTOLOAD:=$(call AutoLoad,09,crypto-hw-eip93)
   $(call AddDepends/crypto)
 endef
@@ -509,7 +509,7 @@  $(eval $(call KernelPackage,crypto-hw-eip93))
 define KernelPackage/crypto-kpp
   TITLE:=Key-agreement Protocol Primitives
   KCONFIG:=CONFIG_CRYPTO_KPP
-  FILES:=$(LINUX_DIR)/crypto/kpp.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/kpp.ko
   AUTOLOAD:=$(call AutoLoad,09,kpp)
   $(call AddDepends/crypto)
 endef
@@ -520,32 +520,32 @@  define KernelPackage/crypto-lib-chacha20
   TITLE:=ChaCha library interface
   KCONFIG:=CONFIG_CRYPTO_LIB_CHACHA
   HIDDEN:=1
-  FILES:=$(LINUX_DIR)/lib/crypto/libchacha.ko
+  FILES:=$(LINUX_OBJ_DIR)/lib/crypto/libchacha.ko
   $(call AddDepends/crypto)
 endef
 
 define KernelPackage/crypto-lib-chacha20/x86_64
   KCONFIG+=CONFIG_CRYPTO_CHACHA20_X86_64
-  FILES+=$(LINUX_DIR)/arch/x86/crypto/chacha-x86_64.ko
+  FILES+=$(LINUX_OBJ_DIR)/arch/x86/crypto/chacha-x86_64.ko
 endef
 
 # Note that a non-neon fallback implementation is available on arm32 when
 # NEON is not supported, hence all arm targets can utilize lib-chacha20/arm
 define KernelPackage/crypto-lib-chacha20/arm
   KCONFIG+=CONFIG_CRYPTO_CHACHA20_NEON
-  FILES:=$(LINUX_DIR)/arch/arm/crypto/chacha-neon.ko
+  FILES:=$(LINUX_OBJ_DIR)/arch/arm/crypto/chacha-neon.ko
 endef
 
 KernelPackage/crypto-lib-chacha20/armeb=$(KernelPackage/crypto-lib-chacha20/arm)
 
 define KernelPackage/crypto-lib-chacha20/aarch64
   KCONFIG+=CONFIG_CRYPTO_CHACHA20_NEON
-  FILES+=$(LINUX_DIR)/arch/arm64/crypto/chacha-neon.ko
+  FILES+=$(LINUX_OBJ_DIR)/arch/arm64/crypto/chacha-neon.ko
 endef
 
 define KernelPackage/crypto-lib-chacha20/mips32r2
   KCONFIG+=CONFIG_CRYPTO_CHACHA_MIPS
-  FILES:=$(LINUX_DIR)/arch/mips/crypto/chacha-mips.ko
+  FILES:=$(LINUX_OBJ_DIR)/arch/mips/crypto/chacha-mips.ko
 endef
 
 ifeq ($(CONFIG_CPU_MIPS32_R2),y)
@@ -565,7 +565,7 @@  define KernelPackage/crypto-lib-chacha20poly1305
   TITLE:=ChaCha20-Poly1305 AEAD support (8-byte nonce library version)
   KCONFIG:=CONFIG_CRYPTO_LIB_CHACHA20POLY1305
   HIDDEN:=1
-  FILES:=$(LINUX_DIR)/lib/crypto/libchacha20poly1305.ko
+  FILES:=$(LINUX_OBJ_DIR)/lib/crypto/libchacha20poly1305.ko
   $(call AddDepends/crypto, +kmod-crypto-lib-chacha20 +kmod-crypto-lib-poly1305)
 endef
 
@@ -577,8 +577,8 @@  define KernelPackage/crypto-lib-curve25519
   KCONFIG:=CONFIG_CRYPTO_LIB_CURVE25519
   HIDDEN:=1
   FILES:= \
-	$(LINUX_DIR)/lib/crypto/libcurve25519.ko \
-	$(LINUX_DIR)/lib/crypto/libcurve25519-generic.ko
+	$(LINUX_OBJ_DIR)/lib/crypto/libcurve25519.ko \
+	$(LINUX_OBJ_DIR)/lib/crypto/libcurve25519-generic.ko
   $(call AddDepends/crypto,+PACKAGE_kmod-crypto-kpp:kmod-crypto-kpp)
 endef
 
@@ -588,12 +588,12 @@  endef
 
 define KernelPackage/crypto-lib-curve25519/x86_64
   KCONFIG+=CONFIG_CRYPTO_CURVE25519_X86
-  FILES+=$(LINUX_DIR)/arch/x86/crypto/curve25519-x86_64.ko
+  FILES+=$(LINUX_OBJ_DIR)/arch/x86/crypto/curve25519-x86_64.ko
 endef
 
 define KernelPackage/crypto-lib-curve25519/arm-neon
   KCONFIG+=CONFIG_CRYPTO_CURVE25519_NEON
-  FILES+=$(LINUX_DIR)/arch/arm/crypto/curve25519-neon.ko
+  FILES+=$(LINUX_OBJ_DIR)/arch/arm/crypto/curve25519-neon.ko
 endef
 
 ifeq ($(ARCH)-$(CONFIG_KERNEL_MODE_NEON),arm-y)
@@ -613,7 +613,7 @@  define KernelPackage/crypto-lib-poly1305
   TITLE:=Poly1305 library interface
   KCONFIG:=CONFIG_CRYPTO_LIB_POLY1305
   HIDDEN:=1
-  FILES:=$(LINUX_DIR)/lib/crypto/libpoly1305.ko
+  FILES:=$(LINUX_OBJ_DIR)/lib/crypto/libpoly1305.ko
   $(call AddDepends/crypto,+PACKAGE_kmod-crypto-hash:kmod-crypto-hash)
 endef
 
@@ -623,24 +623,24 @@  endef
 
 define KernelPackage/crypto-lib-poly1305/x86_64
   KCONFIG+=CONFIG_CRYPTO_POLY1305_X86_64
-  FILES+=$(LINUX_DIR)/arch/x86/crypto/poly1305-x86_64.ko
+  FILES+=$(LINUX_OBJ_DIR)/arch/x86/crypto/poly1305-x86_64.ko
 endef
 
 define KernelPackage/crypto-lib-poly1305/arm
   KCONFIG+=CONFIG_CRYPTO_POLY1305_ARM
-  FILES:=$(LINUX_DIR)/arch/arm/crypto/poly1305-arm.ko
+  FILES:=$(LINUX_OBJ_DIR)/arch/arm/crypto/poly1305-arm.ko
 endef
 
 KernelPackage/crypto-lib-poly1305/armeb=$(KernelPackage/crypto-lib-poly1305/arm)
 
 define KernelPackage/crypto-lib-poly1305/aarch64
   KCONFIG+=CONFIG_CRYPTO_POLY1305_NEON
-  FILES:=$(LINUX_DIR)/arch/arm64/crypto/poly1305-neon.ko
+  FILES:=$(LINUX_OBJ_DIR)/arch/arm64/crypto/poly1305-neon.ko
 endef
 
 define KernelPackage/crypto-lib-poly1305/mips
   KCONFIG+=CONFIG_CRYPTO_POLY1305_MIPS
-  FILES:=$(LINUX_DIR)/arch/mips/crypto/poly1305-mips.ko
+  FILES:=$(LINUX_OBJ_DIR)/arch/mips/crypto/poly1305-mips.ko
 endef
 
 KernelPackage/crypto-lib-poly1305/mipsel=$(KernelPackage/crypto-lib-poly1305/mips)
@@ -661,7 +661,7 @@  define KernelPackage/crypto-manager
   KCONFIG:= \
 	CONFIG_CRYPTO_MANAGER \
 	CONFIG_CRYPTO_MANAGER2
-  FILES:=$(LINUX_DIR)/crypto/cryptomgr.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/cryptomgr.ko
   AUTOLOAD:=$(call AutoLoad,09,cryptomgr,1)
   $(call AddDepends/crypto)
 endef
@@ -673,7 +673,7 @@  define KernelPackage/crypto-md4
   TITLE:=MD4 digest CryptoAPI module
   DEPENDS:=+kmod-crypto-hash
   KCONFIG:=CONFIG_CRYPTO_MD4
-  FILES:=$(LINUX_DIR)/crypto/md4.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/md4.ko
   AUTOLOAD:=$(call AutoLoad,09,md4)
   $(call AddDepends/crypto)
 endef
@@ -688,18 +688,18 @@  define KernelPackage/crypto-md5
 	CONFIG_CRYPTO_MD5 \
 	CONFIG_CRYPTO_MD5_OCTEON \
 	CONFIG_CRYPTO_MD5_PPC
-  FILES:=$(LINUX_DIR)/crypto/md5.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/md5.ko
   AUTOLOAD:=$(call AutoLoad,09,md5)
   $(call AddDepends/crypto)
 endef
 
 define KernelPackage/crypto-md5/octeon
-  FILES+=$(LINUX_DIR)/arch/mips/cavium-octeon/crypto/octeon-md5.ko
+  FILES+=$(LINUX_OBJ_DIR)/arch/mips/cavium-octeon/crypto/octeon-md5.ko
   AUTOLOAD+=$(call AutoLoad,09,octeon-md5)
 endef
 
 define KernelPackage/crypto-md5/powerpc
-  FILES+=$(LINUX_DIR)/arch/powerpc/crypto/md5-ppc.ko
+  FILES+=$(LINUX_OBJ_DIR)/arch/powerpc/crypto/md5-ppc.ko
   AUTOLOAD+=$(call AutoLoad,09,md5-ppc)
 endef
 
@@ -715,7 +715,7 @@  define KernelPackage/crypto-michael-mic
   TITLE:=Michael MIC keyed digest CryptoAPI module
   DEPENDS:=+kmod-crypto-hash
   KCONFIG:=CONFIG_CRYPTO_MICHAEL_MIC
-  FILES:=$(LINUX_DIR)/crypto/michael_mic.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/michael_mic.ko
   AUTOLOAD:=$(call AutoLoad,09,michael_mic)
   $(call AddDepends/crypto)
 endef
@@ -755,19 +755,19 @@  define KernelPackage/crypto-misc
 	CONFIG_CRYPTO_TWOFISH_586 \
 	CONFIG_CRYPTO_WP512
   FILES:= \
-	$(LINUX_DIR)/crypto/anubis.ko \
-	$(LINUX_DIR)/crypto/camellia_generic.ko \
-	$(LINUX_DIR)/crypto/cast_common.ko \
-	$(LINUX_DIR)/crypto/cast5_generic.ko \
-	$(LINUX_DIR)/crypto/cast6_generic.ko \
-	$(LINUX_DIR)/crypto/khazad.ko \
-	$(LINUX_DIR)/crypto/tea.ko \
-	$(LINUX_DIR)/crypto/twofish_common.ko \
-	$(LINUX_DIR)/crypto/wp512.ko \
-	$(LINUX_DIR)/crypto/twofish_generic.ko \
-	$(LINUX_DIR)/crypto/blowfish_common.ko \
-	$(LINUX_DIR)/crypto/blowfish_generic.ko \
-	$(LINUX_DIR)/crypto/serpent_generic.ko
+	$(LINUX_OBJ_DIR)/crypto/anubis.ko \
+	$(LINUX_OBJ_DIR)/crypto/camellia_generic.ko \
+	$(LINUX_OBJ_DIR)/crypto/cast_common.ko \
+	$(LINUX_OBJ_DIR)/crypto/cast5_generic.ko \
+	$(LINUX_OBJ_DIR)/crypto/cast6_generic.ko \
+	$(LINUX_OBJ_DIR)/crypto/khazad.ko \
+	$(LINUX_OBJ_DIR)/crypto/tea.ko \
+	$(LINUX_OBJ_DIR)/crypto/twofish_common.ko \
+	$(LINUX_OBJ_DIR)/crypto/wp512.ko \
+	$(LINUX_OBJ_DIR)/crypto/twofish_generic.ko \
+	$(LINUX_OBJ_DIR)/crypto/blowfish_common.ko \
+	$(LINUX_OBJ_DIR)/crypto/blowfish_generic.ko \
+	$(LINUX_OBJ_DIR)/crypto/serpent_generic.ko
   AUTOLOAD:=$(call AutoLoad,10,anubis camellia_generic cast_common \
 	cast5_generic cast6_generic khazad tea twofish_common \
 	wp512 blowfish_common serpent_generic)
@@ -780,10 +780,10 @@  endef
 ifndef CONFIG_x86_64
   define KernelPackage/crypto-misc/x86
     FILES+= \
-	$(LINUX_DIR)/arch/x86/crypto/twofish-i586.ko \
-	$(LINUX_DIR)/arch/x86/crypto/serpent-sse2-i586.ko \
-	$(LINUX_DIR)/crypto/cryptd.ko \
-	$(LINUX_DIR)/crypto/crypto_simd.ko
+	$(LINUX_OBJ_DIR)/arch/x86/crypto/twofish-i586.ko \
+	$(LINUX_OBJ_DIR)/arch/x86/crypto/serpent-sse2-i586.ko \
+	$(LINUX_OBJ_DIR)/crypto/cryptd.ko \
+	$(LINUX_OBJ_DIR)/crypto/crypto_simd.ko
     AUTOLOAD+= $(call AutoLoad,10,cryptd \
 	serpent-sse2-i586 twofish-i586 blowfish_generic)
   endef
@@ -791,18 +791,18 @@  endif
 
 define KernelPackage/crypto-misc/x86_64
   FILES+= \
-	$(LINUX_DIR)/arch/x86/crypto/camellia-x86_64.ko \
-	$(LINUX_DIR)/arch/x86/crypto/blowfish-x86_64.ko \
-	$(LINUX_DIR)/arch/x86/crypto/twofish-x86_64.ko \
-	$(LINUX_DIR)/arch/x86/crypto/twofish-x86_64-3way.ko \
-	$(LINUX_DIR)/arch/x86/crypto/serpent-sse2-x86_64.ko \
-	$(LINUX_DIR)/arch/x86/crypto/camellia-aesni-avx-x86_64.ko \
-	$(LINUX_DIR)/arch/x86/crypto/cast5-avx-x86_64.ko \
-	$(LINUX_DIR)/arch/x86/crypto/cast6-avx-x86_64.ko \
-	$(LINUX_DIR)/arch/x86/crypto/twofish-avx-x86_64.ko \
-	$(LINUX_DIR)/arch/x86/crypto/serpent-avx-x86_64.ko \
-	$(LINUX_DIR)/arch/x86/crypto/camellia-aesni-avx2.ko \
-	$(LINUX_DIR)/arch/x86/crypto/serpent-avx2.ko
+	$(LINUX_OBJ_DIR)/arch/x86/crypto/camellia-x86_64.ko \
+	$(LINUX_OBJ_DIR)/arch/x86/crypto/blowfish-x86_64.ko \
+	$(LINUX_OBJ_DIR)/arch/x86/crypto/twofish-x86_64.ko \
+	$(LINUX_OBJ_DIR)/arch/x86/crypto/twofish-x86_64-3way.ko \
+	$(LINUX_OBJ_DIR)/arch/x86/crypto/serpent-sse2-x86_64.ko \
+	$(LINUX_OBJ_DIR)/arch/x86/crypto/camellia-aesni-avx-x86_64.ko \
+	$(LINUX_OBJ_DIR)/arch/x86/crypto/cast5-avx-x86_64.ko \
+	$(LINUX_OBJ_DIR)/arch/x86/crypto/cast6-avx-x86_64.ko \
+	$(LINUX_OBJ_DIR)/arch/x86/crypto/twofish-avx-x86_64.ko \
+	$(LINUX_OBJ_DIR)/arch/x86/crypto/serpent-avx-x86_64.ko \
+	$(LINUX_OBJ_DIR)/arch/x86/crypto/camellia-aesni-avx2.ko \
+	$(LINUX_OBJ_DIR)/arch/x86/crypto/serpent-avx2.ko
   AUTOLOAD+= $(call AutoLoad,10,camellia-x86_64 \
 	camellia-aesni-avx-x86_64 camellia-aesni-avx2 cast5-avx-x86_64 \
 	cast6-avx-x86_64 twofish-x86_64 twofish-x86_64-3way \
@@ -820,7 +820,7 @@  $(eval $(call KernelPackage,crypto-misc))
 define KernelPackage/crypto-null
   TITLE:=Null CryptoAPI module
   KCONFIG:=CONFIG_CRYPTO_NULL
-  FILES:=$(LINUX_DIR)/crypto/crypto_null.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/crypto_null.ko
   AUTOLOAD:=$(call AutoLoad,09,crypto_null)
   $(call AddDepends/crypto, +kmod-crypto-hash)
 endef
@@ -832,7 +832,7 @@  define KernelPackage/crypto-pcbc
   TITLE:=Propagating Cipher Block Chaining CryptoAPI module
   DEPENDS:=+kmod-crypto-manager
   KCONFIG:=CONFIG_CRYPTO_PCBC
-  FILES:=$(LINUX_DIR)/crypto/pcbc.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/pcbc.ko
   AUTOLOAD:=$(call AutoLoad,09,pcbc)
   $(call AddDepends/crypto)
 endef
@@ -846,9 +846,9 @@  define KernelPackage/crypto-rsa
   KCONFIG:= CONFIG_CRYPTO_RSA
   HIDDEN:=1
   FILES:= \
-	$(LINUX_DIR)/lib/mpi/mpi.ko \
-	$(LINUX_DIR)/crypto/akcipher.ko \
-	$(LINUX_DIR)/crypto/rsa_generic.ko
+	$(LINUX_OBJ_DIR)/lib/mpi/mpi.ko \
+	$(LINUX_OBJ_DIR)/crypto/akcipher.ko \
+	$(LINUX_OBJ_DIR)/crypto/rsa_generic.ko
   AUTOLOAD:=$(call AutoLoad,10,rsa_generic)
   $(call AddDepends/crypto)
 endef
@@ -860,7 +860,7 @@  define KernelPackage/crypto-rmd160
   TITLE:=RIPEMD160 digest CryptoAPI module
   DEPENDS:=+kmod-crypto-hash
   KCONFIG:=CONFIG_CRYPTO_RMD160
-  FILES:=$(LINUX_DIR)/crypto/rmd160.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/rmd160.ko
   AUTOLOAD:=$(call AutoLoad,09,rmd160)
   $(call AddDepends/crypto)
 endef
@@ -879,9 +879,9 @@  define KernelPackage/crypto-rng
 	CONFIG_CRYPTO_JITTERENTROPY \
 	CONFIG_CRYPTO_RNG2
   FILES:= \
-	$(LINUX_DIR)/crypto/drbg.ko \
-	$(LINUX_DIR)/crypto/jitterentropy_rng.ko \
-	$(LINUX_DIR)/crypto/rng.ko
+	$(LINUX_OBJ_DIR)/crypto/drbg.ko \
+	$(LINUX_OBJ_DIR)/crypto/jitterentropy_rng.ko \
+	$(LINUX_OBJ_DIR)/crypto/rng.ko
   AUTOLOAD:=$(call AutoLoad,09,drbg jitterentropy_rng rng)
   $(call AddDepends/crypto)
 endef
@@ -893,7 +893,7 @@  define KernelPackage/crypto-seqiv
   TITLE:=CryptoAPI Sequence Number IV Generator
   DEPENDS:=+kmod-crypto-aead +kmod-crypto-rng
   KCONFIG:=CONFIG_CRYPTO_SEQIV
-  FILES:=$(LINUX_DIR)/crypto/seqiv.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/seqiv.ko
   AUTOLOAD:=$(call AutoLoad,09,seqiv)
   $(call AddDepends/crypto)
 endef
@@ -911,19 +911,19 @@  define KernelPackage/crypto-sha1
 	CONFIG_CRYPTO_SHA1_OCTEON \
 	CONFIG_CRYPTO_SHA1_PPC_SPE \
 	CONFIG_CRYPTO_SHA1_SSSE3
-  FILES:=$(LINUX_DIR)/crypto/sha1_generic.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/sha1_generic.ko
   AUTOLOAD:=$(call AutoLoad,09,sha1_generic)
   $(call AddDepends/crypto)
 endef
 
 define KernelPackage/crypto-sha1/arm
-  FILES+=$(LINUX_DIR)/arch/arm/crypto/sha1-arm.ko
+  FILES+=$(LINUX_OBJ_DIR)/arch/arm/crypto/sha1-arm.ko
   AUTOLOAD+=$(call AutoLoad,09,sha1-arm)
 endef
 
 define KernelPackage/crypto-sha1/arm-neon
   $(call KernelPackage/crypto-sha1/arm)
-  FILES+=$(LINUX_DIR)/arch/arm/crypto/sha1-arm-neon.ko
+  FILES+=$(LINUX_OBJ_DIR)/arch/arm/crypto/sha1-arm-neon.ko
   AUTOLOAD+=$(call AutoLoad,09,sha1-arm-neon)
 endef
 
@@ -932,20 +932,20 @@  KernelPackage/crypto-sha1/ipq40xx=$(KernelPackage/crypto-sha1/arm-neon)
 KernelPackage/crypto-sha1/mvebu/cortexa9=$(KernelPackage/crypto-sha1/arm-neon)
 
 define KernelPackage/crypto-sha1/octeon
-  FILES+=$(LINUX_DIR)/arch/mips/cavium-octeon/crypto/octeon-sha1.ko
+  FILES+=$(LINUX_OBJ_DIR)/arch/mips/cavium-octeon/crypto/octeon-sha1.ko
   AUTOLOAD+=$(call AutoLoad,09,octeon-sha1)
 endef
 
 KernelPackage/crypto-sha1/tegra=$(KernelPackage/crypto-sha1/arm)
 
 define KernelPackage/crypto-sha1/mpc85xx
-  FILES+=$(LINUX_DIR)/arch/powerpc/crypto/sha1-ppc-spe.ko
+  FILES+=$(LINUX_OBJ_DIR)/arch/powerpc/crypto/sha1-ppc-spe.ko
   AUTOLOAD+=$(call AutoLoad,09,sha1-ppc-spe)
 endef
 
 ifndef CONFIG_TARGET_uml
 define KernelPackage/crypto-sha1/x86_64
-  FILES+=$(LINUX_DIR)/arch/x86/crypto/sha1-ssse3.ko
+  FILES+=$(LINUX_OBJ_DIR)/arch/x86/crypto/sha1-ssse3.ko
   AUTOLOAD+=$(call AutoLoad,09,sha1-ssse3)
 endef
 endif
@@ -967,25 +967,25 @@  define KernelPackage/crypto-sha256
 	CONFIG_CRYPTO_SHA256_PPC_SPE \
 	CONFIG_CRYPTO_SHA256_SSSE3
   FILES:= \
-	$(LINUX_DIR)/crypto/sha256_generic.ko \
-	$(LINUX_DIR)/lib/crypto/libsha256.ko
+	$(LINUX_OBJ_DIR)/crypto/sha256_generic.ko \
+	$(LINUX_OBJ_DIR)/lib/crypto/libsha256.ko
   AUTOLOAD:=$(call AutoLoad,09,sha256_generic)
   $(call AddDepends/crypto)
 endef
 
 define KernelPackage/crypto-sha256/octeon
-  FILES+=$(LINUX_DIR)/arch/mips/cavium-octeon/crypto/octeon-sha256.ko
+  FILES+=$(LINUX_OBJ_DIR)/arch/mips/cavium-octeon/crypto/octeon-sha256.ko
   AUTOLOAD+=$(call AutoLoad,09,octeon-sha256)
 endef
 
 define KernelPackage/crypto-sha256/mpc85xx
-  FILES+=$(LINUX_DIR)/arch/powerpc/crypto/sha256-ppc-spe.ko
+  FILES+=$(LINUX_OBJ_DIR)/arch/powerpc/crypto/sha256-ppc-spe.ko
   AUTOLOAD+=$(call AutoLoad,09,sha256-ppc-spe)
 endef
 
 ifndef CONFIG_TARGET_uml
 define KernelPackage/crypto-sha256/x86_64
-  FILES+=$(LINUX_DIR)/arch/x86/crypto/sha256-ssse3.ko
+  FILES+=$(LINUX_OBJ_DIR)/arch/x86/crypto/sha256-ssse3.ko
   AUTOLOAD+=$(call AutoLoad,09,sha256-ssse3)
 endef
 endif
@@ -1006,13 +1006,13 @@  define KernelPackage/crypto-sha512
 	CONFIG_CRYPTO_SHA512_ARM \
 	CONFIG_CRYPTO_SHA512_OCTEON \
 	CONFIG_CRYPTO_SHA512_SSSE3
-  FILES:=$(LINUX_DIR)/crypto/sha512_generic.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/sha512_generic.ko
   AUTOLOAD:=$(call AutoLoad,09,sha512_generic)
   $(call AddDepends/crypto)
 endef
 
 define KernelPackage/crypto-sha512/arm
-  FILES+=$(LINUX_DIR)/arch/arm/crypto/sha512-arm.ko
+  FILES+=$(LINUX_OBJ_DIR)/arch/arm/crypto/sha512-arm.ko
   AUTOLOAD+=$(call AutoLoad,09,sha512-arm)
 endef
 
@@ -1021,7 +1021,7 @@  KernelPackage/crypto-sha512/ipq40xx=$(KernelPackage/crypto-sha512/arm)
 KernelPackage/crypto-sha512/mvebu/cortexa9=$(KernelPackage/crypto-sha512/arm)
 
 define KernelPackage/crypto-sha512/octeon
-  FILES+=$(LINUX_DIR)/arch/mips/cavium-octeon/crypto/octeon-sha512.ko
+  FILES+=$(LINUX_OBJ_DIR)/arch/mips/cavium-octeon/crypto/octeon-sha512.ko
   AUTOLOAD+=$(call AutoLoad,09,octeon-sha512)
 endef
 
@@ -1029,7 +1029,7 @@  KernelPackage/crypto-sha512/tegra=$(KernelPackage/crypto-sha512/arm)
 
 ifndef CONFIG_TARGET_uml
 define KernelPackage/crypto-sha512/x86_64
-  FILES+=$(LINUX_DIR)/arch/x86/crypto/sha512-ssse3.ko
+  FILES+=$(LINUX_OBJ_DIR)/arch/x86/crypto/sha512-ssse3.ko
   AUTOLOAD+=$(call AutoLoad,09,sha512-ssse3)
 endef
 endif
@@ -1045,7 +1045,7 @@  $(eval $(call KernelPackage,crypto-sha512))
 define KernelPackage/crypto-test
   TITLE:=Test CryptoAPI module
   KCONFIG:=CONFIG_CRYPTO_TEST
-  FILES:=$(LINUX_DIR)/crypto/tcrypt.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/tcrypt.ko
   $(call AddDepends/crypto,+kmod-crypto-manager)
 endef
 
@@ -1063,12 +1063,12 @@  define KernelPackage/crypto-user
 	CONFIG_CRYPTO_USER_API_RNG \
 	CONFIG_CRYPTO_USER_API_SKCIPHER
   FILES:= \
-	$(LINUX_DIR)/crypto/af_alg.ko \
-	$(LINUX_DIR)/crypto/algif_aead.ko \
-	$(LINUX_DIR)/crypto/algif_hash.ko \
-	$(LINUX_DIR)/crypto/algif_rng.ko \
-	$(LINUX_DIR)/crypto/algif_skcipher.ko \
-	$(LINUX_DIR)/crypto/crypto_user.ko
+	$(LINUX_OBJ_DIR)/crypto/af_alg.ko \
+	$(LINUX_OBJ_DIR)/crypto/algif_aead.ko \
+	$(LINUX_OBJ_DIR)/crypto/algif_hash.ko \
+	$(LINUX_OBJ_DIR)/crypto/algif_rng.ko \
+	$(LINUX_OBJ_DIR)/crypto/algif_skcipher.ko \
+	$(LINUX_OBJ_DIR)/crypto/crypto_user.ko
   AUTOLOAD:=$(call AutoLoad,09,af_alg algif_aead algif_hash algif_rng algif_skcipher crypto_user)
   $(call AddDepends/crypto)
 endef
@@ -1080,7 +1080,7 @@  define KernelPackage/crypto-xts
   TITLE:=XTS cipher CryptoAPI module
   DEPENDS:=+kmod-crypto-gf128 +kmod-crypto-manager
   KCONFIG:=CONFIG_CRYPTO_XTS
-  FILES:=$(LINUX_DIR)/crypto/xts.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/xts.ko
   AUTOLOAD:=$(call AutoLoad,09,xts)
   $(call AddDepends/crypto)
 endef
diff --git a/package/kernel/linux/modules/firewire.mk b/package/kernel/linux/modules/firewire.mk
index 1e2d94272a..5da3793ebe 100644
--- a/package/kernel/linux/modules/firewire.mk
+++ b/package/kernel/linux/modules/firewire.mk
@@ -12,7 +12,7 @@  define KernelPackage/firewire
   TITLE:=Support for FireWire (new stack)
   DEPENDS:=@PCI_SUPPORT +kmod-lib-crc-itu-t
   KCONFIG:=CONFIG_FIREWIRE
-  FILES:=$(LINUX_DIR)/drivers/firewire/firewire-core.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/firewire/firewire-core.ko
 endef
 
 define KernelPackage/firewire/description
@@ -27,7 +27,7 @@  define KernelPackage/firewire-net
   TITLE:=Support for IP networking over FireWire
   DEPENDS:=kmod-firewire
   KCONFIG:=CONFIG_FIREWIRE_NET
-  FILES:=$(LINUX_DIR)/drivers/firewire/firewire-net.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/firewire/firewire-net.ko
   AUTOLOAD:=$(call AutoProbe,firewire-net)
 endef
 
@@ -46,7 +46,7 @@  define KernelPackage/firewire-ohci
 	CONFIG_FIREWIRE_OHCI \
 	CONFIG_FIREWIRE_OHCI_DEBUG=n \
 	CONFIG_FIREWIRE_OHCI_REMOTE_DMA=n
-  FILES:=$(LINUX_DIR)/drivers/firewire/firewire-ohci.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/firewire/firewire-ohci.ko
   AUTOLOAD:=$(call AutoProbe,firewire-ohci)
 endef
 
@@ -63,7 +63,7 @@  define KernelPackage/firewire-sbp2
   TITLE:=Support for SBP-2 devices over FireWire
   DEPENDS:=kmod-firewire +kmod-scsi-core
   KCONFIG:=CONFIG_FIREWIRE_SBP2
-  FILES:=$(LINUX_DIR)/drivers/firewire/firewire-sbp2.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/firewire/firewire-sbp2.ko
   AUTOLOAD:=$(call AutoProbe,firewire-sbp2)
 endef
 
diff --git a/package/kernel/linux/modules/fs.mk b/package/kernel/linux/modules/fs.mk
index f2acaa7439..3fdd403e62 100644
--- a/package/kernel/linux/modules/fs.mk
+++ b/package/kernel/linux/modules/fs.mk
@@ -16,7 +16,7 @@  define KernelPackage/fs-9p
 	CONFIG_9P_FS_POSIX_ACL=n \
 	CONFIG_9P_FS_SECURITY=n \
 	CONFIG_9P_FSCACHE=n
-  FILES:=$(LINUX_DIR)/fs/9p/9p.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/9p/9p.ko
   AUTOLOAD:=$(call AutoLoad,30,9p)
 endef
 
@@ -36,7 +36,7 @@  define KernelPackage/fs-afs
 	CONFIG_AFS_FS=m \
 	CONFIG_AFS_DEBUG=n \
 	CONFIG_AFS_FSCACHE=y
-  FILES:=$(LINUX_DIR)/fs/afs/kafs.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/afs/kafs.ko
   AUTOLOAD:=$(call AutoLoad,30,kafs)
 endef
 
@@ -53,7 +53,7 @@  define KernelPackage/fs-autofs4
 	CONFIG_AUTOFS4_FS \
 	CONFIG_AUTOFS_FS
   FILES:= \
-	$(LINUX_DIR)/fs/autofs/autofs4.ko
+	$(LINUX_OBJ_DIR)/fs/autofs/autofs4.ko
   AUTOLOAD:=$(call AutoLoad,30,autofs4)
 endef
 
@@ -72,7 +72,7 @@  define KernelPackage/fs-btrfs
 	CONFIG_BTRFS_FS \
 	CONFIG_BTRFS_FS_CHECK_INTEGRITY=n
   FILES:=\
-	$(LINUX_DIR)/fs/btrfs/btrfs.ko
+	$(LINUX_OBJ_DIR)/fs/btrfs/btrfs.ko
   AUTOLOAD:=$(call AutoLoad,30,btrfs,1)
 endef
 
@@ -91,10 +91,10 @@  define KernelPackage/fs-smbfs-common
 	CONFIG_SMBFS_COMMON@lt6.1 \
 	CONFIG_SMBFS@ge6.1
   FILES:= \
-	$(LINUX_DIR)/fs/smbfs_common/cifs_arc4.ko@lt6.1 \
-	$(LINUX_DIR)/fs/smbfs_common/cifs_md4.ko@lt6.1 \
-	$(LINUX_DIR)/fs/smb/common/cifs_arc4.ko@ge6.1 \
-	$(LINUX_DIR)/fs/smb/common/cifs_md4.ko@ge6.1
+	$(LINUX_OBJ_DIR)/fs/smbfs_common/cifs_arc4.ko@lt6.1 \
+	$(LINUX_OBJ_DIR)/fs/smbfs_common/cifs_md4.ko@lt6.1 \
+	$(LINUX_OBJ_DIR)/fs/smb/common/cifs_arc4.ko@ge6.1 \
+	$(LINUX_OBJ_DIR)/fs/smb/common/cifs_md4.ko@ge6.1
 endef
 
 define KernelPackage/fs-smbfs-common/description
@@ -112,8 +112,8 @@  define KernelPackage/fs-cifs
 	CONFIG_CIFS_DFS_UPCALL=n \
 	CONFIG_CIFS_UPCALL=n
   FILES:= \
-	$(LINUX_DIR)/fs/cifs/cifs.ko@lt6.1 \
-	$(LINUX_DIR)/fs/smb/client/cifs.ko@ge6.1
+	$(LINUX_OBJ_DIR)/fs/cifs/cifs.ko@lt6.1 \
+	$(LINUX_OBJ_DIR)/fs/smb/client/cifs.ko@ge6.1
   AUTOLOAD:=$(call AutoLoad,30,cifs)
   $(call AddDepends/nls)
   DEPENDS+= \
@@ -144,7 +144,7 @@  define KernelPackage/fs-configfs
   TITLE:=Configuration filesystem support
   KCONFIG:= \
 	CONFIG_CONFIGFS_FS
-  FILES:=$(LINUX_DIR)/fs/configfs/configfs.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/configfs/configfs.ko
   AUTOLOAD:=$(call AutoLoad,30,configfs)
 endef
 
@@ -161,7 +161,7 @@  define KernelPackage/fs-cramfs
   DEPENDS:=+kmod-lib-zlib-inflate
   KCONFIG:= \
 	CONFIG_CRAMFS
-  FILES:=$(LINUX_DIR)/fs/cramfs/cramfs.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/cramfs/cramfs.ko
   AUTOLOAD:=$(call AutoLoad,30,cramfs)
 endef
 
@@ -176,7 +176,7 @@  define KernelPackage/fs-efivarfs
   SUBMENU:=$(FS_MENU)
   TITLE:=efivar filesystem support
   KCONFIG:=CONFIG_EFIVAR_FS
-  FILES:=$(LINUX_DIR)/fs/efivarfs/efivarfs.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/efivarfs/efivarfs.ko
   DEPENDS:=@(x86_64||x86)
   AUTOLOAD:=$(call Autoload,90,efivarfs)
 endef
@@ -194,7 +194,7 @@  define KernelPackage/fs-exfat
   KCONFIG:= \
 	CONFIG_EXFAT_FS \
 	CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
-  FILES:= $(LINUX_DIR)/fs/exfat/exfat.ko
+  FILES:= $(LINUX_OBJ_DIR)/fs/exfat/exfat.ko
   AUTOLOAD:=$(call AutoLoad,30,exfat,1)
   DEPENDS:=+kmod-nls-base
 endef
@@ -210,7 +210,7 @@  define KernelPackage/fs-exportfs
   SUBMENU:=$(FS_MENU)
   TITLE:=exportfs kernel server support
   KCONFIG:=CONFIG_EXPORTFS
-  FILES=$(LINUX_DIR)/fs/exportfs/exportfs.ko
+  FILES=$(LINUX_OBJ_DIR)/fs/exportfs/exportfs.ko
   AUTOLOAD:=$(call AutoLoad,20,exportfs,1)
 endef
 
@@ -233,9 +233,9 @@  define KernelPackage/fs-ext4
 	CONFIG_EXT4_ENCRYPTION=n \
 	CONFIG_JBD2
   FILES:= \
-	$(LINUX_DIR)/fs/ext4/ext4.ko \
-	$(LINUX_DIR)/fs/jbd2/jbd2.ko \
-	$(LINUX_DIR)/fs/mbcache.ko
+	$(LINUX_OBJ_DIR)/fs/ext4/ext4.ko \
+	$(LINUX_OBJ_DIR)/fs/jbd2/jbd2.ko \
+	$(LINUX_OBJ_DIR)/fs/mbcache.ko
   AUTOLOAD:=$(call AutoLoad,30,mbcache jbd2 ext4,1)
 endef
 
@@ -251,7 +251,7 @@  define KernelPackage/fs-f2fs
   TITLE:=F2FS filesystem support
   DEPENDS:= +kmod-crypto-hash +kmod-crypto-crc32 +kmod-nls-base
   KCONFIG:=CONFIG_F2FS_FS
-  FILES:=$(LINUX_DIR)/fs/f2fs/f2fs.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/f2fs/f2fs.ko
   AUTOLOAD:=$(call AutoLoad,30,f2fs,1)
 endef
 
@@ -278,8 +278,8 @@  define KernelPackage/fs-fscache
 	CONFIG_CACHEFILES_ERROR_INJECTION=n@ge5.17 \
 	CONFIG_CACHEFILES_ONDEMAND=n@ge5.19
   FILES:= \
-	$(LINUX_DIR)/fs/fscache/fscache.ko \
-	$(LINUX_DIR)/fs/cachefiles/cachefiles.ko
+	$(LINUX_OBJ_DIR)/fs/fscache/fscache.ko \
+	$(LINUX_OBJ_DIR)/fs/cachefiles/cachefiles.ko
   AUTOLOAD:=$(call AutoLoad,29,fscache cachefiles)
 endef
 
@@ -291,7 +291,7 @@  define KernelPackage/fs-hfs
   TITLE:=HFS filesystem support
   DEPENDS:=+kmod-cdrom
   KCONFIG:=CONFIG_HFS_FS
-  FILES:=$(LINUX_DIR)/fs/hfs/hfs.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/hfs/hfs.ko
   AUTOLOAD:=$(call AutoLoad,30,hfs)
   $(call AddDepends/nls)
 endef
@@ -308,7 +308,7 @@  define KernelPackage/fs-hfsplus
   TITLE:=HFS+ filesystem support
   DEPENDS:=+kmod-cdrom
   KCONFIG:=CONFIG_HFSPLUS_FS
-  FILES:=$(LINUX_DIR)/fs/hfsplus/hfsplus.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/hfsplus/hfsplus.ko
   AUTOLOAD:=$(call AutoLoad,30,hfsplus)
   $(call AddDepends/nls,utf8)
 endef
@@ -325,7 +325,7 @@  define KernelPackage/fs-isofs
   TITLE:=ISO9660 filesystem support
   DEPENDS:=+kmod-lib-zlib-inflate +kmod-cdrom
   KCONFIG:=CONFIG_ISO9660_FS CONFIG_JOLIET=y CONFIG_ZISOFS=n
-  FILES:=$(LINUX_DIR)/fs/isofs/isofs.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/isofs/isofs.ko
   AUTOLOAD:=$(call AutoLoad,30,isofs)
   $(call AddDepends/nls)
 endef
@@ -341,7 +341,7 @@  define KernelPackage/fs-jfs
   SUBMENU:=$(FS_MENU)
   TITLE:=JFS filesystem support
   KCONFIG:=CONFIG_JFS_FS
-  FILES:=$(LINUX_DIR)/fs/jfs/jfs.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/jfs/jfs.ko
   AUTOLOAD:=$(call AutoLoad,30,jfs,1)
   $(call AddDepends/nls)
 endef
@@ -379,8 +379,8 @@  define KernelPackage/fs-ksmbd
 	CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN=n \
 	CONFIG_SMB_SERVER_KERBEROS5=n
   FILES:= \
-	 $(LINUX_DIR)/fs/ksmbd/ksmbd.ko@lt6.1 \
-	 $(LINUX_DIR)/fs/smb/server/ksmbd.ko@ge6.1
+	 $(LINUX_OBJ_DIR)/fs/ksmbd/ksmbd.ko@lt6.1 \
+	 $(LINUX_OBJ_DIR)/fs/smb/server/ksmbd.ko@ge6.1
   AUTOLOAD:=$(call AutoLoad,41,ksmbd)
 endef
 
@@ -395,7 +395,7 @@  define KernelPackage/fs-minix
   SUBMENU:=$(FS_MENU)
   TITLE:=Minix filesystem support
   KCONFIG:=CONFIG_MINIX_FS
-  FILES:=$(LINUX_DIR)/fs/minix/minix.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/minix/minix.ko
   AUTOLOAD:=$(call AutoLoad,30,minix)
 endef
 
@@ -411,7 +411,7 @@  define KernelPackage/fs-msdos
   TITLE:=MSDOS filesystem support
   DEPENDS:=+kmod-fs-vfat
   KCONFIG:=CONFIG_MSDOS_FS
-  FILES:=$(LINUX_DIR)/fs/fat/msdos.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/fat/msdos.ko
   AUTOLOAD:=$(call AutoLoad,40,msdos)
   $(call AddDepends/nls)
 endef
@@ -427,7 +427,7 @@  define KernelPackage/fs-netfs
   SUBMENU:=$(FS_MENU)
   TITLE:=Network Filesystems support
   KCONFIG:= CONFIG_NETFS_SUPPORT
-  FILES:=$(LINUX_DIR)/fs/netfs/netfs.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/netfs/netfs.ko
   AUTOLOAD:=$(call AutoLoad,28,netfs)
 endef
 
@@ -443,7 +443,7 @@  define KernelPackage/fs-nfs
 	CONFIG_NFS_USE_LEGACY_DNS=n \
 	CONFIG_NFS_USE_NEW_IDMAPPER=n
   FILES:= \
-	$(LINUX_DIR)/fs/nfs/nfs.ko
+	$(LINUX_OBJ_DIR)/fs/nfs/nfs.ko
   AUTOLOAD:=$(call AutoLoad,40,nfs)
 endef
 
@@ -469,10 +469,10 @@  define KernelPackage/fs-nfs-common
 	CONFIG_NFS_V4_2=y \
 	CONFIG_NFS_V4_2_READ_PLUS=n
   FILES:= \
-	$(LINUX_DIR)/fs/lockd/lockd.ko \
-	$(LINUX_DIR)/net/sunrpc/sunrpc.ko \
-	$(LINUX_DIR)/fs/nfs_common/grace.ko \
-	$(LINUX_DIR)/fs/nfs_common/nfs_ssc.ko
+	$(LINUX_OBJ_DIR)/fs/lockd/lockd.ko \
+	$(LINUX_OBJ_DIR)/net/sunrpc/sunrpc.ko \
+	$(LINUX_OBJ_DIR)/fs/nfs_common/grace.ko \
+	$(LINUX_OBJ_DIR)/fs/nfs_common/nfs_ssc.ko
   AUTOLOAD:=$(call AutoLoad,30,grace sunrpc lockd)
 endef
 
@@ -496,8 +496,8 @@  define KernelPackage/fs-nfs-common-rpcsec
 	CONFIG_SUNRPC_GSS \
 	CONFIG_RPCSEC_GSS_KRB5
   FILES:= \
-	$(LINUX_DIR)/net/sunrpc/auth_gss/auth_rpcgss.ko \
-	$(LINUX_DIR)/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko
+	$(LINUX_OBJ_DIR)/net/sunrpc/auth_gss/auth_rpcgss.ko \
+	$(LINUX_OBJ_DIR)/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko
   AUTOLOAD:=$(call AutoLoad,31,auth_rpcgss rpcsec_gss_krb5)
 endef
 
@@ -513,7 +513,7 @@  define KernelPackage/fs-nfs-v3
   TITLE:=NFS3 filesystem client support
   DEPENDS:=+kmod-fs-nfs
   FILES:= \
-	$(LINUX_DIR)/fs/nfs/nfsv3.ko
+	$(LINUX_OBJ_DIR)/fs/nfs/nfsv3.ko
   AUTOLOAD:=$(call AutoLoad,41,nfsv3)
 endef
 
@@ -531,7 +531,7 @@  define KernelPackage/fs-nfs-v4
   KCONFIG:= \
 	CONFIG_NFS_V4=y
   FILES:= \
-	$(LINUX_DIR)/fs/nfs/nfsv4.ko
+	$(LINUX_OBJ_DIR)/fs/nfs/nfsv4.ko
   AUTOLOAD:=$(call AutoLoad,41,nfsv4)
 endef
 
@@ -555,7 +555,7 @@  define KernelPackage/fs-nfsd
 	CONFIG_NFSD_FLEXFILELAYOUT=n \
 	CONFIG_NFSD_FAULT_INJECTION=n \
 	CONFIG_NFSD_V4_2_INTER_SSC=n
-  FILES:=$(LINUX_DIR)/fs/nfsd/nfsd.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/nfsd/nfsd.ko
   AUTOLOAD:=$(call AutoLoad,40,nfsd)
 endef
 
@@ -570,7 +570,7 @@  define KernelPackage/fs-ntfs
   SUBMENU:=$(FS_MENU)
   TITLE:=NTFS filesystem read-only (old driver) support
   KCONFIG:=CONFIG_NTFS_FS
-  FILES:=$(LINUX_DIR)/fs/ntfs/ntfs.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/ntfs/ntfs.ko
   AUTOLOAD:=$(call AutoLoad,30,ntfs)
   $(call AddDepends/nls)
 endef
@@ -587,7 +587,7 @@  define KernelPackage/fs-ntfs3
   SUBMENU:=$(FS_MENU)
   TITLE:=NTFS filesystem read & write (new driver) support
   KCONFIG:= CONFIG_NTFS3_FS CONFIG_NTFS3_FS_POSIX_ACL=y
-  FILES:=$(LINUX_DIR)/fs/ntfs3/ntfs3.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/ntfs3/ntfs3.ko
   $(call AddDepends/nls)
   AUTOLOAD:=$(call AutoLoad,80,ntfs3)
 endef
@@ -606,7 +606,7 @@  define KernelPackage/fs-reiserfs
   SUBMENU:=$(FS_MENU)
   TITLE:=ReiserFS filesystem support
   KCONFIG:=CONFIG_REISERFS_FS
-  FILES:=$(LINUX_DIR)/fs/reiserfs/reiserfs.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/reiserfs/reiserfs.ko
   AUTOLOAD:=$(call AutoLoad,30,reiserfs,1)
 endef
 
@@ -622,7 +622,7 @@  define KernelPackage/fs-squashfs
   TITLE:=SquashFS 4.0 filesystem support
   KCONFIG:=CONFIG_SQUASHFS \
 	CONFIG_SQUASHFS_XZ=y
-  FILES:=$(LINUX_DIR)/fs/squashfs/squashfs.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/squashfs/squashfs.ko
   AUTOLOAD:=$(call AutoLoad,30,squashfs,1)
 endef
 
@@ -637,7 +637,7 @@  define KernelPackage/fs-udf
   SUBMENU:=$(FS_MENU)
   TITLE:=UDF filesystem support
   KCONFIG:=CONFIG_UDF_FS
-  FILES:=$(LINUX_DIR)/fs/udf/udf.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/udf/udf.ko
   AUTOLOAD:=$(call AutoLoad,30,udf)
   DEPENDS:=+kmod-lib-crc-itu-t +kmod-cdrom
   $(call AddDepends/nls)
@@ -657,8 +657,8 @@  define KernelPackage/fs-vfat
 	CONFIG_FAT_FS \
 	CONFIG_VFAT_FS
   FILES:= \
-	$(LINUX_DIR)/fs/fat/fat.ko \
-	$(LINUX_DIR)/fs/fat/vfat.ko
+	$(LINUX_OBJ_DIR)/fs/fat/fat.ko \
+	$(LINUX_OBJ_DIR)/fs/fat/vfat.ko
   AUTOLOAD:=$(call AutoLoad,30,fat vfat,1)
   $(call AddDepends/nls,cp437 iso8859-1 utf8)
 endef
@@ -675,7 +675,7 @@  define KernelPackage/fs-xfs
   TITLE:=XFS filesystem support
   KCONFIG:=CONFIG_XFS_FS
   DEPENDS:= +kmod-fs-exportfs +kmod-lib-crc32c
-  FILES:=$(LINUX_DIR)/fs/xfs/xfs.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/xfs/xfs.ko
   AUTOLOAD:=$(call AutoLoad,30,xfs,1)
 endef
 
@@ -690,7 +690,7 @@  define KernelPackage/fuse
   SUBMENU:=$(FS_MENU)
   TITLE:=FUSE (Filesystem in Userspace) support
   KCONFIG:= CONFIG_FUSE_FS
-  FILES:=$(LINUX_DIR)/fs/fuse/fuse.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/fuse/fuse.ko
   AUTOLOAD:=$(call AutoLoad,80,fuse)
 endef
 
@@ -711,7 +711,7 @@  define KernelPackage/pstore
 	CONFIG_PSTORE_COMPRESS_DEFAULT="deflate" \
 	CONFIG_PSTORE_DEFLATE_COMPRESS=y \
 	CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y
-  FILES:= $(LINUX_DIR)/fs/pstore/pstore.ko
+  FILES:= $(LINUX_OBJ_DIR)/fs/pstore/pstore.ko
   AUTOLOAD:=$(call AutoLoad,30,pstore,1)
 endef
 
diff --git a/package/kernel/linux/modules/gpio-cascade.mk b/package/kernel/linux/modules/gpio-cascade.mk
index 3a559f19ef..a72e980062 100644
--- a/package/kernel/linux/modules/gpio-cascade.mk
+++ b/package/kernel/linux/modules/gpio-cascade.mk
@@ -9,7 +9,7 @@  define KernelPackage/gpio-cascade
   TITLE:=Generic GPIO cascade
   KCONFIG:=CONFIG_GPIO_CASCADE
   DEPENDS:=@GPIO_SUPPORT +kmod-mux-core
-  FILES:=$(LINUX_DIR)/drivers/gpio/gpio-cascade.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/gpio/gpio-cascade.ko
   AUTOLOAD:=$(call AutoLoad,29,gpio-cascade,1)
 endef
 
diff --git a/package/kernel/linux/modules/hwmon.mk b/package/kernel/linux/modules/hwmon.mk
index 8638d50823..6611b9226d 100644
--- a/package/kernel/linux/modules/hwmon.mk
+++ b/package/kernel/linux/modules/hwmon.mk
@@ -14,7 +14,7 @@  define KernelPackage/hwmon-core
 	CONFIG_HWMON \
 	CONFIG_HWMON_DEBUG_CHIP=n
   FILES:= \
-	$(LINUX_DIR)/drivers/hwmon/hwmon.ko
+	$(LINUX_OBJ_DIR)/drivers/hwmon/hwmon.ko
 endef
 
 define KernelPackage/hwmon-core/description
@@ -32,7 +32,7 @@  endef
 define KernelPackage/hwmon-ad7418
   TITLE:=AD741x monitoring support
   KCONFIG:=CONFIG_SENSORS_AD7418
-  FILES:=$(LINUX_DIR)/drivers/hwmon/ad7418.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/ad7418.ko
   AUTOLOAD:=$(call AutoLoad,60,ad7418 ad7418)
   $(call AddDepends/hwmon,+kmod-i2c-core)
 endef
@@ -49,8 +49,8 @@  define KernelPackage/hwmon-adt7410
 	CONFIG_SENSORS_ADT7X10 \
 	CONFIG_SENSORS_ADT7410
   FILES:= \
-	$(LINUX_DIR)/drivers/hwmon/adt7x10.ko \
-	$(LINUX_DIR)/drivers/hwmon/adt7410.ko
+	$(LINUX_OBJ_DIR)/drivers/hwmon/adt7x10.ko \
+	$(LINUX_OBJ_DIR)/drivers/hwmon/adt7410.ko
   AUTOLOAD:=$(call AutoLoad,60,adt7x10 adt7410)
   $(call AddDepends/hwmon,+kmod-i2c-core +LINUX_6_1:kmod-regmap-core)
 endef
@@ -65,7 +65,7 @@  $(eval $(call KernelPackage,hwmon-adt7410))
 define KernelPackage/hwmon-adt7475
   TITLE:=ADT7473/7475/7476/7490 monitoring support
   KCONFIG:=CONFIG_SENSORS_ADT7475
-  FILES:=$(LINUX_DIR)/drivers/hwmon/adt7475.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/adt7475.ko
   AUTOLOAD:=$(call AutoProbe,adt7475)
   $(call AddDepends/hwmon,+kmod-i2c-core +kmod-hwmon-vid)
 endef
@@ -80,7 +80,7 @@  $(eval $(call KernelPackage,hwmon-adt7475))
 define KernelPackage/hwmon-coretemp
   TITLE:=Intel Core/Core2/Atom temperature sensor
   KCONFIG:=CONFIG_SENSORS_CORETEMP
-  FILES:=$(LINUX_DIR)/drivers/hwmon/coretemp.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/coretemp.ko
   AUTOLOAD:=$(call AutoProbe,coretemp)
   $(call AddDepends/hwmon,)
 endef
@@ -98,7 +98,7 @@  define KernelPackage/hwmon-dme1737
   TITLE:=SMSC DME1737 and compatible monitoring support
   KCONFIG:=CONFIG_SENSORS_DME1737
   FILES:= \
-	$(LINUX_DIR)/drivers/hwmon/dme1737.ko
+	$(LINUX_OBJ_DIR)/drivers/hwmon/dme1737.ko
   AUTOLOAD:=$(call AutoProbe,dme1737)
   $(call AddDepends/hwmon,+kmod-i2c-core +kmod-hwmon-vid)
 endef
@@ -113,7 +113,7 @@  $(eval $(call KernelPackage,hwmon-dme1737))
 define KernelPackage/hwmon-drivetemp
   TITLE:=Hard disk drives with temperature sensor
   KCONFIG:=CONFIG_SENSORS_DRIVETEMP
-  FILES:=$(LINUX_DIR)/drivers/hwmon/drivetemp.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/drivetemp.ko
   AUTOLOAD:=$(call AutoLoad,60,drivetemp)
   $(call AddDepends/hwmon,+kmod-ata-core +kmod-scsi-core)
 endef
@@ -130,8 +130,8 @@  define KernelPackage/hwmon-gsc
   KCONFIG:=CONFIG_MFD_GATEWORKS_GSC \
         CONFIG_SENSORS_GSC
   FILES:= \
-	$(LINUX_DIR)/drivers/mfd/gateworks-gsc.ko \
-	$(LINUX_DIR)/drivers/hwmon/gsc-hwmon.ko
+	$(LINUX_OBJ_DIR)/drivers/mfd/gateworks-gsc.ko \
+	$(LINUX_OBJ_DIR)/drivers/hwmon/gsc-hwmon.ko
   AUTOLOAD:=$(call AutoLoad,20,gsc-hwmon,1)
   $(call AddDepends/hwmon,+kmod-i2c-core)
 endef
@@ -147,7 +147,7 @@  $(eval $(call KernelPackage,hwmon-gsc))
 define KernelPackage/hwmon-gpiofan
   TITLE:=Generic GPIO FAN support
   KCONFIG:=CONFIG_SENSORS_GPIO_FAN
-  FILES:=$(LINUX_DIR)/drivers/hwmon/gpio-fan.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/gpio-fan.ko
   AUTOLOAD:=$(call AutoLoad,60,gpio-fan)
   $(call AddDepends/hwmon,+kmod-i2c-core +PACKAGE_kmod-thermal:kmod-thermal)
 endef
@@ -162,7 +162,7 @@  $(eval $(call KernelPackage,hwmon-gpiofan))
 define KernelPackage/hwmon-f71882fg
   TITLE:=F71882FG compatible monitoring support
   KCONFIG:=CONFIG_SENSORS_F71882FG
-  FILES:=$(LINUX_DIR)/drivers/hwmon/f71882fg.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/f71882fg.ko
   AUTOLOAD:=$(call AutoProbe,f71882fg)
   $(call AddDepends/hwmon,@TARGET_x86)
 endef
@@ -177,7 +177,7 @@  $(eval $(call KernelPackage,hwmon-f71882fg))
 define KernelPackage/hwmon-g762
   TITLE:=G762/G763 fan speed PWM controller support
   KCONFIG:=CONFIG_SENSORS_G762
-  FILES:=$(LINUX_DIR)/drivers/hwmon/g762.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/g762.ko
   AUTOLOAD:=$(call AutoProbe,g762)
   $(call AddDepends/hwmon,+kmod-i2c-core)
 endef
@@ -192,7 +192,7 @@  $(eval $(call KernelPackage,hwmon-g762))
 define KernelPackage/hwmon-ina209
   TITLE:=INA209 monitoring support
   KCONFIG:=CONFIG_SENSORS_INA209
-  FILES:=$(LINUX_DIR)/drivers/hwmon/ina209.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/ina209.ko
   AUTOLOAD:=$(call AutoProbe,ina209)
   $(call AddDepends/hwmon,+kmod-i2c-core)
 endef
@@ -207,7 +207,7 @@  $(eval $(call KernelPackage,hwmon-ina209))
 define KernelPackage/hwmon-ina2xx
   TITLE:=INA2XX monitoring support
   KCONFIG:=CONFIG_SENSORS_INA2XX
-  FILES:=$(LINUX_DIR)/drivers/hwmon/ina2xx.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/ina2xx.ko
   AUTOLOAD:=$(call AutoProbe,ina2xx)
   $(call AddDepends/hwmon,+kmod-i2c-core +kmod-regmap-i2c)
 endef
@@ -222,7 +222,7 @@  $(eval $(call KernelPackage,hwmon-ina2xx))
 define KernelPackage/hwmon-it87
   TITLE:=IT87 monitoring support
   KCONFIG:=CONFIG_SENSORS_IT87
-  FILES:=$(LINUX_DIR)/drivers/hwmon/it87.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/it87.ko
   AUTOLOAD:=$(call AutoProbe,it87)
   $(call AddDepends/hwmon,+kmod-i2c-core +kmod-hwmon-vid +PACKAGE_kmod-thermal:kmod-thermal)
 endef
@@ -237,7 +237,7 @@  $(eval $(call KernelPackage,hwmon-it87))
 define KernelPackage/hwmon-jc42
   TITLE:=Jedec JC42.4 compliant temperature sensors support
   KCONFIG:=CONFIG_SENSORS_JC42
-  FILES:=$(LINUX_DIR)/drivers/hwmon/jc42.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/jc42.ko
   AUTOLOAD:=$(call AutoProbe,jc42)
   $(call AddDepends/hwmon,+kmod-i2c-core +kmod-regmap-i2c)
 endef
@@ -252,7 +252,7 @@  $(eval $(call KernelPackage,hwmon-jc42))
 define KernelPackage/hwmon-lm63
   TITLE:=LM63/64 monitoring support
   KCONFIG:=CONFIG_SENSORS_LM63
-  FILES:=$(LINUX_DIR)/drivers/hwmon/lm63.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/lm63.ko
   AUTOLOAD:=$(call AutoProbe,lm63)
   $(call AddDepends/hwmon,+kmod-i2c-core +kmod-regmap-i2c)
 endef
@@ -269,7 +269,7 @@  define KernelPackage/hwmon-lm70
   KCONFIG:=CONFIG_SENSORS_LM70 \
         CONFIG_SPI=y \
         CONFIG_SPI_MASTER=y
-  FILES:=$(LINUX_DIR)/drivers/hwmon/lm70.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/lm70.ko
   AUTOLOAD:=$(call AutoProbe,lm70)
   $(call AddDepends/hwmon)
 endef
@@ -284,7 +284,7 @@  $(eval $(call KernelPackage,hwmon-lm70))
 define KernelPackage/hwmon-lm75
   TITLE:=LM75 monitoring support
   KCONFIG:=CONFIG_SENSORS_LM75
-  FILES:=$(LINUX_DIR)/drivers/hwmon/lm75.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/lm75.ko
   AUTOLOAD:=$(call AutoProbe,lm75)
   $(call AddDepends/hwmon,+kmod-i2c-core +PACKAGE_kmod-thermal:kmod-thermal +kmod-regmap-i2c)
 endef
@@ -299,7 +299,7 @@  $(eval $(call KernelPackage,hwmon-lm75))
 define KernelPackage/hwmon-lm77
   TITLE:=LM77 monitoring support
   KCONFIG:=CONFIG_SENSORS_LM77
-  FILES:=$(LINUX_DIR)/drivers/hwmon/lm77.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/lm77.ko
   AUTOLOAD:=$(call AutoProbe,lm77)
   $(call AddDepends/hwmon,+kmod-i2c-core)
 endef
@@ -314,7 +314,7 @@  $(eval $(call KernelPackage,hwmon-lm77))
 define KernelPackage/hwmon-lm85
   TITLE:=LM85 monitoring support
   KCONFIG:=CONFIG_SENSORS_LM85
-  FILES:=$(LINUX_DIR)/drivers/hwmon/lm85.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/lm85.ko
   AUTOLOAD:=$(call AutoProbe,lm85)
   $(call AddDepends/hwmon,+kmod-i2c-core +kmod-hwmon-vid)
 endef
@@ -329,7 +329,7 @@  $(eval $(call KernelPackage,hwmon-lm85))
 define KernelPackage/hwmon-lm90
   TITLE:=LM90 monitoring support
   KCONFIG:=CONFIG_SENSORS_LM90
-  FILES:=$(LINUX_DIR)/drivers/hwmon/lm90.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/lm90.ko
   AUTOLOAD:=$(call AutoProbe,lm90)
   $(call AddDepends/hwmon,+kmod-i2c-core)
 endef
@@ -344,7 +344,7 @@  $(eval $(call KernelPackage,hwmon-lm90))
 define KernelPackage/hwmon-lm92
   TITLE:=LM92 monitoring support
   KCONFIG:=CONFIG_SENSORS_LM92
-  FILES:=$(LINUX_DIR)/drivers/hwmon/lm92.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/lm92.ko
   AUTOLOAD:=$(call AutoProbe,lm92)
   $(call AddDepends/hwmon,+kmod-i2c-core)
 endef
@@ -359,7 +359,7 @@  $(eval $(call KernelPackage,hwmon-lm92))
 define KernelPackage/hwmon-lm95241
   TITLE:=LM95241 monitoring support
   KCONFIG:=CONFIG_SENSORS_LM95241
-  FILES:=$(LINUX_DIR)/drivers/hwmon/lm95241.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/lm95241.ko
   AUTOLOAD:=$(call AutoProbe,lm95241)
   $(call AddDepends/hwmon,+kmod-i2c-core)
 endef
@@ -374,7 +374,7 @@  $(eval $(call KernelPackage,hwmon-lm95241))
 define KernelPackage/hwmon-ltc4151
   TITLE:=LTC4151 monitoring support
   KCONFIG:=CONFIG_SENSORS_LTC4151
-  FILES:=$(LINUX_DIR)/drivers/hwmon/ltc4151.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/ltc4151.ko
   AUTOLOAD:=$(call AutoProbe,ltc4151)
   $(call AddDepends/hwmon,+kmod-i2c-core)
 endef
@@ -389,7 +389,7 @@  $(eval $(call KernelPackage,hwmon-ltc4151))
 define KernelPackage/hwmon-max6642
   TITLE:=MAX6642 monitoring support
   KCONFIG:=CONFIG_SENSORS_MAX6642
-  FILES:=$(LINUX_DIR)/drivers/hwmon/max6642.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/max6642.ko
   AUTOLOAD:=$(call AutoLoad,60,max6642 max6642)
   $(call AddDepends/hwmon,+kmod-i2c-core)
 endef
@@ -404,7 +404,7 @@  $(eval $(call KernelPackage,hwmon-max6642))
 define KernelPackage/hwmon-max6697
   TITLE:=MAX6697 monitoring support
   KCONFIG:=CONFIG_SENSORS_MAX6697
-  FILES:=$(LINUX_DIR)/drivers/hwmon/max6697.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/max6697.ko
   AUTOLOAD:=$(call AutoProbe,max6697)
   $(call AddDepends/hwmon,+kmod-i2c-core)
 endef
@@ -419,7 +419,7 @@  $(eval $(call KernelPackage,hwmon-max6697))
 define KernelPackage/hwmon-mcp3021
   TITLE:=MCP3021/3221 monitoring support
   KCONFIG:=CONFIG_SENSORS_MCP3021
-  FILES:=$(LINUX_DIR)/drivers/hwmon/mcp3021.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/mcp3021.ko
   AUTOLOAD:=$(call AutoProbe,mcp3021)
   $(call AddDepends/hwmon,+kmod-i2c-core)
 endef
@@ -435,8 +435,8 @@  define KernelPackage/hwmon-nct6775
   TITLE:=NCT6106D/6775F/6776F/6779D/6791D/6792D/6793D and compatibles monitoring support
   KCONFIG:=CONFIG_SENSORS_NCT6775
   FILES:= \
-	$(LINUX_DIR)/drivers/hwmon/nct6775.ko \
-	$(LINUX_DIR)/drivers/hwmon/nct6775-core.ko@ge5.19
+	$(LINUX_OBJ_DIR)/drivers/hwmon/nct6775.ko \
+	$(LINUX_OBJ_DIR)/drivers/hwmon/nct6775-core.ko@ge5.19
   AUTOLOAD:=$(call AutoProbe,nct6775)
   $(call AddDepends/hwmon,@PCI_SUPPORT @TARGET_x86 +kmod-hwmon-vid +LINUX_6_1:kmod-regmap-core)
 endef
@@ -451,7 +451,7 @@  $(eval $(call KernelPackage,hwmon-nct6775))
 define KernelPackage/hwmon-nct7802
   TITLE:=NCT7802Y and compatibles monitoring support
   KCONFIG:=CONFIG_SENSORS_NCT7802
-  FILES:=$(LINUX_DIR)/drivers/hwmon/nct7802.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/nct7802.ko
   AUTOLOAD:=$(call AutoProbe,nct7802)
   $(call AddDepends/hwmon,+kmod-regmap-i2c)
 endef
@@ -466,7 +466,7 @@  $(eval $(call KernelPackage,hwmon-nct7802))
 define KernelPackage/hwmon-pc87360
   TITLE:=PC87360 monitoring support
   KCONFIG:=CONFIG_SENSORS_PC87360
-  FILES:=$(LINUX_DIR)/drivers/hwmon/pc87360.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/pc87360.ko
   AUTOLOAD:=$(call AutoProbe,pc87360)
   $(call AddDepends/hwmon,@TARGET_x86 +kmod-hwmon-vid)
 endef
@@ -481,7 +481,7 @@  $(eval $(call KernelPackage,hwmon-pc87360))
 define KernelPackage/pmbus-core
   TITLE:=PMBus support
   KCONFIG:= CONFIG_PMBUS
-  FILES:=$(LINUX_DIR)/drivers/hwmon/pmbus/pmbus_core.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/pmbus/pmbus_core.ko
   $(call AddDepends/hwmon,+kmod-i2c-core)
 endef
 
@@ -495,7 +495,7 @@  $(eval $(call KernelPackage,pmbus-core))
 define KernelPackage/pmbus-zl6100
   TITLE:=Intersil / Zilker Labs ZL6100 hardware monitoring
   KCONFIG:=CONFIG_SENSORS_ZL6100
-  FILES:=$(LINUX_DIR)/drivers/hwmon/pmbus/zl6100.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/pmbus/zl6100.ko
   AUTOLOAD:=$(call AutoProbe,zl6100)
   $(call AddDepends/hwmon, +kmod-pmbus-core)
 endef
@@ -511,7 +511,7 @@  $(eval $(call KernelPackage,pmbus-zl6100))
 define KernelPackage/hwmon-pwmfan
   TITLE:=Generic PWM FAN support
   KCONFIG:=CONFIG_SENSORS_PWM_FAN
-  FILES:=$(LINUX_DIR)/drivers/hwmon/pwm-fan.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/pwm-fan.ko
   AUTOLOAD:=$(call AutoLoad,60,pwm-fan)
   $(call AddDepends/hwmon, +PACKAGE_kmod-thermal:kmod-thermal)
 endef
@@ -529,8 +529,8 @@  define KernelPackage/hwmon-sch5627
 	CONFIG_SENSORS_SCH5627 \
 	CONFIG_WATCHDOG_CORE=y
   FILES:= \
-	$(LINUX_DIR)/drivers/hwmon/sch5627.ko \
-	$(LINUX_DIR)/drivers/hwmon/sch56xx-common.ko
+	$(LINUX_OBJ_DIR)/drivers/hwmon/sch5627.ko \
+	$(LINUX_OBJ_DIR)/drivers/hwmon/sch56xx-common.ko
   AUTOLOAD:=$(call AutoProbe,sch5627)
   $(call AddDepends/hwmon,+kmod-i2c-core)
 endef
@@ -545,7 +545,7 @@  $(eval $(call KernelPackage,hwmon-sch5627))
 define KernelPackage/hwmon-sht21
   TITLE:=Sensiron SHT21 and compat. monitoring support
   KCONFIG:=CONFIG_SENSORS_SHT21
-  FILES:=$(LINUX_DIR)/drivers/hwmon/sht21.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/sht21.ko
   AUTOLOAD:=$(call AutoProbe,sht21)
   $(call AddDepends/hwmon,+kmod-i2c-core)
 endef
@@ -560,7 +560,7 @@  $(eval $(call KernelPackage,hwmon-sht21))
 define KernelPackage/hwmon-sht3x
   TITLE:=Sensiron SHT3x and compat. monitoring support
   KCONFIG:=CONFIG_SENSORS_SHT3x
-  FILES:=$(LINUX_DIR)/drivers/hwmon/sht3x.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/sht3x.ko
   AUTOLOAD:=$(call AutoProbe,sht3x)
   $(call AddDepends/hwmon,+kmod-i2c-core +kmod-lib-crc8)
 endef
@@ -575,7 +575,7 @@  $(eval $(call KernelPackage,hwmon-sht3x))
 define KernelPackage/hwmon-tmp102
   TITLE:=Texas Instruments TMP102 monitoring support
   KCONFIG:=CONFIG_SENSORS_TMP102
-  FILES:=$(LINUX_DIR)/drivers/hwmon/tmp102.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/tmp102.ko
   AUTOLOAD:=$(call AutoProbe,tmp102)
   $(call AddDepends/hwmon,+kmod-i2c-core +PACKAGE_kmod-thermal:kmod-thermal +kmod-regmap-i2c)
 endef
@@ -590,7 +590,7 @@  $(eval $(call KernelPackage,hwmon-tmp102))
 define KernelPackage/hwmon-tmp103
   TITLE:=Texas Instruments TMP103 monitoring support
   KCONFIG:=CONFIG_SENSORS_TMP103
-  FILES:=$(LINUX_DIR)/drivers/hwmon/tmp103.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/tmp103.ko
   AUTOLOAD:=$(call AutoProbe,tmp103)
   $(call AddDepends/hwmon,+kmod-i2c-core +kmod-regmap-i2c)
 endef
@@ -605,7 +605,7 @@  $(eval $(call KernelPackage,hwmon-tmp103))
 define KernelPackage/hwmon-tmp421
   TITLE:=TI TMP421 and compatible monitoring support
   KCONFIG:=CONFIG_SENSORS_TMP421
-  FILES:=$(LINUX_DIR)/drivers/hwmon/tmp421.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/tmp421.ko
   AUTOLOAD:=$(call AutoLoad,60,tmp421)
   $(call AddDepends/hwmon,+kmod-i2c-core)
 endef
@@ -620,7 +620,7 @@  $(eval $(call KernelPackage,hwmon-tmp421))
 define KernelPackage/hwmon-tps23861
   TITLE:=Texas Instruments TPS23861 PoE PSE
   KCONFIG:=CONFIG_SENSORS_TPS23861
-  FILES:=$(LINUX_DIR)/drivers/hwmon/tps23861.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/tps23861.ko
   AUTOLOAD:=$(call AutoProbe,tps23861)
   $(call AddDepends/hwmon,+kmod-i2c-core +kmod-regmap-i2c)
 endef
@@ -634,7 +634,7 @@  $(eval $(call KernelPackage,hwmon-tps23861))
 define KernelPackage/hwmon-vid
   TITLE:=VID/VRM/VRD voltage conversion module.
   KCONFIG:=CONFIG_HWMON_VID
-  FILES:=$(LINUX_DIR)/drivers/hwmon/hwmon-vid.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/hwmon-vid.ko
   AUTOLOAD:=$(call AutoLoad,41,hwmon-vid)
   $(call AddDepends/hwmon,)
 endef
@@ -649,7 +649,7 @@  $(eval $(call KernelPackage,hwmon-vid))
 define KernelPackage/hwmon-w83627ehf
   TITLE:=Winbond W83627EHF/EHG/DHG/UHG, W83667HG monitoring support
   KCONFIG:=CONFIG_SENSORS_W83627EHF
-  FILES:=$(LINUX_DIR)/drivers/hwmon/w83627ehf.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/w83627ehf.ko
   AUTOLOAD:=$(call AutoProbe,w83627ehf)
   $(call AddDepends/hwmon,@TARGET_x86 +kmod-hwmon-vid)
 endef
@@ -666,7 +666,7 @@  $(eval $(call KernelPackage,hwmon-w83627ehf))
 define KernelPackage/hwmon-w83627hf
   TITLE:=Winbond W83627HF monitoring support
   KCONFIG:=CONFIG_SENSORS_W83627HF
-  FILES:=$(LINUX_DIR)/drivers/hwmon/w83627hf.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/w83627hf.ko
   AUTOLOAD:=$(call AutoLoad,50,w83627hf)
   $(call AddDepends/hwmon,@TARGET_x86 +kmod-hwmon-vid)
 endef
@@ -681,7 +681,7 @@  $(eval $(call KernelPackage,hwmon-w83627hf))
 define KernelPackage/hwmon-w83793
   TITLE:=Winbond W83793G/R monitoring support
   KCONFIG:=CONFIG_SENSORS_W83793
-  FILES:=$(LINUX_DIR)/drivers/hwmon/w83793.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/w83793.ko
   AUTOLOAD:=$(call AutoProbe,w83793)
   $(call AddDepends/hwmon,+kmod-i2c-core +kmod-hwmon-vid)
 endef
@@ -696,7 +696,7 @@  $(eval $(call KernelPackage,hwmon-w83793))
 define KernelPackage/hwmon-adcxx
   TITLE:=ADCxx monitoring support
   KCONFIG:=CONFIG_SENSORS_ADCXX
-  FILES:=$(LINUX_DIR)/drivers/hwmon/adcxx.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/adcxx.ko
   AUTOLOAD:=$(call AutoLoad,60,adcxx)
   $(call AddDepends/hwmon,)
 endef
diff --git a/package/kernel/linux/modules/i2c.mk b/package/kernel/linux/modules/i2c.mk
index 7cd69dbb95..c9f7918ae6 100644
--- a/package/kernel/linux/modules/i2c.mk
+++ b/package/kernel/linux/modules/i2c.mk
@@ -8,7 +8,7 @@ 
 I2C_MENU:=I2C support
 
 ModuleConfVar=$(word 1,$(subst :,$(space),$(1)))
-ModuleFullPath=$(LINUX_DIR)/$(word 2,$(subst :,$(space),$(1))).ko
+ModuleFullPath=$(LINUX_OBJ_DIR)/$(word 2,$(subst :,$(space),$(1))).ko
 ModuleKconfig=$(foreach mod,$(1),$(call ModuleConfVar,$(mod)))
 ModuleFiles=$(foreach mod,$(1),$(call ModuleFullPath,$(mod)))
 ModuleAuto=$(call AutoLoad,$(1),$(foreach mod,$(2),$(basename $(notdir $(call ModuleFullPath,$(mod))))),$(3))
diff --git a/package/kernel/linux/modules/iio.mk b/package/kernel/linux/modules/iio.mk
index f901f87ddd..c1456a132a 100644
--- a/package/kernel/linux/modules/iio.mk
+++ b/package/kernel/linux/modules/iio.mk
@@ -13,7 +13,7 @@  define KernelPackage/iio-core
 	CONFIG_IIO \
 	CONFIG_IIO_BUFFER=y \
 	CONFIG_IIO_TRIGGER=y
-  FILES:=$(LINUX_DIR)/drivers/iio/industrialio.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/industrialio.ko
   AUTOLOAD:=$(call AutoLoad,55,industrialio)
 endef
 
@@ -33,7 +33,7 @@  endef
 define KernelPackage/iio-kfifo-buf
   TITLE:=Industrial I/O buffering based on kfifo
   KCONFIG:=CONFIG_IIO_KFIFO_BUF
-  FILES:=$(LINUX_DIR)/drivers/iio/buffer/kfifo_buf.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/buffer/kfifo_buf.ko
   AUTOLOAD:=$(call AutoLoad,55,kfifo_buf)
   $(call AddDepends/iio)
 endef
@@ -50,7 +50,7 @@  define KernelPackage/industrialio-triggered-buffer
   TITLE:=Provides helper functions for setting up triggered buffers.
   DEPENDS:=+kmod-iio-kfifo-buf
   KCONFIG:=CONFIG_IIO_TRIGGERED_BUFFER
-  FILES:=$(LINUX_DIR)/drivers/iio/buffer/industrialio-triggered-buffer.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/buffer/industrialio-triggered-buffer.ko
   AUTOLOAD:=$(call AutoLoad,55,industrialio-triggered-buffer)
   $(call AddDepends/iio)
 endef
@@ -68,7 +68,7 @@  define KernelPackage/iio-ad799x
   KCONFIG:= \
 	CONFIG_AD799X_RING_BUFFER=y \
 	CONFIG_AD799X
-  FILES:=$(LINUX_DIR)/drivers/iio/adc/ad799x.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/adc/ad799x.ko
   AUTOLOAD:=$(call AutoLoad,56,ad799x)
   $(call AddDepends/iio)
 endef
@@ -85,7 +85,7 @@  define KernelPackage/iio-ads1015
   DEPENDS:=+kmod-i2c-core +kmod-regmap-i2c +kmod-industrialio-triggered-buffer
   TITLE:=Texas Instruments ADS1015 ADC driver
   KCONFIG:= CONFIG_TI_ADS1015
-  FILES:=$(LINUX_DIR)/drivers/iio/adc/ti-ads1015.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/adc/ti-ads1015.ko
   AUTOLOAD:=$(call AutoLoad,56,ti-ads1015)
   $(call AddDepends/iio)
 endef
@@ -101,8 +101,8 @@  define KernelPackage/iio-hmc5843
   TITLE:=Honeywell HMC58x3 Magnetometer
   KCONFIG:= CONFIG_SENSORS_HMC5843_I2C
   FILES:= \
-      $(LINUX_DIR)/drivers/iio/magnetometer/hmc5843_i2c.ko \
-      $(LINUX_DIR)/drivers/iio/magnetometer/hmc5843_core.ko
+      $(LINUX_OBJ_DIR)/drivers/iio/magnetometer/hmc5843_i2c.ko \
+      $(LINUX_OBJ_DIR)/drivers/iio/magnetometer/hmc5843_core.ko
   AUTOLOAD:=$(call AutoLoad,56,hmc5843)
   $(call AddDepends/iio)
 endef
@@ -117,7 +117,7 @@  define KernelPackage/iio-bh1750
   DEPENDS:=+kmod-i2c-core
   TITLE:=ROHM BH1750 ambient light sensor
   KCONFIG:= CONFIG_BH1750
-  FILES:=$(LINUX_DIR)/drivers/iio/light/bh1750.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/light/bh1750.ko
   AUTOLOAD:=$(call AutoLoad,56,bh1750)
   $(call AddDepends/iio)
 endef
@@ -130,7 +130,7 @@  define KernelPackage/iio-am2315
   DEPENDS:=+kmod-i2c-core +kmod-industrialio-triggered-buffer
   TITLE:=Asong AM2315 humidity/temperature sensor
   KCONFIG:= CONFIG_AM2315
-  FILES:=$(LINUX_DIR)/drivers/iio/humidity/am2315.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/humidity/am2315.ko
   AUTOLOAD:=$(call AutoLoad,56,am2315)
   $(call AddDepends/iio)
 endef
@@ -144,7 +144,7 @@  define KernelPackage/iio-mxs-lradc
   TITLE:=Freescale i.MX23/i.MX28 LRADC ADC driver
   KCONFIG:= \
 	CONFIG_MXS_LRADC_ADC
-  FILES:=$(LINUX_DIR)/drivers/iio/adc/mxs-lradc-adc.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/adc/mxs-lradc-adc.ko
   AUTOLOAD:=$(call AutoLoad,56,mxs-lradc-adc)
   $(call AddDepends/iio)
 endef
@@ -160,7 +160,7 @@  define KernelPackage/iio-dht11
   TITLE:=DHT11 (and compatible) humidity and temperature sensors
   KCONFIG:= \
 	CONFIG_DHT11
-  FILES:=$(LINUX_DIR)/drivers/iio/humidity/dht11.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/humidity/dht11.ko
   AUTOLOAD:=$(call AutoLoad,56,dht11)
   $(call AddDepends/iio)
 endef
@@ -178,7 +178,7 @@  define KernelPackage/iio-bme680
   TITLE:=BME680 gas/humidity/pressure/temperature sensor
   DEPENDS:=+kmod-regmap-core
   KCONFIG:=CONFIG_BME680
-  FILES:=$(LINUX_DIR)/drivers/iio/chemical/bme680_core.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/chemical/bme680_core.ko
   $(call AddDepends/iio)
 endef
 
@@ -193,7 +193,7 @@  define KernelPackage/iio-bme680-i2c
   TITLE:=BME680 gas/humidity/pressure/temperature sensor (I2C)
   DEPENDS:=+kmod-iio-bme680 +kmod-regmap-i2c
   KCONFIG:=CONFIG_BME680_I2C
-  FILES:=$(LINUX_DIR)/drivers/iio/chemical/bme680_i2c.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/chemical/bme680_i2c.ko
   AUTOLOAD:=$(call AutoProbe,bme680-i2c)
   $(call AddDepends/iio)
 endef
@@ -207,7 +207,7 @@  define KernelPackage/iio-bme680-spi
   TITLE:=BME680 gas/humidity/pressure/temperature sensor (SPI)
   DEPENDS:=+kmod-iio-bme680 +kmod-regmap-spi
   KCONFIG:=CONFIG_BME680_SPI
-  FILES:=$(LINUX_DIR)/drivers/iio/chemical/bme680_spi.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/chemical/bme680_spi.ko
   AUTOLOAD:=$(call AutoProbe,bme680-spi)
   $(call AddDepends/iio)
 endef
@@ -222,7 +222,7 @@  define KernelPackage/iio-bmp280
   TITLE:=BMP180/BMP280/BME280 pressure/temperatur sensor
   DEPENDS:=+kmod-regmap-core
   KCONFIG:=CONFIG_BMP280
-  FILES:=$(LINUX_DIR)/drivers/iio/pressure/bmp280.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/pressure/bmp280.ko
   $(call AddDepends/iio)
 endef
 
@@ -239,7 +239,7 @@  define KernelPackage/iio-bmp280-i2c
   TITLE:=BMP180/BMP280/BME280 pressure/temperatur sensor (I2C)
   DEPENDS:=+kmod-iio-bmp280 +kmod-i2c-core +kmod-regmap-i2c
   KCONFIG:=CONFIG_BMP280_I2C
-  FILES:=$(LINUX_DIR)/drivers/iio/pressure/bmp280-i2c.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/pressure/bmp280-i2c.ko
   AUTOLOAD:=$(call AutoProbe,bmp280-i2c)
   $(call AddDepends/iio)
 endef
@@ -255,7 +255,7 @@  define KernelPackage/iio-bmp280-spi
   TITLE:=BMP180/BMP280/BME280 pressure/temperatur sensor (SPI)
   DEPENDS:=+kmod-iio-bmp280 +kmod-spi-bitbang
   KCONFIG:=CONFIG_BMP280_SPI
-  FILES:=$(LINUX_DIR)/drivers/iio/pressure/bmp280-spi.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/pressure/bmp280-spi.ko
   AUTOLOAD:=$(call AutoProbe,bmp280-spi)
   $(call AddDepends/iio)
 endef
@@ -273,8 +273,8 @@  define KernelPackage/iio-htu21
        CONFIG_HTU21 \
        CONFIG_IIO_MS_SENSORS_I2C
   FILES:= \
-       $(LINUX_DIR)/drivers/iio/humidity/htu21.ko \
-       $(LINUX_DIR)/drivers/iio/common/ms_sensors/ms_sensors_i2c.ko
+       $(LINUX_OBJ_DIR)/drivers/iio/humidity/htu21.ko \
+       $(LINUX_OBJ_DIR)/drivers/iio/common/ms_sensors/ms_sensors_i2c.ko
   AUTOLOAD:=$(call AutoLoad,56,htu21)
   $(call AddDepends/iio)
 endef
@@ -294,7 +294,7 @@  define KernelPackage/iio-ccs811
   TITLE:=AMS CCS811 VOC sensor
   KCONFIG:= \
 	CONFIG_CCS811
-  FILES:= $(LINUX_DIR)/drivers/iio/chemical/ccs811.ko
+  FILES:= $(LINUX_OBJ_DIR)/drivers/iio/chemical/ccs811.ko
   AUTOLOAD:=$(call AutoLoad,56,ccs811)
   $(call AddDepends/iio)
 endef
@@ -310,7 +310,7 @@  define KernelPackage/iio-si7020
   DEPENDS:=+kmod-i2c-core
   TITLE:=Silicon Labs Si7020 sensor
   KCONFIG:= CONFIG_SI7020
-  FILES:=$(LINUX_DIR)/drivers/iio/humidity/si7020.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/humidity/si7020.ko
   AUTOLOAD:=$(call AutoLoad,56,si7020)
   $(call AddDepends/iio)
 endef
@@ -331,8 +331,8 @@  define KernelPackage/iio-st_accel
 	CONFIG_IIO_ST_ACCEL_3AXIS \
 	CONFIG_IIO_ST_SENSORS_CORE
   FILES:= \
-	$(LINUX_DIR)/drivers/iio/accel/st_accel.ko \
-	$(LINUX_DIR)/drivers/iio/common/st_sensors/st_sensors.ko
+	$(LINUX_OBJ_DIR)/drivers/iio/accel/st_accel.ko \
+	$(LINUX_OBJ_DIR)/drivers/iio/common/st_sensors/st_sensors.ko
   $(call AddDepends/iio)
 endef
 
@@ -351,8 +351,8 @@  define KernelPackage/iio-st_accel-i2c
   DEPENDS:=+kmod-iio-st_accel +kmod-i2c-core +kmod-regmap-i2c
   KCONFIG:= CONFIG_IIO_ST_ACCEL_I2C_3AXIS
   FILES:= \
-	$(LINUX_DIR)/drivers/iio/accel/st_accel_i2c.ko \
-	$(LINUX_DIR)/drivers/iio/common/st_sensors/st_sensors_i2c.ko
+	$(LINUX_OBJ_DIR)/drivers/iio/accel/st_accel_i2c.ko \
+	$(LINUX_OBJ_DIR)/drivers/iio/common/st_sensors/st_sensors_i2c.ko
   AUTOLOAD:=$(call AutoLoad,56,st_accel_i2c)
   $(call AddDepends/iio)
 endef
@@ -369,8 +369,8 @@  define KernelPackage/iio-st_accel-spi
   DEPENDS:=+kmod-iio-st_accel +kmod-regmap-spi
   KCONFIG:= CONFIG_IIO_ST_ACCEL_SPI_3AXIS
   FILES:= \
-	$(LINUX_DIR)/drivers/iio/accel/st_accel_spi.ko \
-	$(LINUX_DIR)/drivers/iio/common/st_sensors/st_sensors_spi.ko
+	$(LINUX_OBJ_DIR)/drivers/iio/accel/st_accel_spi.ko \
+	$(LINUX_OBJ_DIR)/drivers/iio/common/st_sensors/st_sensors_spi.ko
   AUTOLOAD:=$(call AutoLoad,56,st_accel_spi)
   $(call AddDepends/iio)
 endef
@@ -386,7 +386,7 @@  define KernelPackage/iio-lsm6dsx
   DEPENDS:=+kmod-iio-kfifo-buf +kmod-regmap-core
   TITLE:=ST LSM6DSx driver for IMU MEMS sensors
   KCONFIG:=CONFIG_IIO_ST_LSM6DSX
-  FILES:=$(LINUX_DIR)/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.ko
   AUTOLOAD:=$(call AutoProbe,st_lsm6dsx)
   $(call AddDepends/iio)
 endef
@@ -402,7 +402,7 @@  define KernelPackage/iio-lsm6dsx-i2c
   DEPENDS:=+kmod-iio-lsm6dsx +kmod-i2c-core +kmod-regmap-i2c
   TITLE:=ST LSM6DSx driver for IMU MEMS sensors (I2C)
   KCONFIG:=CONFIG_IIO_ST_LSM6DSX
-  FILES:=$(LINUX_DIR)/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.ko
   AUTOLOAD:=$(call AutoProbe,st_lsm6dsx-i2c)
   $(call AddDepends/iio)
 endef
@@ -418,7 +418,7 @@  define KernelPackage/iio-lsm6dsx-spi
   DEPENDS:=+kmod-iio-lsm6dsx +kmod-regmap-spi
   TITLE:=ST LSM6DSx driver for IMU MEMS sensors (SPI)
   KCONFIG:=CONFIG_IIO_ST_LSM6DSX
-  FILES:=$(LINUX_DIR)/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.ko
   AUTOLOAD:=$(call AutoProbe,st_lsm6dsx-spi)
   $(call AddDepends/iio)
 endef
@@ -437,8 +437,8 @@  define KernelPackage/iio-sps30
 	CONFIG_SPS30 \
 	CONFIG_SPS30_I2C
   FILES:= \
-	$(LINUX_DIR)/drivers/iio/chemical/sps30.ko \
-	$(LINUX_DIR)/drivers/iio/chemical/sps30_i2c.ko
+	$(LINUX_OBJ_DIR)/drivers/iio/chemical/sps30.ko \
+	$(LINUX_OBJ_DIR)/drivers/iio/chemical/sps30_i2c.ko
   AUTOLOAD:=$(call AutoProbe,sps30 sps30_i2c)
   $(call AddDepends/iio)
 endef
@@ -454,7 +454,7 @@  define KernelPackage/iio-tsl4531
   DEPENDS:=+kmod-i2c-core
   TITLE:=TAOS TSL4531 ambient light sensor
   KCONFIG:= CONFIG_TSL4531
-  FILES:=$(LINUX_DIR)/drivers/iio/light/tsl4531.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/light/tsl4531.ko
   AUTOLOAD:=$(call AutoLoad,56,tsl4531)
   $(call AddDepends/iio)
 endef
@@ -472,7 +472,7 @@  define KernelPackage/iio-fxas21002c
   TITLE:=Freescale FXAS21002C 3-axis gyro driver
   DEPENDS:=+kmod-regmap-core +kmod-industrialio-triggered-buffer
   KCONFIG:= CONFIG_FXAS21002C
-  FILES:=$(LINUX_DIR)/drivers/iio/gyro/fxas21002c_core.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/gyro/fxas21002c_core.ko
   AUTOLOAD:=$(call AutoLoad,56,fxas21002c)
   $(call AddDepends/iio)
 endef
@@ -488,7 +488,7 @@  define KernelPackage/iio-fxas21002c-i2c
   TITLE:=Freescale FXAS21002C 3-axis gyro driver (I2C)
   DEPENDS:=+kmod-iio-fxas21002c +kmod-i2c-core +kmod-regmap-i2c
   KCONFIG:= CONFIG_FXAS21002C_I2C
-  FILES:=$(LINUX_DIR)/drivers/iio/gyro/fxas21002c_i2c.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/gyro/fxas21002c_i2c.ko
   AUTOLOAD:=$(call AutoLoad,56,fxas21002c_i2c)
   $(call AddDepends/iio)
 endef
@@ -505,7 +505,7 @@  define KernelPackage/iio-fxas21002c-spi
   DEPENDS:=+kmod-iio-fxas21002c +kmod-regmap-spi
   TITLE:=Freescale FXAS21002C 3-axis gyro driver (SPI)
   KCONFIG:= CONFIG_FXAS21002C_SPI
-  FILES:=$(LINUX_DIR)/drivers/iio/gyro/fxas21002c_spi.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/gyro/fxas21002c_spi.ko
   AUTOLOAD:=$(call AutoLoad,56,fxas21002c_spi)
   $(call AddDepends/iio)
 endef
@@ -522,7 +522,7 @@  define KernelPackage/iio-fxos8700
   TITLE:=Freescale FXOS8700 3-axis accelerometer driver
   DEPENDS:=+kmod-regmap-core
   KCONFIG:= CONFIG_FXOS8700
-  FILES:=$(LINUX_DIR)/drivers/iio/imu/fxos8700_core.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/imu/fxos8700_core.ko
   AUTOLOAD:=$(call AutoLoad,56,fxos8700)
   $(call AddDepends/iio)
 endef
@@ -538,7 +538,7 @@  define KernelPackage/iio-fxos8700-i2c
   TITLE:=Freescale FXOS8700 3-axis acceleromter driver (I2C)
   DEPENDS:=+kmod-iio-fxos8700 +kmod-i2c-core +kmod-regmap-i2c
   KCONFIG:= CONFIG_FXOS8700_I2C
-  FILES:=$(LINUX_DIR)/drivers/iio/imu/fxos8700_i2c.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/imu/fxos8700_i2c.ko
   AUTOLOAD:=$(call AutoLoad,56,fxos8700_i2c)
   $(call AddDepends/iio)
 endef
@@ -555,7 +555,7 @@  define KernelPackage/iio-fxos8700-spi
   DEPENDS:=+kmod-iio-fxos8700 +kmod-regmap-spi
   TITLE:=Freescale FXOS8700 3-axis accelerometer driver (SPI)
   KCONFIG:= CONFIG_FXOS8700_SPI
-  FILES:=$(LINUX_DIR)/drivers/iio/imu/fxos8700_spi.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/imu/fxos8700_spi.ko
   AUTOLOAD:=$(call AutoLoad,56,fxos8700_spi)
   $(call AddDepends/iio)
 endef
@@ -571,7 +571,7 @@  define KernelPackage/iio-ti-am335x-adc
   TITLE:= TI Sitara AM335x ADC driver
   DEPENDS:=@TARGET_omap
   KCONFIG:=CONFIG_TI_AM335X_ADC
-  FILES:=$(LINUX_DIR)/drivers/iio/adc/ti_am335x_adc.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/adc/ti_am335x_adc.ko
   AUTOLOAD:=$(call AutoProbe,ti_am335x_adc)
   $(call AddDepends/iio,+kmod-iio-kfifo-buf)
 endef
diff --git a/package/kernel/linux/modules/input.mk b/package/kernel/linux/modules/input.mk
index 92587b1874..79e3cf9f4a 100644
--- a/package/kernel/linux/modules/input.mk
+++ b/package/kernel/linux/modules/input.mk
@@ -12,7 +12,7 @@  define KernelPackage/hid
   TITLE:=HID Devices
   DEPENDS:=+kmod-input-core +kmod-input-evdev
   KCONFIG:=CONFIG_HID CONFIG_HIDRAW=y CONFIG_HID_BATTERY_STRENGTH=y
-  FILES:=$(LINUX_DIR)/drivers/hid/hid.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hid/hid.ko
   AUTOLOAD:=$(call AutoLoad,61,hid)
 endef
 
@@ -27,7 +27,7 @@  define KernelPackage/hid-generic
   TITLE:=Generic HID device support
   DEPENDS:=+kmod-hid
   KCONFIG:=CONFIG_HID_GENERIC
-  FILES:=$(LINUX_DIR)/drivers/hid/hid-generic.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hid/hid-generic.ko
   AUTOLOAD:=$(call AutoProbe,hid-generic)
 endef
 
@@ -41,7 +41,7 @@  define KernelPackage/input-core
   SUBMENU:=$(INPUT_MODULES_MENU)
   TITLE:=Input device core
   KCONFIG:=CONFIG_INPUT
-  FILES:=$(LINUX_DIR)/drivers/input/input-core.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/input/input-core.ko
 endef
 
 define KernelPackage/input-core/description
@@ -56,7 +56,7 @@  define KernelPackage/input-evdev
   TITLE:=Input event device
   DEPENDS:=+kmod-input-core
   KCONFIG:=CONFIG_INPUT_EVDEV
-  FILES:=$(LINUX_DIR)/drivers/input/evdev.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/input/evdev.ko
   AUTOLOAD:=$(call AutoLoad,60,evdev)
 endef
 
@@ -74,7 +74,7 @@  define KernelPackage/input-gpio-keys
   KCONFIG:= \
 	CONFIG_KEYBOARD_GPIO \
 	CONFIG_INPUT_KEYBOARD=y
-  FILES:=$(LINUX_DIR)/drivers/input/keyboard/gpio_keys.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/input/keyboard/gpio_keys.ko
   AUTOLOAD:=$(call AutoProbe,gpio_keys,1)
 endef
 
@@ -96,7 +96,7 @@  define KernelPackage/input-gpio-keys-polled
   KCONFIG:= \
 	CONFIG_KEYBOARD_GPIO_POLLED \
 	CONFIG_INPUT_KEYBOARD=y
-  FILES:=$(LINUX_DIR)/drivers/input/keyboard/gpio_keys_polled.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/input/keyboard/gpio_keys_polled.ko
   AUTOLOAD:=$(call AutoProbe,gpio_keys_polled,1)
 endef
 
@@ -115,7 +115,7 @@  define KernelPackage/input-gpio-encoder
   TITLE:=GPIO rotary encoder
   DEPENDS:=@GPIO_SUPPORT +kmod-input-core
   KCONFIG:=CONFIG_INPUT_GPIO_ROTARY_ENCODER
-  FILES:=$(LINUX_DIR)/drivers/input/misc/rotary_encoder.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/input/misc/rotary_encoder.ko
   AUTOLOAD:=$(call AutoProbe,rotary_encoder)
 endef
 
@@ -131,7 +131,7 @@  define KernelPackage/input-joydev
   TITLE:=Joystick device support
   DEPENDS:=+kmod-input-core
   KCONFIG:=CONFIG_INPUT_JOYDEV
-  FILES:=$(LINUX_DIR)/drivers/input/joydev.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/input/joydev.ko
   AUTOLOAD:=$(call AutoProbe,joydev)
 endef
 
@@ -147,7 +147,7 @@  define KernelPackage/input-matrixkmap
   TITLE:=Input matrix devices support
   DEPENDS:=+kmod-input-core
   KCONFIG:=CONFIG_INPUT_MATRIXKMAP
-  FILES:=$(LINUX_DIR)/drivers/input/matrix-keymap.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/input/matrix-keymap.ko
   AUTOLOAD:=$(call AutoProbe,matrix-keymap)
 endef
 
@@ -165,7 +165,7 @@  define KernelPackage/input-touchscreen-ads7846
   KCONFIG:= \
 	CONFIG_INPUT_TOUCHSCREEN=y \
 	CONFIG_TOUCHSCREEN_ADS7846
-  FILES:=$(LINUX_DIR)/drivers/input/touchscreen/ads7846.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/input/touchscreen/ads7846.ko
   AUTOLOAD:=$(call AutoProbe,ads7846)
 endef
 
@@ -183,7 +183,7 @@  define KernelPackage/input-touchscreen-edt-ft5x06
   KCONFIG:= \
 	CONFIG_INPUT_TOUCHSCREEN=y \
 	CONFIG_TOUCHSCREEN_EDT_FT5X06
-  FILES:=$(LINUX_DIR)/drivers/input/touchscreen/edt-ft5x06.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/input/touchscreen/edt-ft5x06.ko
   AUTOLOAD:=$(call AutoProbe,edt-ft5x06)
 endef
 
@@ -202,7 +202,7 @@  define KernelPackage/keyboard-imx
   KCONFIG:= \
 	CONFIG_KEYBOARD_IMX \
 	CONFIG_INPUT_KEYBOARD=y
-  FILES:=$(LINUX_DIR)/drivers/input/keyboard/imx_keypad.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/input/keyboard/imx_keypad.ko
   AUTOLOAD:=$(call AutoProbe,imx_keypad)
 endef
 
@@ -220,7 +220,7 @@  define KernelPackage/input-uinput
   KCONFIG:= \
 	CONFIG_INPUT_MISC=y \
 	CONFIG_INPUT_UINPUT
-  FILES:=$(LINUX_DIR)/drivers/input/misc/uinput.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/input/misc/uinput.ko
   AUTOLOAD:=$(call AutoProbe,uinput)
 endef
 
diff --git a/package/kernel/linux/modules/leds.mk b/package/kernel/linux/modules/leds.mk
index 24af1b7f61..1904062fcb 100644
--- a/package/kernel/linux/modules/leds.mk
+++ b/package/kernel/linux/modules/leds.mk
@@ -12,7 +12,7 @@  define KernelPackage/leds-gpio
   TITLE:=GPIO LED support
   DEPENDS:= @GPIO_SUPPORT
   KCONFIG:=CONFIG_LEDS_GPIO
-  FILES:=$(LINUX_DIR)/drivers/leds/leds-gpio.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/leds/leds-gpio.ko
   AUTOLOAD:=$(call AutoLoad,60,leds-gpio,1)
 endef
 
@@ -22,7 +22,7 @@  endef
 
 $(eval $(call KernelPackage,leds-gpio))
 
-LED_TRIGGER_DIR=$(LINUX_DIR)/drivers/leds/trigger
+LED_TRIGGER_DIR=$(LINUX_OBJ_DIR)/drivers/leds/trigger
 
 define KernelPackage/ledtrig-activity
   SUBMENU:=$(LEDS_MENU)
@@ -136,7 +136,7 @@  define KernelPackage/leds-apu
   TITLE:=PC Engines APU1 LED support
   DEPENDS:= @GPIO_SUPPORT @TARGET_x86
   KCONFIG:=CONFIG_LEDS_APU
-  FILES:=$(LINUX_DIR)/drivers/leds/leds-apu.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/leds/leds-apu.ko
   AUTOLOAD:=$(call AutoLoad,60,leds-apu,1)
 endef
 
@@ -150,7 +150,7 @@  $(eval $(call KernelPackage,leds-apu))
 define KernelPackage/leds-mlxcpld
   SUBMENU:=$(LEDS_MENU)
   TITLE:=LED support for the Mellanox boards
-  FILES:=$(LINUX_DIR)/drivers/leds/leds-mlxcpld.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/leds/leds-mlxcpld.ko
   KCONFIG:=CONFIG_LEDS_MLXCPLD
   AUTOLOAD:=$(call AutoProbe,leds-mlxcpld)
 endef
@@ -169,7 +169,7 @@  define KernelPackage/leds-pca955x
   DEPENDS:=@GPIO_SUPPORT +kmod-i2c-core
   KCONFIG:=CONFIG_LEDS_PCA955X \
     CONFIG_LEDS_PCA955X_GPIO=y
-  FILES:=$(LINUX_DIR)/drivers/leds/leds-pca955x.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/leds/leds-pca955x.ko
   AUTOLOAD:=$(call AutoLoad,60,leds-pca955x,1)
 endef
 
@@ -187,7 +187,7 @@  define KernelPackage/leds-pca963x
   TITLE:=PCA963x LED support
   DEPENDS:=+kmod-i2c-core
   KCONFIG:=CONFIG_LEDS_PCA963X
-  FILES:=$(LINUX_DIR)/drivers/leds/leds-pca963x.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/leds/leds-pca963x.ko
   AUTOLOAD:=$(call AutoLoad,60,leds-pca963x,1)
 endef
 
@@ -203,7 +203,7 @@  define KernelPackage/leds-pwm
   TITLE:=PWM driven LED Support
   KCONFIG:=CONFIG_LEDS_PWM
   DEPENDS:= @PWM_SUPPORT
-  FILES:=$(LINUX_DIR)/drivers/leds/leds-pwm.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/leds/leds-pwm.ko
   AUTOLOAD:=$(call AutoLoad,60,leds-pwm,1)
 endef
 
@@ -219,7 +219,7 @@  define KernelPackage/leds-tlc591xx
   TITLE:=LED driver for TLC59108 and TLC59116 controllers
   DEPENDS:=+kmod-i2c-core +kmod-regmap-i2c
   KCONFIG:=CONFIG_LEDS_TLC591XX
-  FILES:=$(LINUX_DIR)/drivers/leds/leds-tlc591xx.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/leds/leds-tlc591xx.ko
   AUTOLOAD:=$(call AutoLoad,60,leds-tlc591xx,1)
 endef
 
@@ -235,7 +235,7 @@  define KernelPackage/leds-uleds
   SUBMENU:=$(LEDS_MENU)
   TITLE:=Userspace LEDs
   KCONFIG:=CONFIG_LEDS_USER
-  FILES:=$(LINUX_DIR)/drivers/leds/uleds.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/leds/uleds.ko
   AUTOLOAD:=$(call AutoLoad,60,uleds,1)
 endef
 
@@ -251,7 +251,7 @@  define KernelPackage/input-leds
   TITLE:=Input device LED support
   DEPENDS:=+kmod-input-core
   KCONFIG:=CONFIG_INPUT_LEDS
-  FILES:=$(LINUX_DIR)/drivers/input/input-leds.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/input/input-leds.ko
   AUTOLOAD:=$(call AutoLoad,50,input-leds,1)
 endef
 
diff --git a/package/kernel/linux/modules/lib.mk b/package/kernel/linux/modules/lib.mk
index 8d67a3187a..d83bddbd7a 100644
--- a/package/kernel/linux/modules/lib.mk
+++ b/package/kernel/linux/modules/lib.mk
@@ -11,7 +11,7 @@  define KernelPackage/lib-crc-ccitt
   SUBMENU:=$(LIB_MENU)
   TITLE:=CRC-CCITT support
   KCONFIG:=CONFIG_CRC_CCITT
-  FILES:=$(LINUX_DIR)/lib/crc-ccitt.ko
+  FILES:=$(LINUX_OBJ_DIR)/lib/crc-ccitt.ko
   AUTOLOAD:=$(call AutoProbe,crc-ccitt)
 endef
 
@@ -26,7 +26,7 @@  define KernelPackage/lib-crc-itu-t
   SUBMENU:=$(LIB_MENU)
   TITLE:=CRC ITU-T V.41 support
   KCONFIG:=CONFIG_CRC_ITU_T
-  FILES:=$(LINUX_DIR)/lib/crc-itu-t.ko
+  FILES:=$(LINUX_OBJ_DIR)/lib/crc-itu-t.ko
   AUTOLOAD:=$(call AutoProbe,crc-itu-t)
 endef
 
@@ -41,7 +41,7 @@  define KernelPackage/lib-crc7
   SUBMENU:=$(LIB_MENU)
   TITLE:=CRC7 support
   KCONFIG:=CONFIG_CRC7
-  FILES:=$(LINUX_DIR)/lib/crc7.ko
+  FILES:=$(LINUX_OBJ_DIR)/lib/crc7.ko
   AUTOLOAD:=$(call AutoProbe,crc7)
 endef
 
@@ -56,7 +56,7 @@  define KernelPackage/lib-crc8
   SUBMENU:=$(LIB_MENU)
   TITLE:=CRC8 support
   KCONFIG:=CONFIG_CRC8
-  FILES:=$(LINUX_DIR)/lib/crc8.ko
+  FILES:=$(LINUX_OBJ_DIR)/lib/crc8.ko
   AUTOLOAD:=$(call AutoProbe,crc8)
 endef
 
@@ -71,7 +71,7 @@  define KernelPackage/lib-crc16
   SUBMENU:=$(LIB_MENU)
   TITLE:=CRC16 support
   KCONFIG:=CONFIG_CRC16
-  FILES:=$(LINUX_DIR)/lib/crc16.ko
+  FILES:=$(LINUX_OBJ_DIR)/lib/crc16.ko
   AUTOLOAD:=$(call AutoLoad,20,crc16,1)
 endef
 
@@ -87,7 +87,7 @@  define KernelPackage/lib-crc32c
   TITLE:=CRC32 support
   KCONFIG:=CONFIG_LIBCRC32C
   DEPENDS:=+kmod-crypto-crc32c
-  FILES:=$(LINUX_DIR)/lib/libcrc32c.ko
+  FILES:=$(LINUX_OBJ_DIR)/lib/libcrc32c.ko
   AUTOLOAD:=$(call AutoProbe,libcrc32c)
 endef
 
@@ -108,10 +108,10 @@  define KernelPackage/lib-lzo
 	CONFIG_LZO_DECOMPRESS
   HIDDEN:=1
   FILES:= \
-	$(LINUX_DIR)/crypto/lzo.ko \
-	$(LINUX_DIR)/crypto/lzo-rle.ko \
-	$(LINUX_DIR)/lib/lzo/lzo_compress.ko \
-	$(LINUX_DIR)/lib/lzo/lzo_decompress.ko
+	$(LINUX_OBJ_DIR)/crypto/lzo.ko \
+	$(LINUX_OBJ_DIR)/crypto/lzo-rle.ko \
+	$(LINUX_OBJ_DIR)/lib/lzo/lzo_compress.ko \
+	$(LINUX_OBJ_DIR)/lib/lzo/lzo_decompress.ko
   AUTOLOAD:=$(call AutoProbe,lzo lzo-rle lzo_compress lzo_decompress)
 endef
 
@@ -132,11 +132,11 @@  define KernelPackage/lib-zstd
 	CONFIG_ZSTD_DECOMPRESS \
 	CONFIG_XXHASH
   FILES:= \
-	$(LINUX_DIR)/crypto/zstd.ko \
-	$(LINUX_DIR)/lib/xxhash.ko \
-	$(LINUX_DIR)/lib/zstd/zstd_common.ko@ge6.1 \
-	$(LINUX_DIR)/lib/zstd/zstd_compress.ko \
-	$(LINUX_DIR)/lib/zstd/zstd_decompress.ko
+	$(LINUX_OBJ_DIR)/crypto/zstd.ko \
+	$(LINUX_OBJ_DIR)/lib/xxhash.ko \
+	$(LINUX_OBJ_DIR)/lib/zstd/zstd_common.ko@ge6.1 \
+	$(LINUX_OBJ_DIR)/lib/zstd/zstd_compress.ko \
+	$(LINUX_OBJ_DIR)/lib/zstd/zstd_decompress.ko
   AUTOLOAD:=$(call AutoProbe,xxhash zstd zstd_compress zstd_decompress)
 endef
 
@@ -157,10 +157,10 @@  define KernelPackage/lib-lz4
 	CONFIG_LZ4_COMPRESS \
 	CONFIG_LZ4_DECOMPRESS
   FILES:= \
-	$(LINUX_DIR)/crypto/lz4.ko \
-	$(LINUX_DIR)/lib/lz4/lz4_compress.ko \
-	$(LINUX_DIR)/lib/lz4/lz4hc_compress.ko \
-	$(LINUX_DIR)/lib/lz4/lz4_decompress.ko
+	$(LINUX_OBJ_DIR)/crypto/lz4.ko \
+	$(LINUX_OBJ_DIR)/lib/lz4/lz4_compress.ko \
+	$(LINUX_OBJ_DIR)/lib/lz4/lz4hc_compress.ko \
+	$(LINUX_OBJ_DIR)/lib/lz4/lz4_decompress.ko
   AUTOLOAD:=$(call AutoProbe,lz4 lz4_compress lz4hc_compress lz4_decompress)
 endef
 
@@ -180,9 +180,9 @@  define KernelPackage/lib-842
 	CONFIG_842_COMPRESS \
 	CONFIG_842_DECOMPRESS
   FILES:= \
-	$(LINUX_DIR)/crypto/842.ko \
-	$(LINUX_DIR)/lib/842/842_compress.ko \
-	$(LINUX_DIR)/lib/842/842_decompress.ko
+	$(LINUX_OBJ_DIR)/crypto/842.ko \
+	$(LINUX_OBJ_DIR)/lib/842/842_compress.ko \
+	$(LINUX_OBJ_DIR)/lib/842/842_decompress.ko
   AUTOLOAD:=$(call AutoProbe,842 842_compress 842_decompress)
 endef
 
@@ -198,7 +198,7 @@  define KernelPackage/lib-raid6
   TITLE:=RAID6 algorithm support
   HIDDEN:=1
   KCONFIG:=CONFIG_RAID6_PQ
-  FILES:=$(LINUX_DIR)/lib/raid6/raid6_pq.ko
+  FILES:=$(LINUX_OBJ_DIR)/lib/raid6/raid6_pq.ko
   AUTOLOAD:=$(call AutoProbe,raid6_pq)
 endef
 
@@ -214,13 +214,13 @@  define KernelPackage/lib-xor
   TITLE:=XOR blocks algorithm support
   HIDDEN:=1
   KCONFIG:=CONFIG_XOR_BLOCKS
-ifneq ($(wildcard $(LINUX_DIR)/arch/$(LINUX_KARCH)/lib/xor-neon.ko),)
+ifneq ($(wildcard $(LINUX_OBJ_DIR)/arch/$(LINUX_KARCH)/lib/xor-neon.ko),)
   FILES:= \
-    $(LINUX_DIR)/crypto/xor.ko \
-    $(LINUX_DIR)/arch/$(LINUX_KARCH)/lib/xor-neon.ko
+    $(LINUX_OBJ_DIR)/crypto/xor.ko \
+    $(LINUX_OBJ_DIR)/arch/$(LINUX_KARCH)/lib/xor-neon.ko
   AUTOLOAD:=$(call AutoProbe,xor-neon xor)
 else
-  FILES:=$(LINUX_DIR)/crypto/xor.ko
+  FILES:=$(LINUX_OBJ_DIR)/crypto/xor.ko
   AUTOLOAD:=$(call AutoProbe,xor)
 endif
 endef
@@ -241,9 +241,9 @@  SUBMENU:=$(LIB_MENU)
     CONFIG_TEXTSEARCH_BM \
     CONFIG_TEXTSEARCH_FSM
   FILES:= \
-    $(LINUX_DIR)/lib/ts_kmp.ko \
-    $(LINUX_DIR)/lib/ts_bm.ko \
-    $(LINUX_DIR)/lib/ts_fsm.ko
+    $(LINUX_OBJ_DIR)/lib/ts_kmp.ko \
+    $(LINUX_OBJ_DIR)/lib/ts_bm.ko \
+    $(LINUX_OBJ_DIR)/lib/ts_fsm.ko
   AUTOLOAD:=$(call AutoProbe,ts_kmp ts_bm ts_fsm)
 endef
 
@@ -255,7 +255,7 @@  define KernelPackage/lib-zlib-inflate
   TITLE:=Zlib support
   HIDDEN:=1
   KCONFIG:=CONFIG_ZLIB_INFLATE
-  FILES:=$(LINUX_DIR)/lib/zlib_inflate/zlib_inflate.ko
+  FILES:=$(LINUX_OBJ_DIR)/lib/zlib_inflate/zlib_inflate.ko
   AUTOLOAD:=$(call AutoProbe,zlib_inflate)
 endef
 
@@ -267,7 +267,7 @@  define KernelPackage/lib-zlib-deflate
   TITLE:=Zlib support
   HIDDEN:=1
   KCONFIG:=CONFIG_ZLIB_DEFLATE
-  FILES:=$(LINUX_DIR)/lib/zlib_deflate/zlib_deflate.ko
+  FILES:=$(LINUX_OBJ_DIR)/lib/zlib_deflate/zlib_deflate.ko
   AUTOLOAD:=$(call AutoProbe,zlib_deflate)
 endef
 
@@ -278,7 +278,7 @@  define KernelPackage/lib-cordic
   SUBMENU:=$(LIB_MENU)
   TITLE:=Cordic function support
   KCONFIG:=CONFIG_CORDIC
-  FILES:=$(LINUX_DIR)/lib/math/cordic.ko
+  FILES:=$(LINUX_OBJ_DIR)/lib/math/cordic.ko
   AUTOLOAD:=$(call AutoProbe,cordic)
 endef
 
@@ -294,7 +294,7 @@  define KernelPackage/asn1-decoder
   TITLE:=Simple ASN1 decoder
   KCONFIG:= CONFIG_ASN1
   HIDDEN:=1
-  FILES:=$(LINUX_DIR)/lib/asn1_decoder.ko
+  FILES:=$(LINUX_OBJ_DIR)/lib/asn1_decoder.ko
 endef
 
 $(eval $(call KernelPackage,asn1-decoder))
@@ -304,7 +304,7 @@  define KernelPackage/asn1-encoder
   TITLE:=Simple ASN1 encoder
   KCONFIG:= CONFIG_ASN1_ENCODER
   HIDDEN:=1
-  FILES:=$(LINUX_DIR)/lib/asn1_encoder.ko
+  FILES:=$(LINUX_OBJ_DIR)/lib/asn1_encoder.ko
 endef
 
 $(eval $(call KernelPackage,asn1-encoder))
@@ -313,7 +313,7 @@  define KernelPackage/oid-registry
   SUBMENU:=$(LIB_MENU)
   TITLE:=Object identifier registry
   KCONFIG:= CONFIG_OID_REGISTRY
-  FILES:=$(LINUX_DIR)/lib/oid_registry.ko
+  FILES:=$(LINUX_OBJ_DIR)/lib/oid_registry.ko
   AUTOLOAD:=$(call AutoLoad,31,oid_registry)
 endef
 
@@ -323,7 +323,7 @@  $(eval $(call KernelPackage,oid-registry))
 define KernelPackage/lib-objagg
   SUBMENU:=$(LIB_MENU)
   TITLE:=objagg support
-  FILES:=$(LINUX_DIR)/lib/objagg.ko
+  FILES:=$(LINUX_OBJ_DIR)/lib/objagg.ko
   KCONFIG:= \
   CONFIG_OBJAGG \
   CONFIG_TEST_OBJAGG=n
@@ -336,7 +336,7 @@  $(eval $(call KernelPackage,lib-objagg))
 define KernelPackage/lib-parman
   SUBMENU:=$(LIB_MENU)
   TITLE:=parman support
-  FILES:=$(LINUX_DIR)/lib/parman.ko
+  FILES:=$(LINUX_OBJ_DIR)/lib/parman.ko
   KCONFIG:= \
   CONFIG_PARMAN \
   CONFIG_TEST_PARMAN=n
diff --git a/package/kernel/linux/modules/multiplexer.mk b/package/kernel/linux/modules/multiplexer.mk
index 135fc62c6d..da427fe529 100644
--- a/package/kernel/linux/modules/multiplexer.mk
+++ b/package/kernel/linux/modules/multiplexer.mk
@@ -8,7 +8,7 @@  define KernelPackage/mux-core
   SUBMENU:=$(MENU_TITLE)
   TITLE:=Multiplexer Support
   KCONFIG:=CONFIG_MULTIPLEXER
-  FILES:=$(LINUX_DIR)/drivers/mux/mux-core.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/mux/mux-core.ko
   AUTOLOAD:=$(call AutoLoad,25,mux-core,1)
 endef
 
@@ -23,7 +23,7 @@  define KernelPackage/mux-gpio
   TITLE:=GPIO-controlled Multiplexer controller
   KCONFIG:=CONFIG_MUX_GPIO
   DEPENDS:=@GPIO_SUPPORT kmod-mux-core
-  FILES:=$(LINUX_DIR)/drivers/mux/mux-gpio.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/mux/mux-gpio.ko
   AUTOLOAD:=$(call AutoLoad,25,mux-gpio,1)
 endef
 
diff --git a/package/kernel/linux/modules/netdevices.mk b/package/kernel/linux/modules/netdevices.mk
index 74ea07e261..8f7141427d 100644
--- a/package/kernel/linux/modules/netdevices.mk
+++ b/package/kernel/linux/modules/netdevices.mk
@@ -12,7 +12,7 @@  define KernelPackage/sis190
   TITLE:=SiS 190 Fast/Gigabit Ethernet support
   DEPENDS:=@PCI_SUPPORT +kmod-mii
   KCONFIG:=CONFIG_SIS190
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/sis/sis190.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/sis/sis190.ko
   AUTOLOAD:=$(call AutoProbe,sis190)
 endef
 
@@ -26,7 +26,7 @@  define KernelPackage/skge
   KCONFIG:=CONFIG_SKGE \
 	CONFIG_SKGE_DEBUG=n \
 	CONFIG_SKGE_GENESIS=n
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/marvell/skge.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/marvell/skge.ko
   AUTOLOAD:=$(call AutoProbe,skge)
 endef
 
@@ -38,7 +38,7 @@  define KernelPackage/alx
   TITLE:=Qualcomm Atheros AR816x/AR817x PCI-E Ethernet Network Driver
   DEPENDS:=@PCI_SUPPORT +kmod-mdio
   KCONFIG:=CONFIG_ALX
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/atheros/alx/alx.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/atheros/alx/alx.ko
   AUTOLOAD:=$(call AutoProbe,alx)
 endef
 
@@ -50,7 +50,7 @@  define KernelPackage/atl2
   TITLE:=Atheros L2 Fast Ethernet support
   DEPENDS:=@PCI_SUPPORT
   KCONFIG:=CONFIG_ATL2
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/atheros/atlx/atl2.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/atheros/atlx/atl2.ko
   AUTOLOAD:=$(call AutoProbe,atl2)
 endef
 
@@ -62,7 +62,7 @@  define KernelPackage/atl1
   TITLE:=Atheros L1 Gigabit Ethernet support
   DEPENDS:=@PCI_SUPPORT +kmod-mii
   KCONFIG:=CONFIG_ATL1
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/atheros/atlx/atl1.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/atheros/atlx/atl1.ko
   AUTOLOAD:=$(call AutoProbe,atl1)
 endef
 
@@ -74,7 +74,7 @@  define KernelPackage/atl1c
   TITLE:=Atheros L1C
   DEPENDS:=@PCI_SUPPORT
   KCONFIG:=CONFIG_ATL1C
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/atheros/atl1c/atl1c.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/atheros/atl1c/atl1c.ko
   AUTOLOAD:=$(call AutoProbe,atl1c)
 endef
 
@@ -86,7 +86,7 @@  define KernelPackage/atl1e
   TITLE:=Atheros L1E
   DEPENDS:=@PCI_SUPPORT
   KCONFIG:=CONFIG_ATL1E
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/atheros/atl1e/atl1e.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/atheros/atl1e/atl1e.ko
   AUTOLOAD:=$(call AutoProbe,atl1e)
 endef
 
@@ -97,7 +97,7 @@  define KernelPackage/libphy
   SUBMENU:=$(NETWORK_DEVICES_MENU)
   TITLE:=PHY library
   KCONFIG:=CONFIG_PHYLIB
-  FILES:=$(LINUX_DIR)/drivers/net/phy/libphy.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/libphy.ko
   AUTOLOAD:=$(call AutoLoad,15,libphy,1)
 endef
 
@@ -113,7 +113,7 @@  define KernelPackage/phylink
   TITLE:=Model for MAC to optional PHY connection
   DEPENDS:=+kmod-libphy
   KCONFIG:=CONFIG_PHYLINK
-  FILES:=$(LINUX_DIR)/drivers/net/phy/phylink.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/phylink.ko
   AUTOLOAD:=$(call AutoLoad,15,phylink,1)
 endef
 
@@ -128,7 +128,7 @@  define KernelPackage/mii
   SUBMENU:=$(NETWORK_DEVICES_MENU)
   TITLE:=MII library
   KCONFIG:=CONFIG_MII
-  FILES:=$(LINUX_DIR)/drivers/net/mii.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/mii.ko
   AUTOLOAD:=$(call AutoLoad,15,mii,1)
 endef
 
@@ -145,7 +145,7 @@  define KernelPackage/mdio-devres
   DEPENDS:=+kmod-libphy +(TARGET_armsr||TARGET_bcm27xx_bcm2708||TARGET_malta||TARGET_tegra):kmod-of-mdio
   KCONFIG:=CONFIG_MDIO_DEVRES
   HIDDEN:=1
-  FILES:=$(LINUX_DIR)/drivers/net/phy/mdio_devres.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/mdio_devres.ko
   AUTOLOAD:=$(call AutoProbe,mdio-devres)
 endef
 
@@ -164,8 +164,8 @@  define KernelPackage/mdio-gpio
 	CONFIG_MDIO_BITBANG \
 	CONFIG_MDIO_GPIO
   FILES:= \
-	$(LINUX_DIR)/drivers/net/mdio/mdio-gpio.ko \
-	$(LINUX_DIR)/drivers/net/mdio/mdio-bitbang.ko
+	$(LINUX_OBJ_DIR)/drivers/net/mdio/mdio-gpio.ko \
+	$(LINUX_OBJ_DIR)/drivers/net/mdio/mdio-bitbang.ko
   AUTOLOAD:=$(call AutoProbe,mdio-gpio)
 endef
 
@@ -181,7 +181,7 @@  define KernelPackage/et131x
   TITLE:=Agere ET131x Gigabit Ethernet driver
   URL:=http://sourceforge.net/projects/et131x
   FILES:= \
-	$(LINUX_DIR)/drivers/net/ethernet/agere/et131x.ko
+	$(LINUX_OBJ_DIR)/drivers/net/ethernet/agere/et131x.ko
   KCONFIG:= \
 	CONFIG_ET131X \
 	CONFIG_ET131X_DEBUG=n
@@ -200,7 +200,7 @@  define KernelPackage/phy-microchip
    TITLE:=Microchip Ethernet PHY driver
    KCONFIG:=CONFIG_MICROCHIP_PHY
    DEPENDS:=+kmod-libphy
-   FILES:=$(LINUX_DIR)/drivers/net/phy/microchip.ko
+   FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/microchip.ko
    AUTOLOAD:=$(call AutoLoad,18,microchip,1)
 endef
 
@@ -217,7 +217,7 @@  define KernelPackage/phylib-broadcom
    KCONFIG:=CONFIG_BCM_NET_PHYLIB
    HIDDEN:=1
    DEPENDS:=+kmod-libphy
-   FILES:=$(LINUX_DIR)/drivers/net/phy/bcm-phy-lib.ko
+   FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/bcm-phy-lib.ko
    AUTOLOAD:=$(call AutoLoad,17,bcm-phy-lib)
 endef
 
@@ -229,7 +229,7 @@  define KernelPackage/phy-amd
    TITLE:=AMD PHY driver
    KCONFIG:=CONFIG_AMD_PHY
    DEPENDS:=+kmod-libphy
-   FILES:=$(LINUX_DIR)/drivers/net/phy/amd.ko
+   FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/amd.ko
    AUTOLOAD:=$(call AutoProbe,amd,1)
 endef
 
@@ -245,7 +245,7 @@  define KernelPackage/phy-ax88796b
    TITLE:=Asix PHY driver
    KCONFIG:=CONFIG_AX88796B_PHY
    DEPENDS:=+kmod-libphy
-   FILES:=$(LINUX_DIR)/drivers/net/phy/ax88796b.ko
+   FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/ax88796b.ko
    AUTOLOAD:=$(call AutoProbe,ax88796b)
 endef
 
@@ -262,7 +262,7 @@  define KernelPackage/phy-broadcom
    TITLE:=Broadcom Ethernet PHY driver
    KCONFIG:=CONFIG_BROADCOM_PHY
    DEPENDS:=+kmod-libphy +kmod-phylib-broadcom
-   FILES:=$(LINUX_DIR)/drivers/net/phy/broadcom.ko
+   FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/broadcom.ko
    AUTOLOAD:=$(call AutoLoad,18,broadcom,1)
 endef
 
@@ -279,7 +279,7 @@  define KernelPackage/phy-bcm84881
    TITLE:=Broadcom BCM84881 PHY driver
    KCONFIG:=CONFIG_BCM84881_PHY
    DEPENDS:=+kmod-libphy
-   FILES:=$(LINUX_DIR)/drivers/net/phy/bcm84881.ko
+   FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/bcm84881.ko
    AUTOLOAD:=$(call AutoLoad,18,bcm84881,1)
 endef
 
@@ -295,7 +295,7 @@  define KernelPackage/phy-marvell
    TITLE:=Marvell Gigabit Ethernet PHY driver
    KCONFIG:=CONFIG_MARVELL_PHY
    DEPENDS:=+kmod-libphy
-   FILES:=$(LINUX_DIR)/drivers/net/phy/marvell.ko
+   FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/marvell.ko
    AUTOLOAD:=$(call AutoLoad,18,marvell)
 endef
 
@@ -329,7 +329,7 @@  define KernelPackage/phy-marvell-10g
    TITLE:=Marvell 10 Gigabit Ethernet PHY driver
    KCONFIG:=CONFIG_MARVELL_10G_PHY
    DEPENDS:=+kmod-libphy
-   FILES:=$(LINUX_DIR)/drivers/net/phy/marvell10g.ko
+   FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/marvell10g.ko
    AUTOLOAD:=$(call AutoLoad,18,marvell10g)
 endef
 
@@ -348,7 +348,7 @@  define KernelPackage/phy-realtek
    TITLE:=Realtek Ethernet PHY driver
    KCONFIG:=CONFIG_REALTEK_PHY
    DEPENDS:=+kmod-libphy
-   FILES:=$(LINUX_DIR)/drivers/net/phy/realtek.ko
+   FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/realtek.ko
    AUTOLOAD:=$(call AutoLoad,18,realtek,1)
 endef
 
@@ -364,7 +364,7 @@  define KernelPackage/phy-smsc
    TITLE:=SMSC PHY driver
    KCONFIG:=CONFIG_SMSC_PHY
    DEPENDS:=+kmod-libphy
-   FILES:=$(LINUX_DIR)/drivers/net/phy/smsc.ko
+   FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/smsc.ko
    AUTOLOAD:=$(call AutoProbe,smsc)
 endef
 
@@ -380,7 +380,7 @@  define KernelPackage/phy-aquantia
   TITLE:=Aquantia Ethernet PHYs
   DEPENDS:=+kmod-libphy +kmod-hwmon-core
   KCONFIG:=CONFIG_AQUANTIA_PHY
-  FILES:=$(LINUX_DIR)/drivers/net/phy/aquantia.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/aquantia.ko
   AUTOLOAD:=$(call AutoLoad,18,aquantia,1)
 endef
 
@@ -396,7 +396,7 @@  define KernelPackage/swconfig
   TITLE:=switch configuration API
   DEPENDS:=+kmod-libphy
   KCONFIG:=CONFIG_SWCONFIG
-  FILES:=$(LINUX_DIR)/drivers/net/phy/swconfig.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/swconfig.ko
   AUTOLOAD:=$(call AutoLoad,41,swconfig)
 endef
 
@@ -411,7 +411,7 @@  define KernelPackage/switch-bcm53xx
   TITLE:=Broadcom bcm53xx switch support
   DEPENDS:=+kmod-swconfig
   KCONFIG:=CONFIG_SWCONFIG_B53
-  FILES:=$(LINUX_DIR)/drivers/net/phy/b53/b53_common.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/b53/b53_common.ko
   AUTOLOAD:=$(call AutoLoad,42,b53_common)
 endef
 
@@ -426,7 +426,7 @@  define KernelPackage/switch-bcm53xx-mdio
   TITLE:=Broadcom bcm53xx switch MDIO support
   DEPENDS:=+kmod-switch-bcm53xx
   KCONFIG:=CONFIG_SWCONFIG_B53_PHY_DRIVER
-  FILES:=$(LINUX_DIR)/drivers/net/phy/b53/b53_mdio.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/b53/b53_mdio.ko
   AUTOLOAD:=$(call AutoLoad,42,b53_mdio)
 endef
 
@@ -442,7 +442,7 @@  define KernelPackage/switch-ip17xx
   TITLE:=IC+ IP17XX switch support
   DEPENDS:=+kmod-swconfig
   KCONFIG:=CONFIG_IP17XX_PHY
-  FILES:=$(LINUX_DIR)/drivers/net/phy/ip17xx.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/ip17xx.ko
   AUTOLOAD:=$(call AutoLoad,42,ip17xx)
 endef
 
@@ -458,7 +458,7 @@  define KernelPackage/switch-rtl8306
   TITLE:=Realtek RTL8306S switch support
   DEPENDS:=+kmod-swconfig
   KCONFIG:=CONFIG_RTL8306_PHY
-  FILES:=$(LINUX_DIR)/drivers/net/phy/rtl8306.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/rtl8306.ko
   AUTOLOAD:=$(call AutoLoad,43,rtl8306)
 endef
 
@@ -474,7 +474,7 @@  define KernelPackage/switch-rtl8366-smi
   TITLE:=Realtek RTL8366 SMI switch interface support
   DEPENDS:=@GPIO_SUPPORT +kmod-swconfig +(TARGET_armsr||TARGET_bcm27xx_bcm2708||TARGET_malta||TARGET_tegra):kmod-of-mdio
   KCONFIG:=CONFIG_RTL8366_SMI
-  FILES:=$(LINUX_DIR)/drivers/net/phy/rtl8366_smi.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/rtl8366_smi.ko
   AUTOLOAD:=$(call AutoLoad,42,rtl8366_smi,1)
 endef
 
@@ -490,7 +490,7 @@  define KernelPackage/switch-rtl8366rb
   TITLE:=Realtek RTL8366RB switch support
   DEPENDS:=+kmod-switch-rtl8366-smi
   KCONFIG:=CONFIG_RTL8366RB_PHY
-  FILES:=$(LINUX_DIR)/drivers/net/phy/rtl8366rb.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/rtl8366rb.ko
   AUTOLOAD:=$(call AutoLoad,43,rtl8366rb,1)
 endef
 
@@ -506,7 +506,7 @@  define KernelPackage/switch-rtl8366s
   TITLE:=Realtek RTL8366S switch support
   DEPENDS:=+kmod-switch-rtl8366-smi
   KCONFIG:=CONFIG_RTL8366S_PHY
-  FILES:=$(LINUX_DIR)/drivers/net/phy/rtl8366s.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/rtl8366s.ko
   AUTOLOAD:=$(call AutoLoad,43,rtl8366s,1)
 endef
 
@@ -522,7 +522,7 @@  define KernelPackage/switch-rtl8367
   TITLE:=Realtek RTL8367 switch support
   DEPENDS:=+kmod-switch-rtl8366-smi
   KCONFIG:=CONFIG_RTL8367_PHY
-  FILES:=$(LINUX_DIR)/drivers/net/phy/rtl8367.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/rtl8367.ko
   AUTOLOAD:=$(call AutoLoad,43,rtl8367,1)
 endef
 
@@ -538,7 +538,7 @@  define KernelPackage/switch-rtl8367b
   TITLE:=Realtek RTL8367R/B switch support
   DEPENDS:=+kmod-switch-rtl8366-smi
   KCONFIG:=CONFIG_RTL8367B_PHY
-  FILES:=$(LINUX_DIR)/drivers/net/phy/rtl8367b.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/rtl8367b.ko
   AUTOLOAD:=$(call AutoLoad,43,rtl8367b,1)
 endef
 
@@ -554,7 +554,7 @@  define KernelPackage/switch-ar8xxx
   TITLE:=Atheros AR8216/8327 switch support
   DEPENDS:=+kmod-swconfig +kmod-mdio-devres
   KCONFIG:=CONFIG_AR8216_PHY
-  FILES:=$(LINUX_DIR)/drivers/net/phy/ar8xxx.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/ar8xxx.ko
   AUTOLOAD:=$(call AutoLoad,43,ar8xxx,1)
 endef
 
@@ -570,7 +570,7 @@  define KernelPackage/natsemi
   TITLE:=National Semiconductor DP8381x series
   DEPENDS:=@PCI_SUPPORT
   KCONFIG:=CONFIG_NATSEMI
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/natsemi/natsemi.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/natsemi/natsemi.ko
   AUTOLOAD:=$(call AutoLoad,20,natsemi)
 endef
 
@@ -588,7 +588,7 @@  define KernelPackage/r6040
   DEPENDS:=@PCI_SUPPORT +kmod-libphy
   KCONFIG:=CONFIG_R6040 \
 		CONFIG_R6040_NAPI=y
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/rdc/r6040.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/rdc/r6040.ko
   AUTOLOAD:=$(call AutoProbe,r6040)
 endef
 
@@ -604,7 +604,7 @@  define KernelPackage/niu
   TITLE:=Sun Neptune 10Gbit Ethernet support
   DEPENDS:=@PCI_SUPPORT
   KCONFIG:=CONFIG_NIU
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/sun/niu.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/sun/niu.ko
   AUTOLOAD:=$(call AutoProbe,niu)
 endef
 
@@ -620,7 +620,7 @@  define KernelPackage/sis900
   TITLE:=SiS 900 Ethernet support
   DEPENDS:=@PCI_SUPPORT +kmod-mii
   KCONFIG:=CONFIG_SIS900
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/sis/sis900.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/sis/sis900.ko
   AUTOLOAD:=$(call AutoProbe,sis900)
 endef
 
@@ -636,7 +636,7 @@  define KernelPackage/sky2
   TITLE:=SysKonnect Yukon2 support
   DEPENDS:=@PCI_SUPPORT
   KCONFIG:=CONFIG_SKY2
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/marvell/sky2.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/marvell/sky2.ko
   AUTOLOAD:=$(call AutoProbe,sky2)
 endef
 
@@ -659,7 +659,7 @@  define KernelPackage/via-rhine
   DEPENDS:=@PCI_SUPPORT +kmod-mii
   KCONFIG:=CONFIG_VIA_RHINE \
     CONFIG_VIA_RHINE_MMIO=y
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/via/via-rhine.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/via/via-rhine.ko
   AUTOLOAD:=$(call AutoProbe,via-rhine)
 endef
 
@@ -675,7 +675,7 @@  define KernelPackage/via-velocity
   TITLE:=VIA Velocity Gigabit Ethernet Adapter kernel support
   DEPENDS:=@PCI_SUPPORT +kmod-lib-crc-ccitt
   KCONFIG:=CONFIG_VIA_VELOCITY
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/via/via-velocity.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/via/via-velocity.ko
   AUTOLOAD:=$(call AutoProbe,via-velocity)
 endef
 
@@ -695,7 +695,7 @@  define KernelPackage/8139too
     CONFIG_8139TOO_TUNE_TWISTER=n \
     CONFIG_8139TOO_8129=n \
     CONFIG_8139_OLD_RX_RESET=n
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/realtek/8139too.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/realtek/8139too.ko
   AUTOLOAD:=$(call AutoProbe,8139too)
 endef
 
@@ -711,7 +711,7 @@  define KernelPackage/8139cp
   TITLE:=RealTek RTL-8139C+ PCI Fast Ethernet Adapter kernel support
   DEPENDS:=@PCI_SUPPORT +kmod-mii
   KCONFIG:=CONFIG_8139CP
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/realtek/8139cp.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/realtek/8139cp.ko
   AUTOLOAD:=$(call AutoProbe,8139cp)
 endef
 
@@ -730,7 +730,7 @@  define KernelPackage/r8169
     CONFIG_R8169 \
     CONFIG_R8169_NAPI=y \
     CONFIG_R8169_VLAN=n
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/realtek/r8169.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/realtek/r8169.ko
   AUTOLOAD:=$(call AutoProbe,r8169)
 endef
 
@@ -747,8 +747,8 @@  define KernelPackage/ne2k-pci
   DEPENDS:=@PCI_SUPPORT
   KCONFIG:=CONFIG_NE2K_PCI
   FILES:= \
-	$(LINUX_DIR)/drivers/net/ethernet/8390/ne2k-pci.ko \
-	$(LINUX_DIR)/drivers/net/ethernet/8390/8390.ko
+	$(LINUX_OBJ_DIR)/drivers/net/ethernet/8390/ne2k-pci.ko \
+	$(LINUX_OBJ_DIR)/drivers/net/ethernet/8390/8390.ko
   AUTOLOAD:=$(call AutoProbe,8390 ne2k-pci)
 endef
 
@@ -764,7 +764,7 @@  define KernelPackage/e100
   TITLE:=Intel(R) PRO/100+ cards kernel support
   DEPENDS:=@PCI_SUPPORT +kmod-mii +e100-firmware
   KCONFIG:=CONFIG_E100
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/intel/e100.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/intel/e100.ko
   AUTOLOAD:=$(call AutoProbe,e100)
 endef
 
@@ -782,7 +782,7 @@  define KernelPackage/e1000
   KCONFIG:=CONFIG_E1000 \
     CONFIG_E1000_DISABLE_PACKET_SPLIT=n \
     CONFIG_E1000_NAPI=y
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/intel/e1000/e1000.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/intel/e1000/e1000.ko
   AUTOLOAD:=$(call AutoLoad,35,e1000)
 endef
 
@@ -798,7 +798,7 @@  define KernelPackage/e1000e
   TITLE:=Intel(R) PRO/1000 PCIe cards kernel support
   DEPENDS:=@PCIE_SUPPORT +kmod-ptp
   KCONFIG:=CONFIG_E1000E
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/intel/e1000e/e1000e.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/intel/e1000e/e1000e.ko
   AUTOLOAD:=$(call AutoProbe,e1000e)
   MODPARAMS.e1000e:= \
     IntMode=1 \
@@ -819,7 +819,7 @@  define KernelPackage/igb
   KCONFIG:=CONFIG_IGB \
     CONFIG_IGB_HWMON=y \
     CONFIG_IGB_DCA=n
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/intel/igb/igb.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/intel/igb/igb.ko
   AUTOLOAD:=$(call AutoLoad,35,igb,1)
 endef
 
@@ -837,7 +837,7 @@  define KernelPackage/igbvf
   KCONFIG:=CONFIG_IGBVF \
     CONFIG_IGB_HWMON=y \
     CONFIG_IGB_DCA=n
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/intel/igbvf/igbvf.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/intel/igbvf/igbvf.ko
   AUTOLOAD:=$(call AutoLoad,35,igbvf)
 endef
 
@@ -856,7 +856,7 @@  define KernelPackage/ixgbe
     CONFIG_IXGBE_VXLAN=n \
     CONFIG_IXGBE_HWMON=y \
     CONFIG_IXGBE_DCA=n
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/intel/ixgbe/ixgbe.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/intel/ixgbe/ixgbe.ko
   AUTOLOAD:=$(call AutoLoad,35,ixgbe)
 endef
 
@@ -875,7 +875,7 @@  define KernelPackage/ixgbevf
     CONFIG_IXGBE_VXLAN=n \
     CONFIG_IXGBE_HWMON=y \
     CONFIG_IXGBE_DCA=n
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko
   AUTOLOAD:=$(call AutoLoad,35,ixgbevf)
 endef
 
@@ -894,7 +894,7 @@  define KernelPackage/i40e
     CONFIG_I40E_VXLAN=n \
     CONFIG_I40E_HWMON=y \
     CONFIG_I40E_DCA=n
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/intel/i40e/i40e.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/intel/i40e/i40e.ko
   AUTOLOAD:=$(call AutoProbe,i40e)
 endef
 
@@ -913,7 +913,7 @@  define KernelPackage/iavf
        CONFIG_I40EVF \
        CONFIG_IAVF
   FILES:= \
-       $(LINUX_DIR)/drivers/net/ethernet/intel/iavf/iavf.ko
+       $(LINUX_OBJ_DIR)/drivers/net/ethernet/intel/iavf/iavf.ko
   AUTOLOAD:=$(call AutoProbe,i40evf iavf)
   AUTOLOAD:=$(call AutoProbe,iavf)
 endef
@@ -932,7 +932,7 @@  define KernelPackage/b44
   KCONFIG:=CONFIG_B44
   DEPENDS:=@PCI_SUPPORT @!TARGET_bcm47xx_mips74k +!TARGET_bcm47xx:kmod-ssb +kmod-mii +kmod-libphy
   SUBMENU:=$(NETWORK_DEVICES_MENU)
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/broadcom/b44.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/broadcom/b44.ko
   AUTOLOAD:=$(call AutoLoad,19,b44,1)
 endef
 
@@ -948,7 +948,7 @@  define KernelPackage/3c59x
   TITLE:=3Com 3c590/3c900 series (592/595/597) Vortex/Boomerang
   DEPENDS:=@PCI_SUPPORT +kmod-mii
   KCONFIG:=CONFIG_VORTEX
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/3com/3c59x.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/3com/3c59x.ko
   AUTOLOAD:=$(call AutoProbe,3c59x)
 endef
 
@@ -970,7 +970,7 @@  define KernelPackage/pcnet32
   TITLE:=AMD PCnet32 PCI support
   DEPENDS:=@(PCI_SUPPORT||TARGET_malta) +kmod-mii
   KCONFIG:=CONFIG_PCNET32
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/amd/pcnet32.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/amd/pcnet32.ko
   AUTOLOAD:=$(call AutoProbe,pcnet32)
 endef
 
@@ -987,7 +987,7 @@  define KernelPackage/tg3
 	CONFIG_TIGON3_HWMON=n
   DEPENDS:=@PCI_SUPPORT +!TARGET_bcm47xx:kmod-libphy +kmod-ptp
   SUBMENU:=$(NETWORK_DEVICES_MENU)
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/broadcom/tg3.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/broadcom/tg3.ko
   AUTOLOAD:=$(call AutoLoad,19,tg3,1)
 endef
 
@@ -1003,7 +1003,7 @@  define KernelPackage/hfcpci
   KCONFIG:=CONFIG_MISDN_HFCPCI
   DEPENDS:=@PCI_SUPPORT +kmod-misdn
   SUBMENU:=$(NETWORK_DEVICES_MENU)
-  FILES:=$(LINUX_DIR)/drivers/isdn/hardware/mISDN/hfcpci.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/isdn/hardware/mISDN/hfcpci.ko
   AUTOLOAD:=$(call AutoLoad,31,hfcpci)
 endef
 
@@ -1020,7 +1020,7 @@  define KernelPackage/hfcmulti
   KCONFIG:=CONFIG_MISDN_HFCMULTI
   DEPENDS:=@PCI_SUPPORT +kmod-misdn
   SUBMENU:=$(NETWORK_DEVICES_MENU)
-  FILES:=$(LINUX_DIR)/drivers/isdn/hardware/mISDN/hfcmulti.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/isdn/hardware/mISDN/hfcmulti.ko
   AUTOLOAD:=$(call AutoLoad,31,hfcmulti)
 endef
 
@@ -1036,7 +1036,7 @@  define KernelPackage/macvlan
   SUBMENU:=$(NETWORK_DEVICES_MENU)
   TITLE:=MAC-VLAN support
   KCONFIG:=CONFIG_MACVLAN
-  FILES:=$(LINUX_DIR)/drivers/net/macvlan.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/macvlan.ko
   AUTOLOAD:=$(call AutoProbe,macvlan)
 endef
 
@@ -1052,7 +1052,7 @@  define KernelPackage/ipvlan
   SUBMENU:=$(NETWORK_DEVICES_MENU)
   TITLE:=IP-VLAN support
   KCONFIG:=CONFIG_IPVLAN
-  FILES:=$(LINUX_DIR)/drivers/net/ipvlan/ipvlan.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ipvlan/ipvlan.ko
   AUTOLOAD:=$(call AutoProbe,ipvlan)
 endef
 
@@ -1082,11 +1082,11 @@  define KernelPackage/tulip
     CONFIG_DM9102 \
     CONFIG_ULI526X
   FILES:= \
-	$(LINUX_DIR)/drivers/net/ethernet/dec/tulip/tulip.ko \
-	$(LINUX_DIR)/drivers/net/ethernet/dec/tulip/de2104x.ko \
-	$(LINUX_DIR)/drivers/net/ethernet/dec/tulip/dmfe.ko \
-	$(LINUX_DIR)/drivers/net/ethernet/dec/tulip/uli526x.ko \
-	$(LINUX_DIR)/drivers/net/ethernet/dec/tulip/winbond-840.ko
+	$(LINUX_OBJ_DIR)/drivers/net/ethernet/dec/tulip/tulip.ko \
+	$(LINUX_OBJ_DIR)/drivers/net/ethernet/dec/tulip/de2104x.ko \
+	$(LINUX_OBJ_DIR)/drivers/net/ethernet/dec/tulip/dmfe.ko \
+	$(LINUX_OBJ_DIR)/drivers/net/ethernet/dec/tulip/uli526x.ko \
+	$(LINUX_OBJ_DIR)/drivers/net/ethernet/dec/tulip/winbond-840.ko
   AUTOLOAD:=$(call AutoProbe,tulip)
 endef
 
@@ -1104,7 +1104,7 @@  define KernelPackage/solos-pci
   TITLE:=Solos ADSL2+ multiport modem
   DEPENDS:=@PCI_SUPPORT +kmod-atm
   KCONFIG:=CONFIG_ATM_SOLOS
-  FILES:=$(LINUX_DIR)/drivers/atm/solos-pci.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/atm/solos-pci.ko
   AUTOLOAD:=$(call AutoProbe,solos-pci)
 endef
 
@@ -1120,7 +1120,7 @@  define KernelPackage/dummy
   SUBMENU:=$(NETWORK_DEVICES_MENU)
   TITLE:=Dummy network device
   KCONFIG:=CONFIG_DUMMY
-  FILES:=$(LINUX_DIR)/drivers/net/dummy.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/dummy.ko
   AUTOLOAD:=$(call AutoLoad,34,dummy)
 endef
 
@@ -1137,7 +1137,7 @@  define KernelPackage/ifb
   KCONFIG:= \
 	CONFIG_IFB \
 	CONFIG_NET_CLS=y
-  FILES:=$(LINUX_DIR)/drivers/net/ifb.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ifb.ko
   AUTOLOAD:=$(call AutoLoad,34,ifb)
   MODPARAMS.ifb:=numifbs=0
 endef
@@ -1156,7 +1156,7 @@  define KernelPackage/dm9000
   KCONFIG:=CONFIG_DM9000 \
     CONFIG_DM9000_DEBUGLEVEL=4 \
     CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL=y
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/davicom/dm9000.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/davicom/dm9000.ko
   AUTOLOAD:=$(call AutoLoad,34,dm9000)
 endef
 
@@ -1172,7 +1172,7 @@  define KernelPackage/forcedeth
   TITLE:=nForce Ethernet support
   DEPENDS:=@PCI_SUPPORT
   KCONFIG:=CONFIG_FORCEDETH
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/nvidia/forcedeth.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/nvidia/forcedeth.ko
   AUTOLOAD:=$(call AutoProbe,forcedeth)
 endef
 
@@ -1187,7 +1187,7 @@  define KernelPackage/fixed-phy
   TITLE:=MDIO Bus/PHY emulation with fixed speed/link PHYs
   DEPENDS:=+kmod-libphy
   KCONFIG:=CONFIG_FIXED_PHY
-  FILES:=$(LINUX_DIR)/drivers/net/phy/fixed_phy.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/fixed_phy.ko
   AUTOLOAD:=$(call AutoProbe,fixed_phy)
 endef
 
@@ -1204,8 +1204,8 @@  define KernelPackage/of-mdio
   DEPENDS:=+kmod-libphy +kmod-fixed-phy @!TARGET_x86
   KCONFIG:=CONFIG_OF_MDIO
   FILES:= \
-	$(LINUX_DIR)/drivers/net/mdio/of_mdio.ko \
-	$(LINUX_DIR)/drivers/net/mdio/fwnode_mdio.ko
+	$(LINUX_OBJ_DIR)/drivers/net/mdio/of_mdio.ko \
+	$(LINUX_OBJ_DIR)/drivers/net/mdio/fwnode_mdio.ko
   AUTOLOAD:=$(call AutoLoad,41,of_mdio)
 endef
 
@@ -1221,7 +1221,7 @@  define KernelPackage/vmxnet3
   TITLE:=VMware VMXNET3 ethernet driver
   DEPENDS:=@PCI_SUPPORT
   KCONFIG:=CONFIG_VMXNET3
-  FILES:=$(LINUX_DIR)/drivers/net/vmxnet3/vmxnet3.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/vmxnet3/vmxnet3.ko
   AUTOLOAD:=$(call AutoLoad,35,vmxnet3)
 endef
 
@@ -1235,7 +1235,7 @@  $(eval $(call KernelPackage,vmxnet3))
 define KernelPackage/spi-ks8995
   SUBMENU:=$(NETWORK_DEVICES_MENU)
   TITLE:=Micrel/Kendin KS8995 Ethernet switch control
-  FILES:=$(LINUX_DIR)/drivers/net/phy/spi_ks8995.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/phy/spi_ks8995.ko
   KCONFIG:=CONFIG_MICREL_KS8995MA \
 	CONFIG_SPI=y \
 	CONFIG_SPI_MASTER=y
@@ -1253,7 +1253,7 @@  define KernelPackage/ethoc
   SUBMENU:=$(NETWORK_DEVICES_MENU)
   TITLE:=Opencore.org ethoc driver
   DEPENDS:=+kmod-libphy
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/ethoc.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/ethoc.ko
   KCONFIG:=CONFIG_ETHOC
   AUTOLOAD:=$(call AutoProbe,ethoc)
 endef
@@ -1269,7 +1269,7 @@  define KernelPackage/bnx2
   SUBMENU:=$(NETWORK_DEVICES_MENU)
   TITLE:=BCM5706/5708/5709/5716 ethernet adapter driver
   DEPENDS:=@PCI_SUPPORT +bnx2-firmware
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/broadcom/bnx2.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/broadcom/bnx2.ko
   KCONFIG:=CONFIG_BNX2
   AUTOLOAD:=$(call AutoProbe,bnx2)
 endef
@@ -1285,7 +1285,7 @@  define KernelPackage/bnx2x
   SUBMENU:=$(NETWORK_DEVICES_MENU)
   TITLE:=QLogic 5771x/578xx 10/20-Gigabit ethernet adapter driver
   DEPENDS:=@PCI_SUPPORT +bnx2x-firmware +kmod-lib-crc32c +kmod-mdio +kmod-ptp +kmod-lib-zlib-inflate
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/broadcom/bnx2x/bnx2x.ko
   KCONFIG:= \
 	CONFIG_BNX2X \
 	CONFIG_BNX2X_SRIOV=y
@@ -1302,7 +1302,7 @@  define KernelPackage/be2net
   SUBMENU:=$(NETWORK_DEVICES_MENU)
   TITLE:=Broadcom Emulex OneConnect 10Gbps NIC
   DEPENDS:=@PCI_SUPPORT +kmod-hwmon-core
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/emulex/benet/be2net.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/emulex/benet/be2net.ko
   KCONFIG:= \
 	CONFIG_BE2NET \
 	CONFIG_BE2NET_BE2=y \
@@ -1324,8 +1324,8 @@  define KernelPackage/mlx4-core
   TITLE:=Mellanox ConnectX(R) mlx4 core Network Driver
   DEPENDS:=@PCI_SUPPORT +kmod-ptp
   FILES:= \
-	$(LINUX_DIR)/drivers/net/ethernet/mellanox/mlx4/mlx4_core.ko \
-	$(LINUX_DIR)/drivers/net/ethernet/mellanox/mlx4/mlx4_en.ko
+	$(LINUX_OBJ_DIR)/drivers/net/ethernet/mellanox/mlx4/mlx4_core.ko \
+	$(LINUX_OBJ_DIR)/drivers/net/ethernet/mellanox/mlx4/mlx4_en.ko
   KCONFIG:= CONFIG_MLX4_EN \
 	CONFIG_MLX4_EN_DCB=n \
 	CONFIG_MLX4_CORE=y \
@@ -1344,7 +1344,7 @@  define KernelPackage/mlx5-core
   SUBMENU:=$(NETWORK_DEVICES_MENU)
   TITLE:=Mellanox ConnectX(R) mlx5 core Network Driver
   DEPENDS:=@PCI_SUPPORT +kmod-ptp +kmod-mlxfw
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko
   KCONFIG:= CONFIG_MLX5_CORE \
 	CONFIG_MLX5_CORE_EN=y \
 	CONFIG_MLX5_CORE_EN_DCB=n \
@@ -1375,7 +1375,7 @@  $(eval $(call KernelPackage,mlx5-core))
 define KernelPackage/mlxfw
   SUBMENU:=$(NETWORK_DEVICES_MENU)
   TITLE:=Mellanox Technologies firmware flash module
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/mellanox/mlxfw/mlxfw.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/mellanox/mlxfw/mlxfw.ko
   KCONFIG:=CONFIG_MLXFW
   AUTOLOAD:=$(call AutoProbe,mlxfw)
 endef
@@ -1392,7 +1392,7 @@  define KernelPackage/mlxsw-core
   SUBMENU:=$(NETWORK_DEVICES_MENU)
   TITLE:=Mellanox Technologies Switch ASICs support
   DEPENDS:=+kmod-mlxfw +kmod-hwmon-core
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/mellanox/mlxsw/mlxsw_core.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/mellanox/mlxsw/mlxsw_core.ko
   KCONFIG:= \
   CONFIG_MLXSW_CORE \
   CONFIG_MLXSW_CORE_HWMON=y \
@@ -1411,7 +1411,7 @@  define KernelPackage/mlxsw-i2c
   SUBMENU:=$(NETWORK_DEVICES_MENU)
   TITLE:=I2C bus implementation for Mellanox Technologies Switch ASICs
   DEPENDS:=+kmod-mlxsw-core +kmod-i2c-core
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c.ko
   KCONFIG:=CONFIG_MLXSW_I2C
   AUTOLOAD:=$(call AutoProbe,mlxsw_i2c)
 endef
@@ -1427,7 +1427,7 @@  define KernelPackage/mlxsw-minimal
   SUBMENU:=$(NETWORK_DEVICES_MENU)
   TITLE:=Mellanox Technologies minimal I2C support
   DEPENDS:=+kmod-mlxsw-core +kmod-mlxsw-i2c
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/mellanox/mlxsw/mlxsw_minimal.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/mellanox/mlxsw/mlxsw_minimal.ko
   KCONFIG:=CONFIG_MLXSW_MINIMAL
   AUTOLOAD:=$(call AutoProbe,mlxsw_minimal)
 endef
@@ -1444,7 +1444,7 @@  define KernelPackage/mlxsw-pci
   SUBMENU:=$(NETWORK_DEVICES_MENU)
   TITLE:=PCI bus implementation for Mellanox Technologies Switch ASICs
   DEPENDS:=@PCI_SUPPORT +kmod-mlxsw-core
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci.ko
   KCONFIG:=CONFIG_MLXSW_PCI
   AUTOLOAD:=$(call AutoProbe,mlxsw_pci)
 endef
@@ -1462,7 +1462,7 @@  define KernelPackage/mlxsw-spectrum
   DEPENDS:= \
   +kmod-mlxsw-core +kmod-mlxsw-pci +kmod-lib-objagg +kmod-lib-parman \
   +kmod-ip6-tunnel +kmod-ptp +kmod-sched-act-sample +kmod-vxlan
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/mellanox/mlxsw/mlxsw_spectrum.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/mellanox/mlxsw/mlxsw_spectrum.ko
   KCONFIG:= \
   CONFIG_MLXSW_SPECTRUM \
   CONFIG_NET_SWITCHDEV=y \
@@ -1490,7 +1490,7 @@  define KernelPackage/net-selftests
   DEPENDS:=+kmod-libphy
   TITLE:=Network generic selftest support
   KCONFIG:=CONFIG_NET_SELFTESTS
-  FILES:=$(LINUX_DIR)/net/core/selftests.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/core/selftests.ko
   AUTOLOAD:=$(call AutoLoad,99,selftests)
 endef
 
@@ -1509,7 +1509,7 @@  define KernelPackage/qlcnic
 	CONFIG_QLCNIC \
 	CONFIG_QLCNIC_HWMON=y \
 	CONFIG_QLCNIC_SRIOV=y
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/qlogic/qlcnic/qlcnic.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/qlogic/qlcnic/qlcnic.ko
   AUTOLOAD:=$(call AutoProbe,qlcnic)
 endef
 
@@ -1529,8 +1529,8 @@  define KernelPackage/sfp
 	CONFIG_SFP \
 	CONFIG_MDIO_I2C
   FILES:= \
-	$(LINUX_DIR)/drivers/net/phy/sfp.ko \
-	$(LINUX_DIR)/drivers/net/mdio/mdio-i2c.ko
+	$(LINUX_OBJ_DIR)/drivers/net/phy/sfp.ko \
+	$(LINUX_OBJ_DIR)/drivers/net/mdio/mdio-i2c.ko
   AUTOLOAD:=$(call AutoProbe,mdio-i2c sfp)
 endef
 
@@ -1545,7 +1545,7 @@  define KernelPackage/igc
   TITLE:=Intel(R) Ethernet Controller I225 Series support
   DEPENDS:=@PCI_SUPPORT +kmod-ptp
   KCONFIG:=CONFIG_IGC
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/intel/igc/igc.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/intel/igc/igc.ko
   AUTOLOAD:=$(call AutoProbe,igc)
 endef
 
@@ -1565,7 +1565,7 @@  define KernelPackage/sfc
 	CONFIG_SFC_MCDI_MON=y \
 	CONFIG_SFC_MCDI_LOGGING=y \
 	CONFIG_SFC_SRIOV=y
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/sfc/sfc.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/sfc/sfc.ko
   AUTOLOAD:=$(call AutoProbe,sfc)
 endef
 
@@ -1583,7 +1583,7 @@  define KernelPackage/sfc-falcon
   KCONFIG:= \
 	CONFIG_SFC_FALCON \
 	CONFIG_SFC_FALCON_MTD=y
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/sfc/falcon/sfc-falcon.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/sfc/falcon/sfc-falcon.ko
   AUTOLOAD:=$(call AutoProbe,sfc-falcon)
 endef
 
@@ -1600,7 +1600,7 @@  define KernelPackage/wwan
   KCONFIG:= \
   CONFIG_WWAN \
   CONFIG_WWAN_DEBUGFS=y@ge5.17
-  FILES:=$(LINUX_DIR)/drivers/net/wwan/wwan.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/wwan/wwan.ko
   AUTOLOAD:=$(call AutoProbe,wwan)
 endef
 
@@ -1616,7 +1616,7 @@  define KernelPackage/mhi-net
   TITLE:=MHI Network Device
   DEPENDS:=@PCI_SUPPORT +kmod-mhi-bus
   KCONFIG:=CONFIG_MHI_NET
-  FILES:=$(LINUX_DIR)/drivers/net/mhi_net.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/mhi_net.ko
   AUTOLOAD:=$(call AutoProbe,mhi_net)
 endef
 
@@ -1631,7 +1631,7 @@  define KernelPackage/mhi-wwan-ctrl
   TITLE:=MHI WWAN Control
   DEPENDS:=@PCI_SUPPORT +kmod-mhi-bus +kmod-wwan
   KCONFIG:=CONFIG_MHI_WWAN_CTRL
-  FILES:=$(LINUX_DIR)/drivers/net/wwan/mhi_wwan_ctrl.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/wwan/mhi_wwan_ctrl.ko
   AUTOLOAD:=$(call AutoProbe,mhi_wwan_ctrl)
 endef
 
@@ -1647,7 +1647,7 @@  define KernelPackage/mhi-wwan-mbim
   TITLE:=MHI MBIM
   DEPENDS:=@PCI_SUPPORT +kmod-mhi-bus +kmod-wwan
   KCONFIG:=CONFIG_MHI_WWAN_MBIM
-  FILES:=$(LINUX_DIR)/drivers/net/wwan/mhi_wwan_mbim.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/wwan/mhi_wwan_mbim.ko
   AUTOLOAD:=$(call AutoProbe,mhi_wwan_mbim)
 endef
 
@@ -1663,7 +1663,7 @@  define KernelPackage/atlantic
   TITLE:=Aquantia AQtion 10Gbps Ethernet NIC
   DEPENDS:=@PCI_SUPPORT +kmod-ptp +kmod-hwmon-core +kmod-macsec
   KCONFIG:=CONFIG_AQTION
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/aquantia/atlantic/atlantic.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/aquantia/atlantic/atlantic.ko
   AUTOLOAD:=$(call AutoProbe,atlantic)
 endef
 
@@ -1679,7 +1679,7 @@  define KernelPackage/lan743x
   TITLE:=Microchip LAN743x PCI Express Gigabit Ethernet NIC
   DEPENDS:=@PCI_SUPPORT +kmod-ptp +kmod-mdio-devres
   KCONFIG:=CONFIG_LAN743X
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/microchip/lan743x.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/microchip/lan743x.ko
   AUTOLOAD:=$(call AutoProbe,lan743x)
 endef
 
@@ -1694,7 +1694,7 @@  define KernelPackage/amazon-ena
   TITLE:=Elastic Network Adapter (for Amazon AWS)
   DEPENDS:=@TARGET_x86_64||TARGET_armsr_armv8
   KCONFIG:=CONFIG_ENA_ETHERNET
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/amazon/ena/ena.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/amazon/ena/ena.ko
   AUTOLOAD:=$(call AutoLoad,12,ena)
 endef
 
diff --git a/package/kernel/linux/modules/netfilter.mk b/package/kernel/linux/modules/netfilter.mk
index da3e69e49a..3765a77258 100644
--- a/package/kernel/linux/modules/netfilter.mk
+++ b/package/kernel/linux/modules/netfilter.mk
@@ -18,7 +18,7 @@  define KernelPackage/nf-reject
 	CONFIG_NETFILTER=y \
 	CONFIG_NETFILTER_ADVANCED=y \
 	$(KCONFIG_NF_REJECT)
-  FILES:=$(foreach mod,$(NF_REJECT-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NF_REJECT-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_REJECT-m)))
 endef
 
@@ -33,7 +33,7 @@  define KernelPackage/nf-reject6
 	CONFIG_NETFILTER_ADVANCED=y \
 	$(KCONFIG_NF_REJECT6)
   DEPENDS:=@IPV6
-  FILES:=$(foreach mod,$(NF_REJECT6-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NF_REJECT6-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_REJECT6-m)))
 endef
 
@@ -45,7 +45,7 @@  define KernelPackage/nf-conncount
   KCONFIG:=$(KCONFIG_NF_CONNCOUNT)
   HIDDEN:=1
   DEPENDS:=+kmod-nf-conntrack
-  FILES:=$(foreach mod,$(NF_CONNCOUNT-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NF_CONNCOUNT-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_CONNCOUNT-m)))
 endef
 
@@ -55,7 +55,7 @@  define KernelPackage/nf-ipt
   SUBMENU:=$(NF_MENU)
   TITLE:=Iptables core
   KCONFIG:=$(KCONFIG_NF_IPT)
-  FILES:=$(foreach mod,$(NF_IPT-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NF_IPT-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_IPT-m)))
 endef
 
@@ -66,7 +66,7 @@  define KernelPackage/nf-ipt6
   SUBMENU:=$(NF_MENU)
   TITLE:=Ip6tables core
   KCONFIG:=$(KCONFIG_NF_IPT6)
-  FILES:=$(foreach mod,$(NF_IPT6-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NF_IPT6-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_IPT6-m)))
   DEPENDS:=+kmod-nf-ipt +kmod-nf-log6
 endef
@@ -79,7 +79,7 @@  define KernelPackage/ipt-core
   SUBMENU:=$(NF_MENU)
   TITLE:=Iptables core
   KCONFIG:=$(KCONFIG_IPT_CORE)
-  FILES:=$(foreach mod,$(IPT_CORE-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_CORE-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CORE-m)))
   DEPENDS:=+kmod-nf-reject +kmod-nf-ipt +kmod-nf-log
 endef
@@ -108,7 +108,7 @@  define KernelPackage/nf-conntrack
         CONFIG_NF_CONNTRACK_MARK=y \
         CONFIG_NF_CONNTRACK_ZONES=y \
 	$(KCONFIG_NF_CONNTRACK)
-  FILES:=$(foreach mod,$(NF_CONNTRACK-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NF_CONNTRACK-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_CONNTRACK-m)))
 endef
 
@@ -125,7 +125,7 @@  define KernelPackage/nf-conntrack6
   TITLE:=Netfilter IPv6 connection tracking
   KCONFIG:=$(KCONFIG_NF_CONNTRACK6)
   DEPENDS:=@IPV6 +kmod-nf-conntrack
-  FILES:=$(foreach mod,$(NF_CONNTRACK6-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NF_CONNTRACK6-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_CONNTRACK6-m)))
 endef
 
@@ -136,7 +136,7 @@  define KernelPackage/nf-log
   SUBMENU:=$(NF_MENU)
   TITLE:=Netfilter Logging
   KCONFIG:=$(KCONFIG_NF_LOG)
-  FILES:=$(foreach mod,$(NF_LOG-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NF_LOG-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_LOG-m)))
 endef
 
@@ -148,7 +148,7 @@  define KernelPackage/nf-log6
   TITLE:=Netfilter IPV6 Logging
   KCONFIG:=$(KCONFIG_NF_LOG6)
   DEPENDS:=@IPV6 +kmod-nf-log
-  FILES:=$(foreach mod,$(NF_LOG6-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NF_LOG6-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_LOG6-m)))
 endef
 
@@ -160,7 +160,7 @@  define KernelPackage/nf-nat
   TITLE:=Netfilter NAT
   KCONFIG:=$(KCONFIG_NF_NAT)
   DEPENDS:=+kmod-nf-conntrack
-  FILES:=$(foreach mod,$(NF_NAT-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NF_NAT-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_NAT-m)))
 endef
 
@@ -172,7 +172,7 @@  define KernelPackage/nf-nat6
   TITLE:=Netfilter IPV6-NAT
   KCONFIG:=$(KCONFIG_NF_NAT6)
   DEPENDS:=@IPV6 +kmod-nf-conntrack6 +kmod-nf-nat
-  FILES:=$(foreach mod,$(NF_NAT6-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NF_NAT6-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_NAT6-m)))
 endef
 
@@ -187,7 +187,7 @@  define KernelPackage/nf-flow
 	CONFIG_NF_FLOW_TABLE \
 	CONFIG_NF_FLOW_TABLE_HW
   DEPENDS:=+kmod-nf-conntrack
-  FILES:= $(LINUX_DIR)/net/netfilter/nf_flow_table.ko
+  FILES:= $(LINUX_OBJ_DIR)/net/netfilter/nf_flow_table.ko
   AUTOLOAD:=$(call AutoProbe,nf_flow_table nf_flow_table_hw)
 endef
 
@@ -198,7 +198,7 @@  define KernelPackage/nf-socket
   SUBMENU:=$(NF_MENU)
   TITLE:=Netfilter socket lookup support
   KCONFIG:= $(KCONFIG_NF_SOCKET)
-  FILES:=$(foreach mod,$(NF_SOCKET-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NF_SOCKET-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_SOCKET-m)))
 endef
 
@@ -209,7 +209,7 @@  define KernelPackage/nf-tproxy
   SUBMENU:=$(NF_MENU)
   TITLE:=Netfilter tproxy support
   KCONFIG:= $(KCONFIG_NF_TPROXY)
-  FILES:=$(foreach mod,$(NF_TPROXY-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NF_TPROXY-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_TPROXY-m)))
 endef
 
@@ -225,7 +225,7 @@  endef
 define KernelPackage/ipt-conntrack
   TITLE:=Basic connection tracking modules
   KCONFIG:=$(KCONFIG_IPT_CONNTRACK)
-  FILES:=$(foreach mod,$(IPT_CONNTRACK-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_CONNTRACK-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CONNTRACK-m)))
   $(call AddDepends/ipt,+kmod-nf-conntrack)
 endef
@@ -247,7 +247,7 @@  define KernelPackage/ipt-conntrack-extra
   TITLE:=Extra connection tracking modules
   DEPENDS:=+kmod-nf-conncount
   KCONFIG:=$(KCONFIG_IPT_CONNTRACK_EXTRA)
-  FILES:=$(foreach mod,$(IPT_CONNTRACK_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_CONNTRACK_EXTRA-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CONNTRACK_EXTRA-m)))
   $(call AddDepends/ipt,+kmod-ipt-conntrack)
 endef
@@ -267,7 +267,7 @@  $(eval $(call KernelPackage,ipt-conntrack-extra))
 define KernelPackage/ipt-conntrack-label
   TITLE:=Module for handling connection tracking labels
   KCONFIG:=$(KCONFIG_IPT_CONNTRACK_LABEL)
-  FILES:=$(foreach mod,$(IPT_CONNTRACK_LABEL-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_CONNTRACK_LABEL-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CONNTRACK_LABEL-m)))
   $(call AddDepends/ipt,+kmod-ipt-conntrack)
 endef
@@ -283,7 +283,7 @@  $(eval $(call KernelPackage,ipt-conntrack-label))
 define KernelPackage/ipt-filter
   TITLE:=Modules for packet content inspection
   KCONFIG:=$(KCONFIG_IPT_FILTER)
-  FILES:=$(foreach mod,$(IPT_FILTER-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_FILTER-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_FILTER-m)))
   $(call AddDepends/ipt,+kmod-lib-textsearch +kmod-ipt-conntrack)
 endef
@@ -301,7 +301,7 @@  $(eval $(call KernelPackage,ipt-filter))
 define KernelPackage/ipt-offload
   TITLE:=Netfilter routing/NAT offload support
   KCONFIG:=$(KCONFIG_IPT_FLOW)
-  FILES:=$(foreach mod,$(IPT_FLOW-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_FLOW-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_FLOW-m)))
   $(call AddDepends/ipt,+kmod-nf-flow)
 endef
@@ -312,7 +312,7 @@  $(eval $(call KernelPackage,ipt-offload))
 define KernelPackage/ipt-ipopt
   TITLE:=Modules for matching/changing IP packet options
   KCONFIG:=$(KCONFIG_IPT_IPOPT)
-  FILES:=$(foreach mod,$(IPT_IPOPT-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_IPOPT-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_IPOPT-m)))
   $(call AddDepends/ipt)
 endef
@@ -339,7 +339,7 @@  $(eval $(call KernelPackage,ipt-ipopt))
 define KernelPackage/ipt-ipsec
   TITLE:=Modules for matching IPSec packets
   KCONFIG:=$(KCONFIG_IPT_IPSEC)
-  FILES:=$(foreach mod,$(IPT_IPSEC-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_IPSEC-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_IPSEC-m)))
   $(call AddDepends/ipt)
 endef
@@ -399,7 +399,7 @@  define KernelPackage/ipt-ipset
 	CONFIG_IP_SET_HASH_NETPORTNET \
 	CONFIG_IP_SET_LIST_SET \
 	CONFIG_NET_EMATCH_IPSET=n
-  FILES:=$(foreach mod,$(IPSET_MODULES),$(LINUX_DIR)/net/netfilter/$(mod).ko)
+  FILES:=$(foreach mod,$(IPSET_MODULES),$(LINUX_OBJ_DIR)/net/netfilter/$(mod).ko)
   AUTOLOAD:=$(call AutoLoad,49,$(notdir $(IPSET_MODULES)))
 endef
 $(eval $(call KernelPackage,ipt-ipset))
@@ -451,7 +451,7 @@  define KernelPackage/nf-ipvs
 	CONFIG_IP_VS_SH_TAB_BITS=8 \
 	CONFIG_IP_VS_NFCT=y \
 	CONFIG_NETFILTER_XT_MATCH_IPVS
-  FILES:=$(foreach mod,$(IPVS_MODULES),$(LINUX_DIR)/net/netfilter/$(mod).ko)
+  FILES:=$(foreach mod,$(IPVS_MODULES),$(LINUX_OBJ_DIR)/net/netfilter/$(mod).ko)
   $(call AddDepends/ipt,+kmod-ipt-conntrack,+kmod-nf-conntrack)
 endef
 
@@ -468,7 +468,7 @@  define KernelPackage/nf-ipvs-ftp
   TITLE:=Virtual Server FTP protocol support
   KCONFIG:=CONFIG_IP_VS_FTP
   DEPENDS:=kmod-nf-ipvs +kmod-nf-nat +kmod-nf-nathelper
-  FILES:=$(LINUX_DIR)/net/netfilter/ipvs/ip_vs_ftp.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/netfilter/ipvs/ip_vs_ftp.ko
 endef
 
 define KernelPackage/nf-ipvs-ftp/description
@@ -487,7 +487,7 @@  define KernelPackage/nf-ipvs-sip
   TITLE:=Virtual Server SIP protocol support
   KCONFIG:=CONFIG_IP_VS_PE_SIP
   DEPENDS:=kmod-nf-ipvs +kmod-nf-nathelper-extra
-  FILES:=$(LINUX_DIR)/net/netfilter/ipvs/ip_vs_pe_sip.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/netfilter/ipvs/ip_vs_pe_sip.ko
 endef
 
 define KernelPackage/nf-ipvs-sip/description
@@ -500,7 +500,7 @@  $(eval $(call KernelPackage,nf-ipvs-sip))
 define KernelPackage/ipt-nat
   TITLE:=Basic NAT targets
   KCONFIG:=$(KCONFIG_IPT_NAT)
-  FILES:=$(foreach mod,$(IPT_NAT-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_NAT-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_NAT-m)))
   $(call AddDepends/ipt,+kmod-nf-nat)
 endef
@@ -517,7 +517,7 @@  $(eval $(call KernelPackage,ipt-nat))
 define KernelPackage/ipt-raw
   TITLE:=Netfilter IPv4 raw table support
   KCONFIG:=CONFIG_IP_NF_RAW
-  FILES:=$(LINUX_DIR)/net/ipv4/netfilter/iptable_raw.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/ipv4/netfilter/iptable_raw.ko
   AUTOLOAD:=$(call AutoProbe,iptable_raw)
   $(call AddDepends/ipt)
 endef
@@ -529,7 +529,7 @@  define KernelPackage/ipt-raw6
   TITLE:=Netfilter IPv6 raw table support
   DEPENDS:=@IPV6
   KCONFIG:=CONFIG_IP6_NF_RAW
-  FILES:=$(LINUX_DIR)/net/ipv6/netfilter/ip6table_raw.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/ipv6/netfilter/ip6table_raw.ko
   AUTOLOAD:=$(call AutoProbe,ip6table_raw)
   $(call AddDepends/ipt,+kmod-ip6tables)
 endef
@@ -541,7 +541,7 @@  define KernelPackage/ipt-nat6
   TITLE:=IPv6 NAT targets
   DEPENDS:=@IPV6
   KCONFIG:=$(KCONFIG_IPT_NAT6)
-  FILES:=$(foreach mod,$(IPT_NAT6-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_NAT6-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoLoad,43,$(notdir $(IPT_NAT6-m)))
   $(call AddDepends/ipt,+kmod-nf-nat6)
   $(call AddDepends/ipt,+kmod-ipt-conntrack)
@@ -559,7 +559,7 @@  $(eval $(call KernelPackage,ipt-nat6))
 define KernelPackage/ipt-nat-extra
   TITLE:=Extra NAT targets
   KCONFIG:=$(KCONFIG_IPT_NAT_EXTRA)
-  FILES:=$(foreach mod,$(IPT_NAT_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_NAT_EXTRA-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_NAT_EXTRA-m)))
   $(call AddDepends/ipt,+kmod-ipt-nat)
 endef
@@ -578,7 +578,7 @@  define KernelPackage/nf-nathelper
   SUBMENU:=$(NF_MENU)
   TITLE:=Basic Conntrack and NAT helpers
   KCONFIG:=$(KCONFIG_NF_NATHELPER)
-  FILES:=$(foreach mod,$(NF_NATHELPER-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NF_NATHELPER-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_NATHELPER-m)))
   DEPENDS:=+kmod-nf-nat
 endef
@@ -596,7 +596,7 @@  define KernelPackage/nf-nathelper-extra
   SUBMENU:=$(NF_MENU)
   TITLE:=Extra Conntrack and NAT helpers
   KCONFIG:=$(KCONFIG_NF_NATHELPER_EXTRA)
-  FILES:=$(foreach mod,$(NF_NATHELPER_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NF_NATHELPER_EXTRA-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_NATHELPER_EXTRA-m)))
   DEPENDS:=+kmod-nf-nat +kmod-lib-textsearch +kmod-asn1-decoder
 endef
@@ -622,7 +622,7 @@  $(eval $(call KernelPackage,nf-nathelper-extra))
 define KernelPackage/ipt-nflog
   TITLE:=Module for user-space packet logging
   KCONFIG:=$(KCONFIG_IPT_NFLOG)
-  FILES:=$(foreach mod,$(IPT_NFLOG-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_NFLOG-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_NFLOG-m)))
   $(call AddDepends/ipt,+kmod-nfnetlink-log)
 endef
@@ -639,7 +639,7 @@  $(eval $(call KernelPackage,ipt-nflog))
 define KernelPackage/ipt-nfqueue
   TITLE:=Module for user-space packet queuing
   KCONFIG:=$(KCONFIG_IPT_NFQUEUE)
-  FILES:=$(foreach mod,$(IPT_NFQUEUE-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_NFQUEUE-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_NFQUEUE-m)))
   $(call AddDepends/ipt,+kmod-nfnetlink-queue)
 endef
@@ -656,7 +656,7 @@  $(eval $(call KernelPackage,ipt-nfqueue))
 define KernelPackage/ipt-debug
   TITLE:=Module for debugging/development
   KCONFIG:=$(KCONFIG_IPT_DEBUG)
-  FILES:=$(foreach mod,$(IPT_DEBUG-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_DEBUG-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_DEBUG-m)))
   $(call AddDepends/ipt,+kmod-ipt-raw +IPV6:kmod-ipt-raw6)
 endef
@@ -673,7 +673,7 @@  $(eval $(call KernelPackage,ipt-debug))
 define KernelPackage/ipt-led
   TITLE:=Module to trigger a LED with a Netfilter rule
   KCONFIG:=$(KCONFIG_IPT_LED)
-  FILES:=$(foreach mod,$(IPT_LED-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_LED-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_LED-m)))
   $(call AddDepends/ipt)
 endef
@@ -688,7 +688,7 @@  define KernelPackage/ipt-socket
   TITLE:=Iptables socket matching support
   DEPENDS+=+kmod-nf-socket +kmod-nf-conntrack
   KCONFIG:=$(KCONFIG_IPT_SOCKET)
-  FILES:=$(foreach mod,$(IPT_SOCKET-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_SOCKET-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_SOCKET-m)))
   $(call AddDepends/ipt)
 endef
@@ -703,7 +703,7 @@  define KernelPackage/ipt-tproxy
   TITLE:=Transparent proxying support
   DEPENDS+=+kmod-nf-tproxy +kmod-nf-conntrack
   KCONFIG:=$(KCONFIG_IPT_TPROXY)
-  FILES:=$(foreach mod,$(IPT_TPROXY-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_TPROXY-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_TPROXY-m)))
   $(call AddDepends/ipt)
 endef
@@ -718,7 +718,7 @@  define KernelPackage/ipt-tee
   TITLE:=TEE support
   DEPENDS:=+kmod-ipt-conntrack
   KCONFIG:=$(KCONFIG_IPT_TEE)
-  FILES:=$(foreach mod,$(IPT_TEE-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_TEE-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir nf_tee $(IPT_TEE-m)))
   $(call AddDepends/ipt)
 endef
@@ -733,7 +733,7 @@  $(eval $(call KernelPackage,ipt-tee))
 define KernelPackage/ipt-u32
   TITLE:=U32 support
   KCONFIG:=$(KCONFIG_IPT_U32)
-  FILES:=$(foreach mod,$(IPT_U32-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_U32-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir nf_tee $(IPT_U32-m)))
   $(call AddDepends/ipt)
 endef
@@ -747,7 +747,7 @@  $(eval $(call KernelPackage,ipt-u32))
 define KernelPackage/ipt-checksum
   TITLE:=CHECKSUM support
   KCONFIG:=$(KCONFIG_IPT_CHECKSUM)
-  FILES:=$(foreach mod,$(IPT_CHECKSUM-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_CHECKSUM-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CHECKSUM-m)))
   $(call AddDepends/ipt)
 endef
@@ -762,7 +762,7 @@  $(eval $(call KernelPackage,ipt-checksum))
 define KernelPackage/ipt-iprange
   TITLE:=Module for matching ip ranges
   KCONFIG:=$(KCONFIG_IPT_IPRANGE)
-  FILES:=$(foreach mod,$(IPT_IPRANGE-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_IPRANGE-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_IPRANGE-m)))
   $(call AddDepends/ipt)
 endef
@@ -778,7 +778,7 @@  $(eval $(call KernelPackage,ipt-iprange))
 define KernelPackage/ipt-cluster
   TITLE:=Module for matching cluster
   KCONFIG:=$(KCONFIG_IPT_CLUSTER)
-  FILES:=$(foreach mod,$(IPT_CLUSTER-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_CLUSTER-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CLUSTER-m)))
   $(call AddDepends/ipt,+kmod-nf-conntrack)
 endef
@@ -805,7 +805,7 @@  $(eval $(call KernelPackage,ipt-cluster))
 define KernelPackage/ipt-clusterip
   TITLE:=Module for CLUSTERIP
   KCONFIG:=$(KCONFIG_IPT_CLUSTERIP)
-  FILES:=$(foreach mod,$(IPT_CLUSTERIP-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_CLUSTERIP-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CLUSTERIP-m)))
   $(call AddDepends/ipt,+kmod-nf-conntrack)
 endef
@@ -827,7 +827,7 @@  $(eval $(call KernelPackage,ipt-clusterip))
 define KernelPackage/ipt-extra
   TITLE:=Extra modules
   KCONFIG:=$(KCONFIG_IPT_EXTRA)
-  FILES:=$(foreach mod,$(IPT_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_EXTRA-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_EXTRA-m)))
   $(call AddDepends/ipt)
 endef
@@ -847,7 +847,7 @@  $(eval $(call KernelPackage,ipt-extra))
 define KernelPackage/ipt-physdev
   TITLE:=physdev module
   KCONFIG:=$(KCONFIG_IPT_PHYSDEV)
-  FILES:=$(foreach mod,$(IPT_PHYSDEV-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_PHYSDEV-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_PHYSDEV-m)))
   $(call AddDepends/ipt,+kmod-br-netfilter)
 endef
@@ -864,7 +864,7 @@  define KernelPackage/ip6tables
   TITLE:=IPv6 modules
   DEPENDS:=@IPV6 +kmod-nf-reject6 +kmod-nf-ipt6 +kmod-ipt-core
   KCONFIG:=$(KCONFIG_IPT_IPV6)
-  FILES:=$(foreach mod,$(IPT_IPV6-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_IPV6-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoLoad,42,$(notdir $(IPT_IPV6-m)))
 endef
 
@@ -879,7 +879,7 @@  define KernelPackage/ip6tables-extra
   TITLE:=Extra IPv6 modules
   DEPENDS:=@IPV6 +kmod-ip6tables
   KCONFIG:=$(KCONFIG_IPT_IPV6_EXTRA)
-  FILES:=$(foreach mod,$(IPT_IPV6_EXTRA-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPT_IPV6_EXTRA-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoLoad,43,$(notdir $(IPT_IPV6_EXTRA-m)))
 endef
 
@@ -894,7 +894,7 @@  define KernelPackage/arptables
   SUBMENU:=$(NF_MENU)
   TITLE:=ARP firewalling modules
   DEPENDS:=+kmod-ipt-core
-  FILES:=$(LINUX_DIR)/net/ipv4/netfilter/arp*.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/ipv4/netfilter/arp*.ko
   KCONFIG:=CONFIG_IP_NF_ARPTABLES \
     CONFIG_IP_NF_ARPFILTER \
     CONFIG_IP_NF_ARP_MANGLE
@@ -912,7 +912,7 @@  define KernelPackage/br-netfilter
   SUBMENU:=$(NF_MENU)
   TITLE:=Bridge netfilter support modules
   DEPENDS:=+kmod-ipt-core
-  FILES:=$(LINUX_DIR)/net/bridge/br_netfilter.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/bridge/br_netfilter.ko
   KCONFIG:=CONFIG_BRIDGE_NETFILTER
   AUTOLOAD:=$(call AutoProbe,br_netfilter)
 endef
@@ -929,7 +929,7 @@  define KernelPackage/ebtables
   SUBMENU:=$(NF_MENU)
   TITLE:=Bridge firewalling modules
   DEPENDS:=+kmod-ipt-core
-  FILES:=$(foreach mod,$(EBTABLES-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(EBTABLES-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   KCONFIG:=$(KCONFIG_EBTABLES)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES-m)))
 endef
@@ -951,7 +951,7 @@  endef
 
 define KernelPackage/ebtables-ipv4
   TITLE:=ebtables: IPv4 support
-  FILES:=$(foreach mod,$(EBTABLES_IP4-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(EBTABLES_IP4-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   KCONFIG:=$(KCONFIG_EBTABLES_IP4)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES_IP4-m)))
   $(call AddDepends/ebtables)
@@ -968,7 +968,7 @@  $(eval $(call KernelPackage,ebtables-ipv4))
 define KernelPackage/ebtables-ipv6
   TITLE:=ebtables: IPv6 support
   DEPENDS:=@IPV6
-  FILES:=$(foreach mod,$(EBTABLES_IP6-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(EBTABLES_IP6-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   KCONFIG:=$(KCONFIG_EBTABLES_IP6)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES_IP6-m)))
   $(call AddDepends/ebtables)
@@ -984,7 +984,7 @@  $(eval $(call KernelPackage,ebtables-ipv6))
 
 define KernelPackage/ebtables-watchers
   TITLE:=ebtables: watchers support
-  FILES:=$(foreach mod,$(EBTABLES_WATCHERS-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(EBTABLES_WATCHERS-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   KCONFIG:=$(KCONFIG_EBTABLES_WATCHERS)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(EBTABLES_WATCHERS-m)))
   $(call AddDepends/ebtables)
@@ -1001,7 +1001,7 @@  $(eval $(call KernelPackage,ebtables-watchers))
 define KernelPackage/nfnetlink
   SUBMENU:=$(NF_MENU)
   TITLE:=Netlink-based userspace interface
-  FILES:=$(foreach mod,$(NFNETLINK-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NFNETLINK-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   KCONFIG:=$(KCONFIG_NFNETLINK)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFNETLINK-m)))
 endef
@@ -1021,7 +1021,7 @@  endef
 
 define KernelPackage/nfnetlink-log
   TITLE:=Netfilter LOG over NFNETLINK interface
-  FILES:=$(foreach mod,$(NFNETLINK_LOG-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NFNETLINK_LOG-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   KCONFIG:=$(KCONFIG_NFNETLINK_LOG)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFNETLINK_LOG-m)))
   $(call AddDepends/nfnetlink)
@@ -1038,7 +1038,7 @@  $(eval $(call KernelPackage,nfnetlink-log))
 
 define KernelPackage/nfnetlink-queue
   TITLE:=Netfilter QUEUE over NFNETLINK interface
-  FILES:=$(foreach mod,$(NFNETLINK_QUEUE-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NFNETLINK_QUEUE-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   KCONFIG:=$(KCONFIG_NFNETLINK_QUEUE)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFNETLINK_QUEUE-m)))
   $(call AddDepends/nfnetlink)
@@ -1055,7 +1055,7 @@  $(eval $(call KernelPackage,nfnetlink-queue))
 
 define KernelPackage/nf-conntrack-netlink
   TITLE:=Connection tracking netlink interface
-  FILES:=$(LINUX_DIR)/net/netfilter/nf_conntrack_netlink.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/netfilter/nf_conntrack_netlink.ko
   KCONFIG:=CONFIG_NF_CT_NETLINK CONFIG_NF_CONNTRACK_EVENTS=y CONFIG_NETFILTER_NETLINK_GLUE_CT=y
   AUTOLOAD:=$(call AutoProbe,nf_conntrack_netlink)
   $(call AddDepends/nfnetlink,+kmod-nf-conntrack)
@@ -1073,7 +1073,7 @@  define KernelPackage/ipt-hashlimit
   TITLE:=Netfilter hashlimit match
   DEPENDS:=+kmod-ipt-core
   KCONFIG:=$(KCONFIG_IPT_HASHLIMIT)
-  FILES:=$(LINUX_DIR)/net/netfilter/xt_hashlimit.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/netfilter/xt_hashlimit.ko
   AUTOLOAD:=$(call AutoProbe,xt_hashlimit)
   $(call KernelPackage/ipt)
 endef
@@ -1090,8 +1090,8 @@  define KernelPackage/ipt-rpfilter
   DEPENDS:=+kmod-ipt-core
   KCONFIG:=$(KCONFIG_IPT_RPFILTER)
   FILES:=$(realpath \
-	$(LINUX_DIR)/net/ipv4/netfilter/ipt_rpfilter.ko \
-	$(LINUX_DIR)/net/ipv6/netfilter/ip6t_rpfilter.ko)
+	$(LINUX_OBJ_DIR)/net/ipv4/netfilter/ipt_rpfilter.ko \
+	$(LINUX_OBJ_DIR)/net/ipv6/netfilter/ip6t_rpfilter.ko)
   AUTOLOAD:=$(call AutoProbe,ipt_rpfilter ip6t_rpfilter)
   $(call KernelPackage/ipt)
 endef
@@ -1107,7 +1107,7 @@  define KernelPackage/nft-core
   SUBMENU:=$(NF_MENU)
   TITLE:=Netfilter nf_tables support
   DEPENDS:=+kmod-nfnetlink +kmod-nf-reject +IPV6:kmod-nf-reject6 +IPV6:kmod-nf-conntrack6 +kmod-nf-nat +kmod-nf-log +IPV6:kmod-nf-log6 +kmod-lib-crc32c
-  FILES:=$(foreach mod,$(NFT_CORE-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NFT_CORE-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_CORE-m)))
   KCONFIG:= \
 	CONFIG_NFT_COMPAT=n \
@@ -1126,7 +1126,7 @@  define KernelPackage/nft-arp
   SUBMENU:=$(NF_MENU)
   TITLE:=Netfilter nf_tables ARP table support
   DEPENDS:=+kmod-nft-core
-  FILES:=$(foreach mod,$(NFT_ARP-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NFT_ARP-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_ARP-m)))
   KCONFIG:=$(KCONFIG_NFT_ARP)
 endef
@@ -1138,7 +1138,7 @@  define KernelPackage/nft-bridge
   SUBMENU:=$(NF_MENU)
   TITLE:=Netfilter nf_tables bridge table support
   DEPENDS:=+kmod-nft-core
-  FILES:=$(foreach mod,$(NFT_BRIDGE-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NFT_BRIDGE-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_BRIDGE-m)))
   KCONFIG:= \
 	$(KCONFIG_NFT_BRIDGE)
@@ -1157,10 +1157,10 @@  define KernelPackage/nft-dup-inet
 	CONFIG_NFT_DUP_IPV4 \
 	CONFIG_NFT_DUP_IPV6
   FILES:= \
-	$(LINUX_DIR)/net/ipv4/netfilter/nf_dup_ipv4.ko \
-	$(LINUX_DIR)/net/ipv6/netfilter/nf_dup_ipv6.ko \
-	$(LINUX_DIR)/net/ipv4/netfilter/nft_dup_ipv4.ko \
-	$(LINUX_DIR)/net/ipv6/netfilter/nft_dup_ipv6.ko
+	$(LINUX_OBJ_DIR)/net/ipv4/netfilter/nf_dup_ipv4.ko \
+	$(LINUX_OBJ_DIR)/net/ipv6/netfilter/nf_dup_ipv6.ko \
+	$(LINUX_OBJ_DIR)/net/ipv4/netfilter/nft_dup_ipv4.ko \
+	$(LINUX_OBJ_DIR)/net/ipv6/netfilter/nft_dup_ipv6.ko
   AUTOLOAD:=$(call AutoProbe,nf_dup_ipv4 nf_dup_ipv6 nft_dup_ipv4 nft_dup_ipv6)
 endef
 
@@ -1171,7 +1171,7 @@  define KernelPackage/nft-nat
   SUBMENU:=$(NF_MENU)
   TITLE:=Netfilter nf_tables NAT support
   DEPENDS:=+kmod-nft-core +kmod-nf-nat
-  FILES:=$(foreach mod,$(NFT_NAT-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NFT_NAT-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_NAT-m)))
   KCONFIG:=$(KCONFIG_NFT_NAT)
 endef
@@ -1189,10 +1189,10 @@  define KernelPackage/nft-offload
 	CONFIG_NF_FLOW_TABLE_IPV6@lt5.17 \
 	CONFIG_NFT_FLOW_OFFLOAD
   FILES:= \
-	$(LINUX_DIR)/net/netfilter/nf_flow_table_inet.ko \
-	$(LINUX_DIR)/net/ipv4/netfilter/nf_flow_table_ipv4.ko@lt5.17 \
-	$(LINUX_DIR)/net/ipv6/netfilter/nf_flow_table_ipv6.ko@lt5.17 \
-	$(LINUX_DIR)/net/netfilter/nft_flow_offload.ko
+	$(LINUX_OBJ_DIR)/net/netfilter/nf_flow_table_inet.ko \
+	$(LINUX_OBJ_DIR)/net/ipv4/netfilter/nf_flow_table_ipv4.ko@lt5.17 \
+	$(LINUX_OBJ_DIR)/net/ipv6/netfilter/nf_flow_table_ipv6.ko@lt5.17 \
+	$(LINUX_OBJ_DIR)/net/netfilter/nft_flow_offload.ko
   AUTOLOAD:=$(call AutoProbe,nf_flow_table_inet nf_flow_table_ipv4@lt5.17 nf_flow_table_ipv6@lt5.17 nft_flow_offload)
 endef
 
@@ -1210,9 +1210,9 @@  define KernelPackage/nft-netdev
 	CONFIG_NFT_DUP_NETDEV \
 	CONFIG_NFT_FWD_NETDEV
   FILES:= \
-	$(LINUX_DIR)/net/netfilter/nf_dup_netdev.ko \
-	$(LINUX_DIR)/net/netfilter/nft_dup_netdev.ko \
-	$(LINUX_DIR)/net/netfilter/nft_fwd_netdev.ko
+	$(LINUX_OBJ_DIR)/net/netfilter/nf_dup_netdev.ko \
+	$(LINUX_OBJ_DIR)/net/netfilter/nft_dup_netdev.ko \
+	$(LINUX_OBJ_DIR)/net/netfilter/nft_fwd_netdev.ko
   AUTOLOAD:=$(call AutoProbe,nf_tables_netdev nf_dup_netdev nft_dup_netdev nft_fwd_netdev)
 endef
 
@@ -1223,7 +1223,7 @@  define KernelPackage/nft-fib
   SUBMENU:=$(NF_MENU)
   TITLE:=Netfilter nf_tables fib support
   DEPENDS:=+kmod-nft-core
-  FILES:=$(foreach mod,$(NFT_FIB-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NFT_FIB-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_FIB-m)))
   KCONFIG:=$(KCONFIG_NFT_FIB)
 endef
@@ -1235,7 +1235,7 @@  define KernelPackage/nft-queue
   SUBMENU:=$(NF_MENU)
   TITLE:=Netfilter nf_tables queue support
   DEPENDS:=+kmod-nft-core +kmod-nfnetlink-queue
-  FILES:=$(foreach mod,$(NFT_QUEUE-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NFT_QUEUE-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_QUEUE-m)))
   KCONFIG:=$(KCONFIG_NFT_QUEUE)
 endef
@@ -1246,7 +1246,7 @@  define KernelPackage/nft-socket
   SUBMENU:=$(NF_MENU)
   TITLE:=Netfilter nf_tables socket support
   DEPENDS:=+kmod-nft-core +kmod-nf-socket
-  FILES:=$(foreach mod,$(NFT_SOCKET-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NFT_SOCKET-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_SOCKET-m)))
   KCONFIG:=$(KCONFIG_NFT_SOCKET)
 endef
@@ -1257,7 +1257,7 @@  define KernelPackage/nft-tproxy
   SUBMENU:=$(NF_MENU)
   TITLE:=Netfilter nf_tables tproxy support
   DEPENDS:=+kmod-nft-core +kmod-nf-tproxy +kmod-nf-conntrack
-  FILES:=$(foreach mod,$(NFT_TPROXY-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NFT_TPROXY-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_TPROXY-m)))
   KCONFIG:=$(KCONFIG_NFT_TPROXY)
 endef
@@ -1268,7 +1268,7 @@  define KernelPackage/nft-compat
   SUBMENU:=$(NF_MENU)
   TITLE:=Netfilter nf_tables compat support
   DEPENDS:=+kmod-nft-core +kmod-nf-ipt
-  FILES:=$(foreach mod,$(NFT_COMPAT-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NFT_COMPAT-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_COMPAT-m)))
   KCONFIG:=$(KCONFIG_NFT_COMPAT)
 endef
@@ -1279,7 +1279,7 @@  define KernelPackage/nft-xfrm
   SUBMENU:=$(NF_MENU)
   TITLE:=Netfilter nf_tables xfrm support (ipsec)
   DEPENDS:=+kmod-nft-core
-  FILES:=$(foreach mod,$(NFT_XFRM-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NFT_XFRM-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_XFRM-m)))
   KCONFIG:=$(KCONFIG_NFT_XFRM)
 endef
@@ -1290,7 +1290,7 @@  define KernelPackage/nft-connlimit
   SUBMENU:=$(NF_MENU)
   TITLE:=Netfilter nf_tables connlimit support
   DEPENDS:=+kmod-nft-core +kmod-nf-conncount
-  FILES:=$(foreach mod,$(NFT_CONNLIMIT-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(NFT_CONNLIMIT-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_CONNLIMIT-m)))
   KCONFIG:=$(KCONFIG_NFT_CONNLIMIT)
 endef
diff --git a/package/kernel/linux/modules/netsupport.mk b/package/kernel/linux/modules/netsupport.mk
index fcf327b434..a71686725a 100644
--- a/package/kernel/linux/modules/netsupport.mk
+++ b/package/kernel/linux/modules/netsupport.mk
@@ -14,8 +14,8 @@  define KernelPackage/atm
 	CONFIG_ATM \
 	CONFIG_ATM_BR2684
   FILES:= \
-	$(LINUX_DIR)/net/atm/atm.ko \
-	$(LINUX_DIR)/net/atm/br2684.ko
+	$(LINUX_OBJ_DIR)/net/atm/atm.ko \
+	$(LINUX_OBJ_DIR)/net/atm/br2684.ko
   AUTOLOAD:=$(call AutoLoad,30,atm br2684)
 endef
 
@@ -31,7 +31,7 @@  define KernelPackage/atmtcp
   TITLE:=ATM over TCP
   DEPENDS:=kmod-atm
   KCONFIG:=CONFIG_ATM_TCP CONFIG_ATM_DRIVERS=y
-  FILES:=$(LINUX_DIR)/drivers/atm/atmtcp.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/atm/atmtcp.ko
   AUTOLOAD:=$(call AutoLoad,40,atmtcp)
 endef
 
@@ -47,7 +47,7 @@  define KernelPackage/bonding
   TITLE:=Ethernet bonding driver
   KCONFIG:=CONFIG_BONDING
   DEPENDS:=PACKAGE_kmod-tls:kmod-tls
-  FILES:=$(LINUX_DIR)/drivers/net/bonding/bonding.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/bonding/bonding.ko
   AUTOLOAD:=$(call AutoLoad,40,bonding)
   MODPARAMS.bonding:=max_bonds=0
 endef
@@ -64,7 +64,7 @@  define KernelPackage/udptunnel4
   TITLE:=IPv4 UDP tunneling support
   KCONFIG:=CONFIG_NET_UDP_TUNNEL
   HIDDEN:=1
-  FILES:=$(LINUX_DIR)/net/ipv4/udp_tunnel.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/ipv4/udp_tunnel.ko
   AUTOLOAD:=$(call AutoLoad,32,udp_tunnel)
 endef
 
@@ -77,7 +77,7 @@  define KernelPackage/udptunnel6
   DEPENDS:=@IPV6
   KCONFIG:=CONFIG_NET_UDP_TUNNEL
   HIDDEN:=1
-  FILES:=$(LINUX_DIR)/net/ipv6/ip6_udp_tunnel.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/ipv6/ip6_udp_tunnel.ko
   AUTOLOAD:=$(call AutoLoad,32,ip6_udp_tunnel)
 endef
 
@@ -93,7 +93,7 @@  define KernelPackage/vxlan
 	+IPV6:kmod-udptunnel6
   KCONFIG:=CONFIG_VXLAN
   FILES:= \
-	$(LINUX_DIR)/drivers/net/vxlan/vxlan.ko
+	$(LINUX_OBJ_DIR)/drivers/net/vxlan/vxlan.ko
   AUTOLOAD:=$(call AutoLoad,13,vxlan)
 endef
 
@@ -114,7 +114,7 @@  define KernelPackage/geneve
 	+IPV6:kmod-udptunnel6
   KCONFIG:=CONFIG_GENEVE
   FILES:= \
-	$(LINUX_DIR)/drivers/net/geneve.ko
+	$(LINUX_OBJ_DIR)/drivers/net/geneve.ko
   AUTOLOAD:=$(call AutoLoad,13,geneve)
 endef
 
@@ -131,7 +131,7 @@  define KernelPackage/nsh
   TITLE:=Network Service Header (NSH) protocol
   DEPENDS:=
   KCONFIG:=CONFIG_NET_NSH
-  FILES:=$(LINUX_DIR)/net/nsh/nsh.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/nsh/nsh.ko
   AUTOLOAD:=$(call AutoLoad,13,nsh)
 endef
 
@@ -152,9 +152,9 @@  define KernelPackage/misdn
 	CONFIG_MISDN_DSP \
 	CONFIG_MISDN_L1OIP
   FILES:= \
-  	$(LINUX_DIR)/drivers/isdn/mISDN/mISDN_core.ko \
-	$(LINUX_DIR)/drivers/isdn/mISDN/mISDN_dsp.ko \
-	$(LINUX_DIR)/drivers/isdn/mISDN/l1oip.ko
+  	$(LINUX_OBJ_DIR)/drivers/isdn/mISDN/mISDN_core.ko \
+	$(LINUX_OBJ_DIR)/drivers/isdn/mISDN/mISDN_dsp.ko \
+	$(LINUX_OBJ_DIR)/drivers/isdn/mISDN/l1oip.ko
   AUTOLOAD:=$(call AutoLoad,30,mISDN_core mISDN_dsp l1oip)
 endef
 
@@ -170,7 +170,7 @@  define KernelPackage/ipip
   TITLE:=IP-in-IP encapsulation
   DEPENDS:=+kmod-iptunnel +kmod-iptunnel4
   KCONFIG:=CONFIG_NET_IPIP
-  FILES:=$(LINUX_DIR)/net/ipv4/ipip.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/ipv4/ipip.ko
   AUTOLOAD:=$(call AutoLoad,32,ipip)
 endef
 
@@ -199,7 +199,7 @@  define KernelPackage/ipsec
 	CONFIG_XFRM_USER \
 	CONFIG_INET_IPCOMP \
 	CONFIG_XFRM_IPCOMP
-  FILES:=$(foreach mod,$(IPSEC-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPSEC-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoLoad,30,$(notdir $(IPSEC-m)))
 endef
 
@@ -230,7 +230,7 @@  define KernelPackage/ipsec4
 	CONFIG_INET_IPCOMP \
 	CONFIG_INET_XFRM_TUNNEL \
 	CONFIG_INET_ESP_OFFLOAD=n
-  FILES:=$(foreach mod,$(IPSEC4-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPSEC4-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC4-m)))
 endef
 
@@ -262,7 +262,7 @@  define KernelPackage/ipsec6
 	CONFIG_INET6_IPCOMP \
 	CONFIG_INET6_XFRM_TUNNEL \
 	CONFIG_INET6_ESP_OFFLOAD=n
-  FILES:=$(foreach mod,$(IPSEC6-m),$(LINUX_DIR)/net/$(mod).ko)
+  FILES:=$(foreach mod,$(IPSEC6-m),$(LINUX_OBJ_DIR)/net/$(mod).ko)
   AUTOLOAD:=$(call AutoLoad,32,$(notdir $(IPSEC6-m)))
 endef
 
@@ -284,7 +284,7 @@  define KernelPackage/iptunnel
   HIDDEN:=1
   KCONFIG:= \
 	CONFIG_NET_IP_TUNNEL
-  FILES:=$(LINUX_DIR)/net/ipv4/ip_tunnel.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/ipv4/ip_tunnel.ko
   AUTOLOAD:=$(call AutoLoad,31,ip_tunnel)
 endef
 
@@ -300,7 +300,7 @@  define KernelPackage/ip-vti
   TITLE:=IP VTI (Virtual Tunnel Interface)
   DEPENDS:=+kmod-iptunnel +kmod-iptunnel4 +kmod-ipsec4
   KCONFIG:=CONFIG_NET_IPVTI
-  FILES:=$(LINUX_DIR)/net/ipv4/ip_vti.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/ipv4/ip_vti.ko
   AUTOLOAD:=$(call AutoLoad,33,ip_vti)
 endef
 
@@ -316,7 +316,7 @@  define KernelPackage/ip6-vti
   TITLE:=IPv6 VTI (Virtual Tunnel Interface)
   DEPENDS:=@IPV6 +kmod-iptunnel +kmod-ip6-tunnel +kmod-ipsec6
   KCONFIG:=CONFIG_IPV6_VTI
-  FILES:=$(LINUX_DIR)/net/ipv6/ip6_vti.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/ipv6/ip6_vti.ko
   AUTOLOAD:=$(call AutoLoad,33,ip6_vti)
 endef
 
@@ -332,7 +332,7 @@  define KernelPackage/xfrm-interface
   TITLE:=IPsec XFRM Interface
   DEPENDS:=@IPV6 +kmod-ipsec4 +kmod-ipsec6
   KCONFIG:=CONFIG_XFRM_INTERFACE
-  FILES:=$(LINUX_DIR)/net/xfrm/xfrm_interface.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/xfrm/xfrm_interface.ko
   AUTOLOAD:=$(call AutoProbe,xfrm_interface)
 endef
 
@@ -350,7 +350,7 @@  define KernelPackage/iptunnel4
   KCONFIG:= \
 	CONFIG_INET_TUNNEL \
 	CONFIG_NET_IPIP=m
-  FILES:=$(LINUX_DIR)/net/ipv4/tunnel4.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/ipv4/tunnel4.ko
   AUTOLOAD:=$(call AutoLoad,31,tunnel4)
 endef
 
@@ -367,7 +367,7 @@  define KernelPackage/iptunnel6
   DEPENDS:=@IPV6
   KCONFIG:= \
 	CONFIG_INET6_TUNNEL
-  FILES:=$(LINUX_DIR)/net/ipv6/tunnel6.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/ipv6/tunnel6.ko
   AUTOLOAD:=$(call AutoLoad,31,tunnel6)
 endef
 
@@ -384,7 +384,7 @@  define KernelPackage/sit
   TITLE:=IPv6-in-IPv4 tunnel
   KCONFIG:=CONFIG_IPV6_SIT \
 	CONFIG_IPV6_SIT_6RD=y
-  FILES:=$(LINUX_DIR)/net/ipv6/sit.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/ipv6/sit.ko
   AUTOLOAD:=$(call AutoLoad,32,sit)
 endef
 
@@ -405,7 +405,7 @@  define KernelPackage/fou
   KCONFIG:= \
 	CONFIG_NET_FOU \
 	CONFIG_NET_FOU_IP_TUNNELS=y
-  FILES:=$(LINUX_DIR)/net/ipv4/fou.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/ipv4/fou.ko
   AUTOLOAD:=$(call AutoProbe,fou)
 endef
 
@@ -426,7 +426,7 @@  define KernelPackage/fou6
   KCONFIG:= \
 	CONFIG_IPV6_FOU \
 	CONFIG_IPV6_FOU_TUNNEL
-  FILES:=$(LINUX_DIR)/net/ipv6/fou6.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/ipv6/fou6.ko
   AUTOLOAD:=$(call AutoProbe,fou6)
 endef
 
@@ -443,7 +443,7 @@  define KernelPackage/ip6-tunnel
   TITLE:=IP-in-IPv6 tunnelling
   DEPENDS:=@IPV6 +kmod-iptunnel6
   KCONFIG:= CONFIG_IPV6_TUNNEL
-  FILES:=$(LINUX_DIR)/net/ipv6/ip6_tunnel.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/ipv6/ip6_tunnel.ko
   AUTOLOAD:=$(call AutoLoad,32,ip6_tunnel)
 endef
 
@@ -459,7 +459,7 @@  define KernelPackage/gre
   TITLE:=GRE support
   DEPENDS:=+kmod-iptunnel
   KCONFIG:=CONFIG_NET_IPGRE CONFIG_NET_IPGRE_DEMUX
-  FILES:=$(LINUX_DIR)/net/ipv4/ip_gre.ko $(LINUX_DIR)/net/ipv4/gre.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/ipv4/ip_gre.ko $(LINUX_OBJ_DIR)/net/ipv4/gre.ko
   AUTOLOAD:=$(call AutoLoad,39,gre ip_gre)
 endef
 
@@ -475,7 +475,7 @@  define KernelPackage/gre6
   TITLE:=GRE support over IPV6
   DEPENDS:=@IPV6 +kmod-iptunnel +kmod-ip6-tunnel +kmod-gre
   KCONFIG:=CONFIG_IPV6_GRE
-  FILES:=$(LINUX_DIR)/net/ipv6/ip6_gre.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/ipv6/ip6_gre.ko
   AUTOLOAD:=$(call AutoLoad,39,ip6_gre)
 endef
 
@@ -490,7 +490,7 @@  define KernelPackage/tun
   SUBMENU:=$(NETWORK_SUPPORT_MENU)
   TITLE:=Universal TUN/TAP driver
   KCONFIG:=CONFIG_TUN
-  FILES:=$(LINUX_DIR)/drivers/net/tun.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/tun.ko
   AUTOLOAD:=$(call AutoLoad,30,tun)
 endef
 
@@ -505,7 +505,7 @@  define KernelPackage/veth
   SUBMENU:=$(NETWORK_SUPPORT_MENU)
   TITLE:=Virtual ethernet pair device
   KCONFIG:=CONFIG_VETH
-  FILES:=$(LINUX_DIR)/drivers/net/veth.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/veth.ko
   AUTOLOAD:=$(call AutoLoad,30,veth)
 endef
 
@@ -523,7 +523,7 @@  define KernelPackage/vrf
   TITLE:=Virtual Routing and Forwarding (Lite)
   DEPENDS:=@KERNEL_NET_L3_MASTER_DEV
   KCONFIG:=CONFIG_NET_VRF
-  FILES:=$(LINUX_DIR)/drivers/net/vrf.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/vrf.ko
   AUTOLOAD:=$(call AutoLoad,30,vrf)
 endef
 
@@ -541,7 +541,7 @@  define KernelPackage/slhc
   TITLE:=Serial Line Header Compression
   DEPENDS:=+kmod-lib-crc-ccitt
   KCONFIG:=CONFIG_SLHC
-  FILES:=$(LINUX_DIR)/drivers/net/slip/slhc.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/slip/slhc.ko
 endef
 
 $(eval $(call KernelPackage,slhc))
@@ -555,8 +555,8 @@  define KernelPackage/ppp
 	CONFIG_PPP \
 	CONFIG_PPP_ASYNC
   FILES:= \
-	$(LINUX_DIR)/drivers/net/ppp/ppp_async.ko \
-	$(LINUX_DIR)/drivers/net/ppp/ppp_generic.ko
+	$(LINUX_OBJ_DIR)/drivers/net/ppp/ppp_async.ko \
+	$(LINUX_OBJ_DIR)/drivers/net/ppp/ppp_generic.ko
   AUTOLOAD:=$(call AutoProbe,ppp_async)
 endef
 
@@ -572,7 +572,7 @@  define KernelPackage/ppp-synctty
   TITLE:=PPP sync tty support
   DEPENDS:=kmod-ppp
   KCONFIG:=CONFIG_PPP_SYNC_TTY
-  FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_synctty.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ppp/ppp_synctty.ko
   AUTOLOAD:=$(call AutoProbe,ppp_synctty)
 endef
 
@@ -588,7 +588,7 @@  define KernelPackage/pppox
   TITLE:=PPPoX helper
   DEPENDS:=kmod-ppp
   KCONFIG:=CONFIG_PPPOE
-  FILES:=$(LINUX_DIR)/drivers/net/ppp/pppox.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ppp/pppox.ko
 endef
 
 define KernelPackage/pppox/description
@@ -603,7 +603,7 @@  define KernelPackage/pppoe
   TITLE:=PPPoE support
   DEPENDS:=kmod-ppp +kmod-pppox
   KCONFIG:=CONFIG_PPPOE
-  FILES:=$(LINUX_DIR)/drivers/net/ppp/pppoe.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ppp/pppoe.ko
   AUTOLOAD:=$(call AutoProbe,pppoe)
 endef
 
@@ -619,7 +619,7 @@  define KernelPackage/pppoa
   TITLE:=PPPoA support
   DEPENDS:=kmod-ppp +kmod-atm
   KCONFIG:=CONFIG_PPPOATM CONFIG_ATM_DRIVERS=y
-  FILES:=$(LINUX_DIR)/net/atm/pppoatm.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/atm/pppoatm.ko
   AUTOLOAD:=$(call AutoLoad,40,pppoatm)
 endef
 
@@ -635,7 +635,7 @@  define KernelPackage/pptp
   TITLE:=PPtP support
   DEPENDS:=kmod-ppp +kmod-gre +kmod-pppox
   KCONFIG:=CONFIG_PPTP
-  FILES:=$(LINUX_DIR)/drivers/net/ppp/pptp.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ppp/pptp.ko
   AUTOLOAD:=$(call AutoProbe,pptp)
 endef
 
@@ -647,7 +647,7 @@  define KernelPackage/pppol2tp
   TITLE:=PPPoL2TP support
   DEPENDS:=kmod-ppp +kmod-pppox +kmod-l2tp
   KCONFIG:=CONFIG_PPPOL2TP
-  FILES:=$(LINUX_DIR)/net/l2tp/l2tp_ppp.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/l2tp/l2tp_ppp.ko
   AUTOLOAD:=$(call AutoProbe,l2tp_ppp)
 endef
 
@@ -663,7 +663,7 @@  define KernelPackage/ipoa
   TITLE:=IPoA support
   DEPENDS:=kmod-atm
   KCONFIG:=CONFIG_ATM_CLIP
-  FILES:=$(LINUX_DIR)/net/atm/clip.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/atm/clip.ko
   AUTOLOAD:=$(call AutoProbe,clip)
 endef
 
@@ -681,7 +681,7 @@  define KernelPackage/mppe
   KCONFIG:= \
 	CONFIG_PPP_MPPE_MPPC \
 	CONFIG_PPP_MPPE
-  FILES:=$(LINUX_DIR)/drivers/net/ppp/ppp_mppe.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ppp/ppp_mppe.ko
   AUTOLOAD:=$(call AutoProbe,ppp_mppe)
 endef
 
@@ -693,7 +693,7 @@  $(eval $(call KernelPackage,mppe))
 
 
 SCHED_MODULES_CORE = sch_ingress sch_hfsc sch_htb sch_tbf cls_basic cls_fw cls_route cls_flow cls_u32 em_u32 act_gact act_mirred act_skbedit cls_matchall
-SCHED_FILES_CORE = $(foreach mod,$(SCHED_MODULES_CORE),$(LINUX_DIR)/net/sched/$(mod).ko)
+SCHED_FILES_CORE = $(foreach mod,$(SCHED_MODULES_CORE),$(LINUX_OBJ_DIR)/net/sched/$(mod).ko)
 
 define KernelPackage/sched-core
   SUBMENU:=$(NETWORK_SUPPORT_MENU)
@@ -733,7 +733,7 @@  define KernelPackage/sched-act-police
   TITLE:=Traffic Policing
   DEPENDS:=+kmod-sched-core
   KCONFIG:=CONFIG_NET_ACT_POLICE
-  FILES:=$(LINUX_DIR)/net/sched/act_police.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/sched/act_police.ko
   AUTOLOAD:=$(call AutoProbe,act_police)
 endef
 
@@ -748,8 +748,8 @@  define KernelPackage/sched-act-sample
 	CONFIG_NET_ACT_SAMPLE \
 	CONFIG_PSAMPLE
   FILES:= \
-	$(LINUX_DIR)/net/psample/psample.ko \
-	$(LINUX_DIR)/net/sched/act_sample.ko
+	$(LINUX_OBJ_DIR)/net/psample/psample.ko \
+	$(LINUX_OBJ_DIR)/net/sched/act_sample.ko
   AUTOLOAD:=$(call AutoProbe,act_sample psample)
 endef
 
@@ -765,7 +765,7 @@  define KernelPackage/sched-act-ipt
   TITLE:=IPtables targets
   DEPENDS:=+kmod-ipt-core +kmod-sched-core
   KCONFIG:=CONFIG_NET_ACT_IPT
-  FILES:=$(LINUX_DIR)/net/sched/act_ipt.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/sched/act_ipt.ko
   AUTOLOAD:=$(call AutoProbe, act_ipt)
 endef
 
@@ -781,7 +781,7 @@  define KernelPackage/sched-act-vlan
   TITLE:=Traffic VLAN manipulation
   DEPENDS:=+kmod-sched-core
   KCONFIG:=CONFIG_NET_ACT_VLAN
-  FILES:=$(LINUX_DIR)/net/sched/act_vlan.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/sched/act_vlan.ko
   AUTOLOAD:=$(call AutoProbe, act_vlan)
 endef
 
@@ -799,8 +799,8 @@  define KernelPackage/sched-bpf
 	CONFIG_NET_CLS_BPF \
 	CONFIG_NET_ACT_BPF
   FILES:= \
-	$(LINUX_DIR)/net/sched/cls_bpf.ko \
-	$(LINUX_DIR)/net/sched/act_bpf.ko
+	$(LINUX_OBJ_DIR)/net/sched/cls_bpf.ko \
+	$(LINUX_OBJ_DIR)/net/sched/act_bpf.ko
   AUTOLOAD:=$(call AutoLoad,72,cls_bpf act_bpf)
 endef
 
@@ -812,7 +812,7 @@  define KernelPackage/sched-cake
   TITLE:=Cake fq_codel/blue derived shaper
   DEPENDS:=+kmod-sched-core
   KCONFIG:=CONFIG_NET_SCH_CAKE
-  FILES:=$(LINUX_DIR)/net/sched/sch_cake.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/sched/sch_cake.ko
   AUTOLOAD:=$(call AutoProbe,sch_cake)
 endef
 
@@ -828,7 +828,7 @@  define KernelPackage/sched-connmark
   TITLE:=Traffic shaper conntrack mark support
   DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack-extra
   KCONFIG:=CONFIG_NET_ACT_CONNMARK
-  FILES:=$(LINUX_DIR)/net/sched/act_connmark.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/sched/act_connmark.ko
   AUTOLOAD:=$(call AutoLoad,71, act_connmark)
 endef
 $(eval $(call KernelPackage,sched-connmark))
@@ -839,7 +839,7 @@  define KernelPackage/sched-ctinfo
   TITLE:=Traffic shaper ctinfo support
   DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-ipt-conntrack-extra
   KCONFIG:=CONFIG_NET_ACT_CTINFO
-  FILES:=$(LINUX_DIR)/net/sched/act_ctinfo.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/sched/act_ctinfo.ko
   AUTOLOAD:=$(call AutoLoad,71, act_ctinfo)
 endef
 $(eval $(call KernelPackage,sched-ctinfo))
@@ -850,7 +850,7 @@  define KernelPackage/sched-drr
   TITLE:=Deficit Round Robin scheduler (DRR)
   DEPENDS:=+kmod-sched-core
   KCONFIG:=CONFIG_NET_SCH_DRR
-  FILES:=$(LINUX_DIR)/net/sched/sch_drr.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/sched/sch_drr.ko
   AUTOLOAD:=$(call AutoProbe,sch_drr)
 endef
 
@@ -866,7 +866,7 @@  define KernelPackage/sched-flower
   TITLE:=Flower traffic classifier
   DEPENDS:=+kmod-sched-core
   KCONFIG:=CONFIG_NET_CLS_FLOWER
-  FILES:=$(LINUX_DIR)/net/sched/cls_flower.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/sched/cls_flower.ko
   AUTOLOAD:=$(call AutoProbe, cls_flower)
 endef
 
@@ -882,7 +882,7 @@  define KernelPackage/sched-fq-pie
   TITLE:=Flow Queue Proportional Integral Enhanced (FQ-PIE)
   DEPENDS:=+kmod-sched-core +kmod-sched-pie
   KCONFIG:=CONFIG_NET_SCH_FQ_PIE
-  FILES:=$(LINUX_DIR)/net/sched/sch_fq_pie.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/sched/sch_fq_pie.ko
   AUTOLOAD:=$(call AutoProbe, sch_fq_pie)
 endef
 
@@ -900,7 +900,7 @@  define KernelPackage/sched-ipset
   KCONFIG:= \
 	CONFIG_NET_EMATCH_IPSET
   FILES:= \
-	$(LINUX_DIR)/net/sched/em_ipset.ko
+	$(LINUX_OBJ_DIR)/net/sched/em_ipset.ko
   AUTOLOAD:=$(call AutoLoad,72,em_ipset)
 endef
 
@@ -912,7 +912,7 @@  define KernelPackage/sched-mqprio
   TITLE:=Multi-queue priority scheduler (MQPRIO)
   DEPENDS:=+kmod-sched-core
   KCONFIG:=CONFIG_NET_SCH_MQPRIO
-  FILES:=$(LINUX_DIR)/net/sched/sch_mqprio.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/sched/sch_mqprio.ko
   AUTOLOAD:=$(call AutoProbe, sch_mqprio)
 endef
 
@@ -928,7 +928,7 @@  define KernelPackage/sched-pie
   TITLE:=Proportional Integral controller-Enhanced AQM (PIE)
   DEPENDS:=+kmod-sched-core
   KCONFIG:=CONFIG_NET_SCH_PIE
-  FILES:=$(LINUX_DIR)/net/sched/sch_pie.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/sched/sch_pie.ko
   AUTOLOAD:=$(call AutoProbe, sch_pie)
 endef
 
@@ -944,7 +944,7 @@  define KernelPackage/sched-prio
   TITLE:=Multi Band Priority Queueing (PRIO)
   DEPENDS:=+kmod-sched-core
   KCONFIG:=CONFIG_NET_SCH_PRIO
-  FILES:=$(LINUX_DIR)/net/sched/sch_prio.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/sched/sch_prio.ko
   AUTOLOAD:=$(call AutoProbe,sch_prio)
 endef
 
@@ -960,7 +960,7 @@  define KernelPackage/sched-red
   TITLE:=Random Early Detection (RED)
   DEPENDS:=+kmod-sched-core
   KCONFIG:=CONFIG_NET_SCH_RED
-  FILES:=$(LINUX_DIR)/net/sched/sch_red.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/sched/sch_red.ko
   AUTOLOAD:=$(call AutoProbe,sch_red)
 endef
 
@@ -976,7 +976,7 @@  define KernelPackage/sched-skbprio
   TITLE:=SKB priority queue scheduler (SKBPRIO)
   DEPENDS:=+kmod-sched-core
   KCONFIG:= CONFIG_NET_SCH_SKBPRIO
-  FILES:= $(LINUX_DIR)/net/sched/sch_skbprio.ko
+  FILES:= $(LINUX_OBJ_DIR)/net/sched/sch_skbprio.ko
   AUTOLOAD:=$(call AutoProbe,sch_skbprio)
 endef
 
@@ -987,14 +987,14 @@  define KernelPackage/bpf-test
   SUBMENU:=$(NETWORK_SUPPORT_MENU)
   TITLE:=Test Berkeley Packet Filter functionality
   KCONFIG:=CONFIG_TEST_BPF
-  FILES:=$(LINUX_DIR)/lib/test_bpf.ko
+  FILES:=$(LINUX_OBJ_DIR)/lib/test_bpf.ko
 endef
 
 $(eval $(call KernelPackage,bpf-test))
 
 
 SCHED_MODULES_EXTRA = sch_codel sch_dsmark sch_gred sch_multiq sch_sfq sch_teql sch_fq act_pedit act_simple act_skbmod act_csum em_cmp em_nbyte em_meta em_text
-SCHED_FILES_EXTRA = $(foreach mod,$(SCHED_MODULES_EXTRA),$(LINUX_DIR)/net/sched/$(mod).ko)
+SCHED_FILES_EXTRA = $(foreach mod,$(SCHED_MODULES_EXTRA),$(LINUX_OBJ_DIR)/net/sched/$(mod).ko)
 
 define KernelPackage/sched
   SUBMENU:=$(NETWORK_SUPPORT_MENU)
@@ -1038,7 +1038,7 @@  define KernelPackage/tcp-bbr
   SUBMENU:=$(NETWORK_SUPPORT_MENU)
   TITLE:=BBR TCP congestion control
   KCONFIG:=CONFIG_TCP_CONG_BBR
-  FILES:=$(LINUX_DIR)/net/ipv4/tcp_bbr.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/ipv4/tcp_bbr.ko
   AUTOLOAD:=$(call AutoProbe,tcp_bbr)
 endef
 
@@ -1062,7 +1062,7 @@  define KernelPackage/tls
   TITLE:=In-kernel TLS Support with HW Offload
   KCONFIG:=CONFIG_TLS \
 	CONFIG_TLS_DEVICE=y
-  FILES:=$(LINUX_DIR)/net/tls/tls.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/tls/tls.ko
   AUTOLOAD:=$(call AutoProbe,tls)
 endef
 
@@ -1080,7 +1080,7 @@  define KernelPackage/tcp-hybla
   SUBMENU:=$(NETWORK_SUPPORT_MENU)
   TITLE:=TCP-Hybla congestion control algorithm
   KCONFIG:=CONFIG_TCP_CONG_HYBLA
-  FILES:=$(LINUX_DIR)/net/ipv4/tcp_hybla.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/ipv4/tcp_hybla.ko
   AUTOLOAD:=$(call AutoProbe,tcp_hybla)
 endef
 
@@ -1098,7 +1098,7 @@  define KernelPackage/tcp-scalable
   SUBMENU:=$(NETWORK_SUPPORT_MENU)
   TITLE:=TCP-Scalable congestion control algorithm
   KCONFIG:=CONFIG_TCP_CONG_SCALABLE
-  FILES:=$(LINUX_DIR)/net/ipv4/tcp_scalable.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/ipv4/tcp_scalable.ko
   AUTOLOAD:=$(call AutoProbe,tcp-scalable)
 endef
 
@@ -1121,8 +1121,8 @@  define KernelPackage/ax25
 	CONFIG_AX25 \
 	CONFIG_MKISS
   FILES:= \
-	$(LINUX_DIR)/net/ax25/ax25.ko \
-	$(LINUX_DIR)/drivers/net/hamradio/mkiss.ko
+	$(LINUX_OBJ_DIR)/net/ax25/ax25.ko \
+	$(LINUX_OBJ_DIR)/drivers/net/hamradio/mkiss.ko
   AUTOLOAD:=$(call AutoLoad,80,ax25 mkiss)
 endef
 
@@ -1138,7 +1138,7 @@  define KernelPackage/pktgen
   DEPENDS:=@!TARGET_uml
   TITLE:=Network packet generator
   KCONFIG:=CONFIG_NET_PKTGEN
-  FILES:=$(LINUX_DIR)/net/core/pktgen.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/core/pktgen.ko
   AUTOLOAD:=$(call AutoLoad,99,pktgen)
 endef
 
@@ -1157,8 +1157,8 @@  define KernelPackage/l2tp
   KCONFIG:=CONFIG_L2TP \
 	CONFIG_L2TP_V3=y \
 	CONFIG_L2TP_DEBUGFS=n
-  FILES:=$(LINUX_DIR)/net/l2tp/l2tp_core.ko \
-	$(LINUX_DIR)/net/l2tp/l2tp_netlink.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/l2tp/l2tp_core.ko \
+	$(LINUX_OBJ_DIR)/net/l2tp/l2tp_netlink.ko
   AUTOLOAD:=$(call AutoLoad,32,l2tp_core l2tp_netlink)
 endef
 
@@ -1174,7 +1174,7 @@  define KernelPackage/l2tp-eth
   TITLE:=L2TP ethernet pseudowire support for L2TPv3
   DEPENDS:=+kmod-l2tp
   KCONFIG:=CONFIG_L2TP_ETH
-  FILES:=$(LINUX_DIR)/net/l2tp/l2tp_eth.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/l2tp/l2tp_eth.ko
   AUTOLOAD:=$(call AutoLoad,33,l2tp_eth)
 endef
 
@@ -1190,8 +1190,8 @@  define KernelPackage/l2tp-ip
   DEPENDS:=+kmod-l2tp
   KCONFIG:=CONFIG_L2TP_IP
   FILES:= \
-	$(LINUX_DIR)/net/l2tp/l2tp_ip.ko \
-	$(if $(CONFIG_IPV6),$(LINUX_DIR)/net/l2tp/l2tp_ip6.ko)
+	$(LINUX_OBJ_DIR)/net/l2tp/l2tp_ip.ko \
+	$(if $(CONFIG_IPV6),$(LINUX_OBJ_DIR)/net/l2tp/l2tp_ip6.ko)
   AUTOLOAD:=$(call AutoLoad,33,l2tp_ip $(if $(CONFIG_IPV6),l2tp_ip6))
 endef
 
@@ -1217,7 +1217,7 @@  define KernelPackage/sctp
      CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE=n \
      CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=n \
      CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
-  FILES:= $(LINUX_DIR)/net/sctp/sctp.ko
+  FILES:= $(LINUX_OBJ_DIR)/net/sctp/sctp.ko
   AUTOLOAD:= $(call AutoLoad,32,sctp)
   DEPENDS:=+kmod-lib-crc32c +kmod-crypto-md5 +kmod-crypto-hmac \
     +kmod-udptunnel4 +kmod-udptunnel6
@@ -1235,7 +1235,7 @@  define KernelPackage/netem
   TITLE:=Network emulation functionality
   DEPENDS:=+kmod-sched
   KCONFIG:=CONFIG_NET_SCH_NETEM
-  FILES:=$(LINUX_DIR)/net/sched/sch_netem.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/sched/sch_netem.ko
   AUTOLOAD:=$(call AutoLoad,99,netem)
 endef
 
@@ -1256,7 +1256,7 @@  define KernelPackage/slip
        CONFIG_SLIP_MODE_SLIP6=y
 
   FILES:= \
-       $(LINUX_DIR)/drivers/net/slip/slip.ko
+       $(LINUX_OBJ_DIR)/drivers/net/slip/slip.ko
   AUTOLOAD:=$(call AutoLoad,30,slip)
 endef
 
@@ -1270,7 +1270,7 @@  define KernelPackage/dnsresolver
   SUBMENU:=$(NETWORK_SUPPORT_MENU)
   TITLE:=In-kernel DNS Resolver
   KCONFIG:= CONFIG_DNS_RESOLVER
-  FILES:=$(LINUX_DIR)/net/dns_resolver/dns_resolver.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/dns_resolver/dns_resolver.ko
   AUTOLOAD:=$(call AutoLoad,30,dns_resolver)
 endef
 
@@ -1285,7 +1285,7 @@  define KernelPackage/rxrpc
 	CONFIG_RXKAD=m \
 	CONFIG_AF_RXRPC_DEBUG=n
   FILES:= \
-	$(LINUX_DIR)/net/rxrpc/rxrpc.ko
+	$(LINUX_OBJ_DIR)/net/rxrpc/rxrpc.ko
   AUTOLOAD:=$(call AutoLoad,30,rxrpc.ko)
   DEPENDS:= +kmod-crypto-manager +kmod-crypto-pcbc +kmod-crypto-fcrypt \
     +kmod-udptunnel4 +kmod-udptunnel6
@@ -1309,9 +1309,9 @@  define KernelPackage/mpls
 	CONFIG_MPLS_ROUTING=m \
 	CONFIG_MPLS_IPTUNNEL=m
   FILES:= \
-	$(LINUX_DIR)/net/mpls/mpls_gso.ko \
-	$(LINUX_DIR)/net/mpls/mpls_iptunnel.ko \
-	$(LINUX_DIR)/net/mpls/mpls_router.ko
+	$(LINUX_OBJ_DIR)/net/mpls/mpls_gso.ko \
+	$(LINUX_OBJ_DIR)/net/mpls/mpls_iptunnel.ko \
+	$(LINUX_OBJ_DIR)/net/mpls/mpls_router.ko
   AUTOLOAD:=$(call AutoLoad,30,mpls_router mpls_iptunnel mpls_gso)
 endef
 
@@ -1329,7 +1329,7 @@  define KernelPackage/9pnet
 	CONFIG_NET_9P_DEBUG=n \
 	CONFIG_NET_9P_FD=n@ge5.17
   FILES:= \
-	$(LINUX_DIR)/net/9p/9pnet.ko
+	$(LINUX_OBJ_DIR)/net/9p/9pnet.ko
   AUTOLOAD:=$(call AutoLoad,29,9pnet)
 endef
 
@@ -1348,7 +1348,7 @@  define KernelPackage/9pvirtio
 	CONFIG_NET_9P_XEN=n \
 	CONFIG_NET_9P_VIRTIO
   FILES:= \
-	$(LINUX_DIR)/net/9p/9pnet_virtio.ko
+	$(LINUX_OBJ_DIR)/net/9p/9pnet_virtio.ko
   AUTOLOAD:=$(call AutoLoad,29,9pnet_virtio)
 endef
 
@@ -1364,7 +1364,7 @@  define KernelPackage/nlmon
   SUBMENU:=$(NETWORK_SUPPORT_MENU)
   TITLE:=Virtual netlink monitoring device
   KCONFIG:=CONFIG_NLMON
-  FILES:=$(LINUX_DIR)/drivers/net/nlmon.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/nlmon.ko
   AUTOLOAD:=$(call AutoProbe,nlmon)
 endef
 
@@ -1380,7 +1380,7 @@  define KernelPackage/mdio
   TITLE:=MDIO (clause 45) PHY support
   KCONFIG:=CONFIG_MDIO
   HIDDEN:=1
-  FILES:=$(LINUX_DIR)/drivers/net/mdio.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/mdio.ko
   AUTOLOAD:=$(call AutoLoad,32,mdio)
 endef
 
@@ -1395,7 +1395,7 @@  define KernelPackage/mdio-bus-mux
   TITLE:=MDIO bus multiplexers
   KCONFIG:=CONFIG_MDIO_BUS_MUX
   HIDDEN:=1
-  FILES:=$(LINUX_DIR)/drivers/net/mdio/mdio-mux.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/mdio/mdio-mux.ko
   AUTOLOAD:=$(call AutoLoad,32,mdio-mux)
 endef
 
@@ -1410,7 +1410,7 @@  define KernelPackage/macsec
   TITLE:=IEEE 802.1AE MAC-level encryption (MAC)
   DEPENDS:=+kmod-crypto-gcm
   KCONFIG:=CONFIG_MACSEC
-  FILES:=$(LINUX_DIR)/drivers/net/macsec.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/macsec.ko
   AUTOLOAD:=$(call AutoLoad,13,macsec)
 endef
 
@@ -1425,7 +1425,7 @@  define KernelPackage/netlink-diag
   SUBMENU:=$(NETWORK_SUPPORT_MENU)
   TITLE:=Netlink diag support for ss utility
   KCONFIG:=CONFIG_NETLINK_DIAG
-  FILES:=$(LINUX_DIR)/net/netlink/netlink_diag.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/netlink/netlink_diag.ko
   AUTOLOAD:=$(call AutoLoad,31,netlink-diag)
 endef
 
@@ -1446,10 +1446,10 @@  define KernelPackage/inet-diag
 	CONFIG_INET_RAW_DIAG \
 	CONFIG_INET_DIAG_DESTROY=n
   FILES:= \
-	$(LINUX_DIR)/net/ipv4/inet_diag.ko \
-	$(LINUX_DIR)/net/ipv4/tcp_diag.ko \
-	$(LINUX_DIR)/net/ipv4/udp_diag.ko \
-	$(LINUX_DIR)/net/ipv4/raw_diag.ko
+	$(LINUX_OBJ_DIR)/net/ipv4/inet_diag.ko \
+	$(LINUX_OBJ_DIR)/net/ipv4/tcp_diag.ko \
+	$(LINUX_OBJ_DIR)/net/ipv4/udp_diag.ko \
+	$(LINUX_OBJ_DIR)/net/ipv4/raw_diag.ko
   AUTOLOAD:=$(call AutoLoad,31,inet_diag tcp_diag udp_diag raw_diag)
 endef
 
@@ -1466,7 +1466,7 @@  define KernelPackage/xdp-sockets-diag
   TITLE:=PF_XDP sockets monitoring interface support for ss utility
   DEPENDS:=@KERNEL_XDP_SOCKETS
   KCONFIG:=CONFIG_XDP_SOCKETS_DIAG
-  FILES:=$(LINUX_DIR)/net/xdp/xsk_diag.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/xdp/xsk_diag.ko
   AUTOLOAD:=$(call AutoLoad,31,xsk_diag)
 endef
 
@@ -1488,7 +1488,7 @@  define KernelPackage/wireguard
   KCONFIG:= \
 	  CONFIG_WIREGUARD \
 	  CONFIG_WIREGUARD_DEBUG=n
-  FILES:=$(LINUX_DIR)/drivers/net/wireguard/wireguard.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/wireguard/wireguard.ko
   AUTOLOAD:=$(call AutoProbe,wireguard)
 endef
 
@@ -1509,7 +1509,7 @@  define KernelPackage/netconsole
   TITLE:=Network console logging support
   KCONFIG:=CONFIG_NETCONSOLE \
 	  CONFIG_NETCONSOLE_DYNAMIC=n
-  FILES:=$(LINUX_DIR)/drivers/net/netconsole.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/netconsole.ko
   AUTOLOAD:=$(call AutoProbe,netconsole)
 endef
 
@@ -1526,7 +1526,7 @@  define KernelPackage/qrtr
   HIDDEN:=1
   KCONFIG:=CONFIG_QRTR
   FILES:= \
-  $(LINUX_DIR)/net/qrtr/qrtr.ko
+  $(LINUX_OBJ_DIR)/net/qrtr/qrtr.ko
   AUTOLOAD:=$(call AutoProbe,qrtr)
 endef
 
@@ -1541,7 +1541,7 @@  define KernelPackage/qrtr-tun
   TITLE:=TUN device for Qualcomm IPC Router
   DEPENDS:=+kmod-qrtr
   KCONFIG:=CONFIG_QRTR_TUN
-  FILES:= $(LINUX_DIR)/net/qrtr/qrtr-tun.ko
+  FILES:= $(LINUX_OBJ_DIR)/net/qrtr/qrtr-tun.ko
   AUTOLOAD:=$(call AutoProbe,qrtr-tun)
 endef
 
@@ -1556,7 +1556,7 @@  define KernelPackage/qrtr-smd
   TITLE:=SMD IPC Router channels
   DEPENDS:=+kmod-qrtr @TARGET_qualcommax
   KCONFIG:=CONFIG_QRTR_SMD
-  FILES:= $(LINUX_DIR)/net/qrtr/qrtr-smd.ko
+  FILES:= $(LINUX_OBJ_DIR)/net/qrtr/qrtr-smd.ko
   AUTOLOAD:=$(call AutoProbe,qrtr-smd)
 endef
 
@@ -1571,7 +1571,7 @@  define KernelPackage/qrtr-mhi
   TITLE:=MHI IPC Router channels
   DEPENDS:=+kmod-mhi-bus +kmod-qrtr
   KCONFIG:=CONFIG_QRTR_MHI
-  FILES:= $(LINUX_DIR)/net/qrtr/qrtr-mhi.ko
+  FILES:= $(LINUX_OBJ_DIR)/net/qrtr/qrtr-mhi.ko
   AUTOLOAD:=$(call AutoProbe,qrtr-mhi)
 endef
 
diff --git a/package/kernel/linux/modules/nls.mk b/package/kernel/linux/modules/nls.mk
index 7450ed1ce5..83d8c78630 100644
--- a/package/kernel/linux/modules/nls.mk
+++ b/package/kernel/linux/modules/nls.mk
@@ -9,7 +9,7 @@  define KernelPackage/nls-base
   SUBMENU:=Native Language Support
   TITLE:=Native Language Support
   KCONFIG:=CONFIG_NLS
-  FILES:=$(LINUX_DIR)/fs/nls/nls_base.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/nls/nls_base.ko
 endef
 
 define KernelPackage/nls-base/description
@@ -23,7 +23,7 @@  define KernelPackage/nls-cp437
   SUBMENU:=Native Language Support
   TITLE:=Codepage 437 (United States, Canada)
   KCONFIG:=CONFIG_NLS_CODEPAGE_437
-  FILES:=$(LINUX_DIR)/fs/nls/nls_cp437.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/nls/nls_cp437.ko
   AUTOLOAD:=$(call AutoLoad,25,nls_cp437)
   $(call AddDepends/nls)
 endef
@@ -39,7 +39,7 @@  define KernelPackage/nls-cp775
   SUBMENU:=Native Language Support
   TITLE:=Codepage 775 (Baltic Rim)
   KCONFIG:=CONFIG_NLS_CODEPAGE_775
-  FILES:=$(LINUX_DIR)/fs/nls/nls_cp775.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/nls/nls_cp775.ko
   AUTOLOAD:=$(call AutoLoad,25,nls_cp775)
   $(call AddDepends/nls)
 endef
@@ -55,7 +55,7 @@  define KernelPackage/nls-cp850
   SUBMENU:=Native Language Support
   TITLE:=Codepage 850 (Europe)
   KCONFIG:=CONFIG_NLS_CODEPAGE_850
-  FILES:=$(LINUX_DIR)/fs/nls/nls_cp850.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/nls/nls_cp850.ko
   AUTOLOAD:=$(call AutoLoad,25,nls_cp850)
   $(call AddDepends/nls)
 endef
@@ -71,7 +71,7 @@  define KernelPackage/nls-cp852
   SUBMENU:=Native Language Support
   TITLE:=Codepage 852 (Europe)
   KCONFIG:=CONFIG_NLS_CODEPAGE_852
-  FILES:=$(LINUX_DIR)/fs/nls/nls_cp852.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/nls/nls_cp852.ko
   AUTOLOAD:=$(call AutoLoad,25,nls_cp852)
   $(call AddDepends/nls)
 endef
@@ -87,7 +87,7 @@  define KernelPackage/nls-cp862
   SUBMENU:=Native Language Support
   TITLE:=Codepage 862 (Hebrew)
   KCONFIG:=CONFIG_NLS_CODEPAGE_862
-  FILES:=$(LINUX_DIR)/fs/nls/nls_cp862.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/nls/nls_cp862.ko
   AUTOLOAD:=$(call AutoLoad,25,nls_cp862)
   $(call AddDepends/nls)
 endef
@@ -103,7 +103,7 @@  define KernelPackage/nls-cp864
   SUBMENU:=Native Language Support
   TITLE:=Codepage 864 (Arabic)
   KCONFIG:=CONFIG_NLS_CODEPAGE_864
-  FILES:=$(LINUX_DIR)/fs/nls/nls_cp864.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/nls/nls_cp864.ko
   AUTOLOAD:=$(call AutoLoad,25,nls_cp864)
   $(call AddDepends/nls)
 endef
@@ -119,7 +119,7 @@  define KernelPackage/nls-cp866
   SUBMENU:=Native Language Support
   TITLE:=Codepage 866 (Cyrillic)
   KCONFIG:=CONFIG_NLS_CODEPAGE_866
-  FILES:=$(LINUX_DIR)/fs/nls/nls_cp866.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/nls/nls_cp866.ko
   AUTOLOAD:=$(call AutoLoad,25,nls_cp866)
   $(call AddDepends/nls)
 endef
@@ -136,8 +136,8 @@  define KernelPackage/nls-cp932
   TITLE:=Codepage 932 (Japanese)
   KCONFIG:=CONFIG_NLS_CODEPAGE_932
   FILES:= \
-	$(LINUX_DIR)/fs/nls/nls_cp932.ko \
-	$(LINUX_DIR)/fs/nls/nls_euc-jp.ko
+	$(LINUX_OBJ_DIR)/fs/nls/nls_cp932.ko \
+	$(LINUX_OBJ_DIR)/fs/nls/nls_euc-jp.ko
   AUTOLOAD:=$(call AutoLoad,25,nls_cp932 nls_euc-jp)
   $(call AddDepends/nls)
 endef
@@ -153,7 +153,7 @@  define KernelPackage/nls-cp936
   SUBMENU:=Native Language Support
   TITLE:=Codepage 936 (Simplified Chinese)
   KCONFIG:=CONFIG_NLS_CODEPAGE_936
-  FILES:=$(LINUX_DIR)/fs/nls/nls_cp936.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/nls/nls_cp936.ko
   AUTOLOAD:=$(call AutoLoad,25,nls_cp936)
   $(call AddDepends/nls)
 endef
@@ -169,7 +169,7 @@  define KernelPackage/nls-cp950
   SUBMENU:=Native Language Support
   TITLE:=Codepage 950 (Traditional Chinese)
   KCONFIG:=CONFIG_NLS_CODEPAGE_950
-  FILES:=$(LINUX_DIR)/fs/nls/nls_cp950.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/nls/nls_cp950.ko
   AUTOLOAD:=$(call AutoLoad,25,nls_cp950)
   $(call AddDepends/nls)
 endef
@@ -185,7 +185,7 @@  define KernelPackage/nls-cp1250
   SUBMENU:=Native Language Support
   TITLE:=Codepage 1250 (Eastern Europe)
   KCONFIG:=CONFIG_NLS_CODEPAGE_1250
-  FILES:=$(LINUX_DIR)/fs/nls/nls_cp1250.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/nls/nls_cp1250.ko
   AUTOLOAD:=$(call AutoLoad,25,nls_cp1250)
   $(call AddDepends/nls)
 endef
@@ -201,7 +201,7 @@  define KernelPackage/nls-cp1251
   SUBMENU:=Native Language Support
   TITLE:=Codepage 1251 (Russian)
   KCONFIG:=CONFIG_NLS_CODEPAGE_1251
-  FILES:=$(LINUX_DIR)/fs/nls/nls_cp1251.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/nls/nls_cp1251.ko
   AUTOLOAD:=$(call AutoLoad,25,nls_cp1251)
   $(call AddDepends/nls)
 endef
@@ -217,7 +217,7 @@  define KernelPackage/nls-iso8859-1
   SUBMENU:=Native Language Support
   TITLE:=ISO 8859-1 (Latin 1; Western European Languages)
   KCONFIG:=CONFIG_NLS_ISO8859_1
-  FILES:=$(LINUX_DIR)/fs/nls/nls_iso8859-1.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/nls/nls_iso8859-1.ko
   AUTOLOAD:=$(call AutoLoad,25,nls_iso8859-1)
   $(call AddDepends/nls)
 endef
@@ -233,7 +233,7 @@  define KernelPackage/nls-iso8859-2
   SUBMENU:=Native Language Support
   TITLE:=ISO 8859-2 (Latin 2; Central European Languages)
   KCONFIG:=CONFIG_NLS_ISO8859_2
-  FILES:=$(LINUX_DIR)/fs/nls/nls_iso8859-2.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/nls/nls_iso8859-2.ko
   AUTOLOAD:=$(call AutoLoad,25,nls_iso8859-2)
   $(call AddDepends/nls)
 endef
@@ -249,7 +249,7 @@  define KernelPackage/nls-iso8859-6
   SUBMENU:=Native Language Support
   TITLE:=ISO 8859-6 (Arabic)
   KCONFIG:=CONFIG_NLS_ISO8859_6
-  FILES:=$(LINUX_DIR)/fs/nls/nls_iso8859-6.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/nls/nls_iso8859-6.ko
   AUTOLOAD:=$(call AutoLoad,25,nls_iso8859-6)
   $(call AddDepends/nls)
 endef
@@ -265,7 +265,7 @@  define KernelPackage/nls-iso8859-8
   SUBMENU:=Native Language Support
   TITLE:=ISO 8859-8, CP1255 (Hebrew)
   KCONFIG:=CONFIG_NLS_ISO8859_8
-  FILES:=$(LINUX_DIR)/fs/nls/nls_cp1255.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/nls/nls_cp1255.ko
   AUTOLOAD:=$(call AutoLoad,25,nls_cp1255)
   $(call AddDepends/nls)
 endef
@@ -281,7 +281,7 @@  define KernelPackage/nls-iso8859-13
   SUBMENU:=Native Language Support
   TITLE:=ISO 8859-13 (Latin 7; Baltic)
   KCONFIG:=CONFIG_NLS_ISO8859_13
-  FILES:=$(LINUX_DIR)/fs/nls/nls_iso8859-13.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/nls/nls_iso8859-13.ko
   AUTOLOAD:=$(call AutoLoad,25,nls_iso8859-13)
   $(call AddDepends/nls)
 endef
@@ -297,7 +297,7 @@  define KernelPackage/nls-iso8859-15
   SUBMENU:=Native Language Support
   TITLE:=ISO 8859-15 (Latin 9; Western, with Euro symbol)
   KCONFIG:=CONFIG_NLS_ISO8859_15
-  FILES:=$(LINUX_DIR)/fs/nls/nls_iso8859-15.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/nls/nls_iso8859-15.ko
   AUTOLOAD:=$(call AutoLoad,25,nls_iso8859-15)
   $(call AddDepends/nls)
 endef
@@ -313,7 +313,7 @@  define KernelPackage/nls-koi8r
   SUBMENU:=Native Language Support
   TITLE:=KOI8-R (Russian)
   KCONFIG:=CONFIG_NLS_KOI8_R
-  FILES:=$(LINUX_DIR)/fs/nls/nls_koi8-r.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/nls/nls_koi8-r.ko
   AUTOLOAD:=$(call AutoLoad,25,nls_koi8-r)
   $(call AddDepends/nls)
 endef
@@ -329,7 +329,7 @@  define KernelPackage/nls-utf8
   SUBMENU:=Native Language Support
   TITLE:=UTF-8
   KCONFIG:=CONFIG_NLS_UTF8
-  FILES:=$(LINUX_DIR)/fs/nls/nls_utf8.ko
+  FILES:=$(LINUX_OBJ_DIR)/fs/nls/nls_utf8.ko
   AUTOLOAD:=$(call AutoLoad,25,nls_utf8)
   $(call AddDepends/nls)
 endef
diff --git a/package/kernel/linux/modules/other.mk b/package/kernel/linux/modules/other.mk
index face579472..b986b6b573 100644
--- a/package/kernel/linux/modules/other.mk
+++ b/package/kernel/linux/modules/other.mk
@@ -16,7 +16,7 @@  define KernelPackage/6lowpan
   KCONFIG:= \
 	CONFIG_6LOWPAN \
 	CONFIG_6LOWPAN_NHC=n
-  FILES:=$(LINUX_DIR)/net/6lowpan/6lowpan.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/6lowpan/6lowpan.ko
   AUTOLOAD:=$(call AutoProbe,6lowpan)
 endef
 
@@ -50,15 +50,15 @@  define KernelPackage/bluetooth
 	CONFIG_BT_HIDP
   $(call AddDepends/rfkill)
   FILES:= \
-	$(LINUX_DIR)/net/bluetooth/bluetooth.ko \
-	$(LINUX_DIR)/net/bluetooth/rfcomm/rfcomm.ko \
-	$(LINUX_DIR)/net/bluetooth/bnep/bnep.ko \
-	$(LINUX_DIR)/net/bluetooth/hidp/hidp.ko \
-	$(LINUX_DIR)/drivers/bluetooth/hci_uart.ko \
-	$(LINUX_DIR)/drivers/bluetooth/btusb.ko \
-	$(LINUX_DIR)/drivers/bluetooth/btintel.ko \
-	$(LINUX_DIR)/drivers/bluetooth/btrtl.ko \
-	$(LINUX_DIR)/drivers/bluetooth/btmtk.ko@ge5.17
+	$(LINUX_OBJ_DIR)/net/bluetooth/bluetooth.ko \
+	$(LINUX_OBJ_DIR)/net/bluetooth/rfcomm/rfcomm.ko \
+	$(LINUX_OBJ_DIR)/net/bluetooth/bnep/bnep.ko \
+	$(LINUX_OBJ_DIR)/net/bluetooth/hidp/hidp.ko \
+	$(LINUX_OBJ_DIR)/drivers/bluetooth/hci_uart.ko \
+	$(LINUX_OBJ_DIR)/drivers/bluetooth/btusb.ko \
+	$(LINUX_OBJ_DIR)/drivers/bluetooth/btintel.ko \
+	$(LINUX_OBJ_DIR)/drivers/bluetooth/btrtl.ko \
+	$(LINUX_OBJ_DIR)/drivers/bluetooth/btmtk.ko@ge5.17
   AUTOLOAD:=$(call AutoProbe,bluetooth rfcomm bnep hidp hci_uart btusb)
 endef
 
@@ -76,7 +76,7 @@  define KernelPackage/ath3k
 	CONFIG_BT_ATH3K \
 	CONFIG_BT_HCIUART_ATH3K=y
   FILES:= \
-	$(LINUX_DIR)/drivers/bluetooth/ath3k.ko
+	$(LINUX_OBJ_DIR)/drivers/bluetooth/ath3k.ko
   AUTOLOAD:=$(call AutoProbe,ath3k)
 endef
 
@@ -92,7 +92,7 @@  define KernelPackage/bluetooth-6lowpan
   TITLE:=Bluetooth 6LoWPAN support
   DEPENDS:=+kmod-6lowpan +kmod-bluetooth
   KCONFIG:=CONFIG_BT_6LOWPAN
-  FILES:=$(LINUX_DIR)/net/bluetooth/bluetooth_6lowpan.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/bluetooth/bluetooth_6lowpan.ko
   AUTOLOAD:=$(call AutoProbe,bluetooth_6lowpan)
 endef
 
@@ -111,8 +111,8 @@  define KernelPackage/btmrvl
 	CONFIG_BT_MRVL \
 	CONFIG_BT_MRVL_SDIO
   FILES:= \
-	$(LINUX_DIR)/drivers/bluetooth/btmrvl.ko \
-	$(LINUX_DIR)/drivers/bluetooth/btmrvl_sdio.ko
+	$(LINUX_OBJ_DIR)/drivers/bluetooth/btmrvl.ko \
+	$(LINUX_OBJ_DIR)/drivers/bluetooth/btmrvl_sdio.ko
   AUTOLOAD:=$(call AutoProbe,btmrvl btmrvl_sdio)
 endef
 
@@ -130,7 +130,7 @@  define KernelPackage/btsdio
   KCONFIG:= \
 	CONFIG_BT_HCIBTSDIO
   FILES:= \
-	$(LINUX_DIR)/drivers/bluetooth/btsdio.ko
+	$(LINUX_OBJ_DIR)/drivers/bluetooth/btsdio.ko
   AUTOLOAD:=$(call AutoProbe,btsdio)
 endef
 
@@ -148,7 +148,7 @@  define KernelPackage/dma-buf
   KCONFIG:=CONFIG_DMA_SHARED_BUFFER
   ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE)),"")
     ifeq ($(strip $(CONFIG_KERNEL_GIT_CLONE_URI)),"")
-      FILES:=$(LINUX_DIR)/drivers/dma-buf/dma-shared-buffer.ko
+      FILES:=$(LINUX_OBJ_DIR)/drivers/dma-buf/dma-shared-buffer.ko
     endif
   endif
   AUTOLOAD:=$(call AutoLoad,20,dma-shared-buffer)
@@ -160,7 +160,7 @@  define KernelPackage/eeprom-93cx6
   SUBMENU:=$(OTHER_MENU)
   TITLE:=EEPROM 93CX6 support
   KCONFIG:=CONFIG_EEPROM_93CX6
-  FILES:=$(LINUX_DIR)/drivers/misc/eeprom/eeprom_93cx6.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/misc/eeprom/eeprom_93cx6.ko
   AUTOLOAD:=$(call AutoLoad,20,eeprom_93cx6)
 endef
 
@@ -176,7 +176,7 @@  define KernelPackage/eeprom-at24
   TITLE:=EEPROM AT24 support
   KCONFIG:=CONFIG_EEPROM_AT24
   DEPENDS:=+kmod-i2c-core +kmod-regmap-i2c
-  FILES:=$(LINUX_DIR)/drivers/misc/eeprom/at24.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/misc/eeprom/at24.ko
   AUTOLOAD:=$(call AutoProbe,at24)
 endef
 
@@ -191,7 +191,7 @@  define KernelPackage/eeprom-at25
   SUBMENU:=$(OTHER_MENU)
   TITLE:=EEPROM AT25 support
   KCONFIG:=CONFIG_EEPROM_AT25
-  FILES:=$(LINUX_DIR)/drivers/misc/eeprom/at25.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/misc/eeprom/at25.ko
   AUTOLOAD:=$(call AutoProbe,at25)
 endef
 
@@ -212,10 +212,10 @@  define KernelPackage/google-firmware
 	CONFIG_GOOGLE_MEMCONSOLE_COREBOOT \
 	CONFIG_GOOGLE_VPD
   FILES:= \
-	  $(LINUX_DIR)/drivers/firmware/google/coreboot_table.ko \
-	  $(LINUX_DIR)/drivers/firmware/google/memconsole.ko \
-	  $(LINUX_DIR)/drivers/firmware/google/memconsole-coreboot.ko \
-	  $(LINUX_DIR)/drivers/firmware/google/vpd-sysfs.ko
+	  $(LINUX_OBJ_DIR)/drivers/firmware/google/coreboot_table.ko \
+	  $(LINUX_OBJ_DIR)/drivers/firmware/google/memconsole.ko \
+	  $(LINUX_OBJ_DIR)/drivers/firmware/google/memconsole-coreboot.ko \
+	  $(LINUX_OBJ_DIR)/drivers/firmware/google/vpd-sysfs.ko
   AUTOLOAD:=$(call AutoProbe,coreboot_table memconsole-coreboot vpd-sysfs)
 endef
 
@@ -233,7 +233,7 @@  define KernelPackage/gpio-f7188x
   TITLE:=Fintek F718xx/F818xx GPIO Support
   DEPENDS:=@GPIO_SUPPORT @TARGET_x86
   KCONFIG:=CONFIG_GPIO_F7188X
-  FILES:=$(LINUX_DIR)/drivers/gpio/gpio-f7188x.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/gpio/gpio-f7188x.ko
   AUTOLOAD:=$(call AutoProbe,gpio-f7188x)
 endef
 
@@ -248,7 +248,7 @@  define KernelPackage/lkdtm
   SUBMENU:=$(OTHER_MENU)
   TITLE:=Linux Kernel Dump Test Tool Module
   KCONFIG:=CONFIG_LKDTM
-  FILES:=$(LINUX_DIR)/drivers/misc/lkdtm/lkdtm.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/misc/lkdtm/lkdtm.ko
   AUTOLOAD:=$(call AutoProbe,lkdtm)
 endef
 
@@ -266,7 +266,7 @@  define KernelPackage/pinctrl-mcp23s08
   HIDDEN:=1
   DEPENDS:=@GPIO_SUPPORT +kmod-regmap-core
   KCONFIG:=CONFIG_PINCTRL_MCP23S08
-  FILES:=$(LINUX_DIR)/drivers/pinctrl/pinctrl-mcp23s08.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/pinctrl/pinctrl-mcp23s08.ko
   AUTOLOAD:=$(call AutoLoad,40,pinctrl-mcp23s08)
 endef
 
@@ -285,7 +285,7 @@  define KernelPackage/pinctrl-mcp23s08-i2c
 	+kmod-i2c-core \
 	+kmod-regmap-i2c
   KCONFIG:=CONFIG_PINCTRL_MCP23S08_I2C
-  FILES:=$(LINUX_DIR)/drivers/pinctrl/pinctrl-mcp23s08_i2c.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/pinctrl/pinctrl-mcp23s08_i2c.ko
   AUTOLOAD:=$(call AutoLoad,40,pinctrl-mcp23s08-i2c)
 endef
 
@@ -301,7 +301,7 @@  define KernelPackage/pinctrl-mcp23s08-spi
   TITLE:=Microchip MCP23xxx I/O expander (SPI)
   DEPENDS:=@GPIO_SUPPORT +kmod-pinctrl-mcp23s08
   KCONFIG:=CONFIG_PINCTRL_MCP23S08_SPI
-  FILES:=$(LINUX_DIR)/drivers/pinctrl/pinctrl-mcp23s08_spi.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/pinctrl/pinctrl-mcp23s08_spi.ko
   AUTOLOAD:=$(call AutoLoad,40,pinctrl-mcp23s08-spi)
 endef
 
@@ -316,7 +316,7 @@  define KernelPackage/gpio-nxp-74hc164
   SUBMENU:=$(OTHER_MENU)
   TITLE:=NXP 74HC164 GPIO expander support
   KCONFIG:=CONFIG_GPIO_74X164
-  FILES:=$(LINUX_DIR)/drivers/gpio/gpio-74x164.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/gpio/gpio-74x164.ko
   AUTOLOAD:=$(call AutoProbe,gpio-74x164)
 endef
 
@@ -331,7 +331,7 @@  define KernelPackage/gpio-pca953x
   DEPENDS:=@GPIO_SUPPORT +kmod-i2c-core +kmod-regmap-i2c
   TITLE:=PCA95xx, TCA64xx, and MAX7310 I/O ports
   KCONFIG:=CONFIG_GPIO_PCA953X
-  FILES:=$(LINUX_DIR)/drivers/gpio/gpio-pca953x.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/gpio/gpio-pca953x.ko
   AUTOLOAD:=$(call AutoLoad,55,gpio-pca953x)
 endef
 
@@ -347,7 +347,7 @@  define KernelPackage/gpio-pcf857x
   DEPENDS:=@GPIO_SUPPORT +kmod-i2c-core
   TITLE:=PCX857x, PCA967x and MAX732X I2C GPIO expanders
   KCONFIG:=CONFIG_GPIO_PCF857X
-  FILES:=$(LINUX_DIR)/drivers/gpio/gpio-pcf857x.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/gpio/gpio-pcf857x.ko
   AUTOLOAD:=$(call AutoLoad,55,gpio-pcf857x)
 endef
 
@@ -363,7 +363,7 @@  define KernelPackage/gpio-it87
   DEPENDS:=@GPIO_SUPPORT @TARGET_x86
   TITLE:=GPIO support for IT87xx Super I/O chips
   KCONFIG:=CONFIG_GPIO_IT87
-  FILES:=$(LINUX_DIR)/drivers/gpio/gpio-it87.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/gpio/gpio-it87.ko
   AUTOLOAD:=$(call AutoLoad,25,gpio-it87,1)
 endef
 
@@ -381,7 +381,7 @@  define KernelPackage/gpio-amd-fch
   DEPENDS:=@GPIO_SUPPORT @TARGET_x86
   TITLE:=GPIO support for AMD Fusion Controller Hub (G-series SOCs)
   KCONFIG:=CONFIG_GPIO_AMD_FCH
-  FILES:=$(LINUX_DIR)/drivers/gpio/gpio-amd-fch.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/gpio/gpio-amd-fch.ko
   AUTOLOAD:=$(call AutoLoad,25,gpio-amd-fch,1)
 endef
 
@@ -400,8 +400,8 @@  define KernelPackage/ppdev
 	CONFIG_PARPORT \
 	CONFIG_PPDEV
   FILES:= \
-	$(LINUX_DIR)/drivers/parport/parport.ko \
-	$(LINUX_DIR)/drivers/char/ppdev.ko
+	$(LINUX_OBJ_DIR)/drivers/parport/parport.ko \
+	$(LINUX_OBJ_DIR)/drivers/char/ppdev.ko
   AUTOLOAD:=$(call AutoLoad,50,parport ppdev)
 endef
 
@@ -424,7 +424,7 @@  define KernelPackage/parport-pc
 	CONFIG_SCSI_IMM=n \
 	CONFIG_SCSI_PPA=n
   FILES:= \
-	$(LINUX_DIR)/drivers/parport/parport_pc.ko
+	$(LINUX_OBJ_DIR)/drivers/parport/parport_pc.ko
   AUTOLOAD:=$(call AutoLoad,51,parport_pc)
 endef
 
@@ -438,7 +438,7 @@  define KernelPackage/lp
   KCONFIG:= \
 	CONFIG_PRINTER
   FILES:= \
-	$(LINUX_DIR)/drivers/char/lp.ko
+	$(LINUX_OBJ_DIR)/drivers/char/lp.ko
   AUTOLOAD:=$(call AutoLoad,52,lp)
 endef
 
@@ -458,8 +458,8 @@  define KernelPackage/mmc
 	CONFIG_MMC_WBSD=n \
 	CONFIG_SDIO_UART=n
   FILES:= \
-	$(LINUX_DIR)/drivers/mmc/core/mmc_core.ko \
-	$(LINUX_DIR)/drivers/mmc/core/mmc_block.ko
+	$(LINUX_OBJ_DIR)/drivers/mmc/core/mmc_core.ko \
+	$(LINUX_OBJ_DIR)/drivers/mmc/core/mmc_block.ko
   AUTOLOAD:=$(call AutoProbe,mmc_core mmc_block,1)
 endef
 
@@ -479,8 +479,8 @@  define KernelPackage/sdhci
 	CONFIG_MMC_SDHCI_PLTFM \
 	CONFIG_MMC_SDHCI_PCI=n
   FILES:= \
-	$(LINUX_DIR)/drivers/mmc/host/sdhci.ko \
-	$(LINUX_DIR)/drivers/mmc/host/sdhci-pltfm.ko
+	$(LINUX_OBJ_DIR)/drivers/mmc/host/sdhci.ko \
+	$(LINUX_OBJ_DIR)/drivers/mmc/host/sdhci-pltfm.ko
 
   AUTOLOAD:=$(call AutoProbe,sdhci-pltfm,1)
 endef
@@ -501,7 +501,7 @@  define KernelPackage/rfkill
     CONFIG_RFKILL_INPUT=y \
     CONFIG_RFKILL_LEDS=y
   FILES:= \
-    $(LINUX_DIR)/net/rfkill/rfkill.ko
+    $(LINUX_OBJ_DIR)/net/rfkill/rfkill.ko
   AUTOLOAD:=$(call AutoLoad,20,rfkill)
 endef
 
@@ -518,7 +518,7 @@  define KernelPackage/softdog
   TITLE:=Software watchdog driver
   KCONFIG:=CONFIG_SOFT_WATCHDOG \
   	CONFIG_SOFT_WATCHDOG_PRETIMEOUT=n
-  FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/softdog.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/$(WATCHDOG_DIR)/softdog.ko
   AUTOLOAD:=$(call AutoLoad,50,softdog,1)
 endef
 
@@ -545,7 +545,7 @@  define KernelPackage/ssb
 	CONFIG_SSB_POSSIBLE=y \
 	CONFIG_SSB_SPROM=y \
 	CONFIG_SSB_SILENT=y
-  FILES:=$(LINUX_DIR)/drivers/ssb/ssb.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/ssb/ssb.ko
   AUTOLOAD:=$(call AutoLoad,18,ssb,1)
 endef
 
@@ -572,7 +572,7 @@  define KernelPackage/bcma
 	CONFIG_BCMA_DRIVER_PCI_HOSTMODE=n \
 	CONFIG_BCMA_DRIVER_GMAC_CMN=n \
 	CONFIG_BCMA_DEBUG=n
-  FILES:=$(LINUX_DIR)/drivers/bcma/bcma.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/bcma/bcma.ko
   AUTOLOAD:=$(call AutoLoad,29,bcma)
 endef
 
@@ -590,7 +590,7 @@  define KernelPackage/rtc-ds1307
   DEPENDS:=+kmod-i2c-core +kmod-regmap-i2c +kmod-hwmon-core
   KCONFIG:=CONFIG_RTC_DRV_DS1307 \
 	CONFIG_RTC_CLASS=y
-  FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1307.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/rtc/rtc-ds1307.ko
   AUTOLOAD:=$(call AutoProbe,rtc-ds1307)
 endef
 
@@ -610,7 +610,7 @@  define KernelPackage/rtc-ds1374
   KCONFIG:=CONFIG_RTC_DRV_DS1374 \
 	CONFIG_RTC_DRV_DS1374_WDT=n \
 	CONFIG_RTC_CLASS=y
-  FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1374.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/rtc/rtc-ds1374.ko
   AUTOLOAD:=$(call AutoProbe,rtc-ds1374)
 endef
 
@@ -628,7 +628,7 @@  define KernelPackage/rtc-ds1672
   DEPENDS:=+kmod-i2c-core
   KCONFIG:=CONFIG_RTC_DRV_DS1672 \
 	CONFIG_RTC_CLASS=y
-  FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1672.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/rtc/rtc-ds1672.ko
   AUTOLOAD:=$(call AutoProbe,rtc-ds1672)
 endef
 
@@ -646,7 +646,7 @@  define KernelPackage/rtc-em3027
   DEPENDS:=+kmod-i2c-core
   KCONFIG:=CONFIG_RTC_DRV_EM3027 \
 	CONFIG_RTC_CLASS=y
-  FILES:=$(LINUX_DIR)/drivers/rtc/rtc-em3027.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/rtc/rtc-em3027.ko
   AUTOLOAD:=$(call AutoProbe,rtc-em3027)
 endef
 
@@ -664,7 +664,7 @@  define KernelPackage/rtc-isl1208
   DEPENDS:=+kmod-i2c-core
   KCONFIG:=CONFIG_RTC_DRV_ISL1208 \
 	CONFIG_RTC_CLASS=y
-  FILES:=$(LINUX_DIR)/drivers/rtc/rtc-isl1208.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/rtc/rtc-isl1208.ko
   AUTOLOAD:=$(call AutoProbe,rtc-isl1208)
 endef
 
@@ -682,7 +682,7 @@  define KernelPackage/rtc-pcf8563
   DEPENDS:=+kmod-i2c-core
   KCONFIG:=CONFIG_RTC_DRV_PCF8563 \
 	CONFIG_RTC_CLASS=y
-  FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf8563.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/rtc/rtc-pcf8563.ko
   AUTOLOAD:=$(call AutoProbe,rtc-pcf8563)
 endef
 
@@ -701,7 +701,7 @@  define KernelPackage/rtc-pcf2123
   DEPENDS:=+kmod-regmap-spi
   KCONFIG:=CONFIG_RTC_DRV_PCF2123 \
 	CONFIG_RTC_CLASS=y
-  FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf2123.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/rtc/rtc-pcf2123.ko
   AUTOLOAD:=$(call AutoProbe,rtc-pcf2123)
 endef
 
@@ -718,7 +718,7 @@  define KernelPackage/rtc-pcf2127
   DEPENDS:=+kmod-i2c-core +kmod-regmap-spi
   KCONFIG:=CONFIG_RTC_DRV_PCF2127 \
 	CONFIG_RTC_CLASS=y
-  FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf2127.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/rtc/rtc-pcf2127.ko
   AUTOLOAD:=$(call AutoProbe,rtc-pcf2127)
 endef
 
@@ -735,7 +735,7 @@  define KernelPackage/rtc-r7301
   DEPENDS:=+kmod-regmap-mmio
   KCONFIG:=CONFIG_RTC_DRV_R7301 \
 	CONFIG_RTC_CLASS=y
-  FILES:=$(LINUX_DIR)/drivers/rtc/rtc-r7301.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/rtc/rtc-r7301.ko
   AUTOLOAD:=$(call AutoProbe,rtc-r7301)
 endef
 
@@ -752,7 +752,7 @@  define KernelPackage/rtc-rs5c372a
   DEPENDS:=+kmod-i2c-core
   KCONFIG:=CONFIG_RTC_DRV_RS5C372 \
 	CONFIG_RTC_CLASS=y
-  FILES:=$(LINUX_DIR)/drivers/rtc/rtc-rs5c372.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/rtc/rtc-rs5c372.ko
   AUTOLOAD:=$(call AutoLoad,50,rtc-rs5c372,1)
 endef
 
@@ -769,7 +769,7 @@  define KernelPackage/rtc-rx8025
   DEPENDS:=+kmod-i2c-core
   KCONFIG:=CONFIG_RTC_DRV_RX8025 \
 	CONFIG_RTC_CLASS=y
-  FILES:=$(LINUX_DIR)/drivers/rtc/rtc-rx8025.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/rtc/rtc-rx8025.ko
   AUTOLOAD:=$(call AutoLoad,50,rtc-rx8025,1)
 endef
 
@@ -786,7 +786,7 @@  define KernelPackage/rtc-s35390a
   DEPENDS:=+kmod-i2c-core
   KCONFIG:=CONFIG_RTC_DRV_S35390A \
 	CONFIG_RTC_CLASS=y
-  FILES:=$(LINUX_DIR)/drivers/rtc/rtc-s35390a.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/rtc/rtc-s35390a.ko
   AUTOLOAD:=$(call AutoLoad,50,rtc-s35390a,1)
 endef
 
@@ -803,7 +803,7 @@  define KernelPackage/rtc-x1205
   DEPENDS:=+kmod-i2c-core
   KCONFIG:=CONFIG_RTC_DRV_X1205 \
 	CONFIG_RTC_CLASS=y
-  FILES:=$(LINUX_DIR)/drivers/rtc/rtc-x1205.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/rtc/rtc-x1205.ko
   AUTOLOAD:=$(call AutoProbe,rtc-x1205)
 endef
 
@@ -818,14 +818,14 @@  define KernelPackage/mtdtests
   TITLE:=MTD subsystem tests
   KCONFIG:=CONFIG_MTD_TESTS
   FILES:=\
-	$(LINUX_DIR)/drivers/mtd/tests/mtd_nandecctest.ko \
-	$(LINUX_DIR)/drivers/mtd/tests/mtd_oobtest.ko \
-	$(LINUX_DIR)/drivers/mtd/tests/mtd_pagetest.ko \
-	$(LINUX_DIR)/drivers/mtd/tests/mtd_readtest.ko \
-	$(LINUX_DIR)/drivers/mtd/tests/mtd_speedtest.ko \
-	$(LINUX_DIR)/drivers/mtd/tests/mtd_stresstest.ko \
-	$(LINUX_DIR)/drivers/mtd/tests/mtd_subpagetest.ko \
-	$(LINUX_DIR)/drivers/mtd/tests/mtd_torturetest.ko
+	$(LINUX_OBJ_DIR)/drivers/mtd/tests/mtd_nandecctest.ko \
+	$(LINUX_OBJ_DIR)/drivers/mtd/tests/mtd_oobtest.ko \
+	$(LINUX_OBJ_DIR)/drivers/mtd/tests/mtd_pagetest.ko \
+	$(LINUX_OBJ_DIR)/drivers/mtd/tests/mtd_readtest.ko \
+	$(LINUX_OBJ_DIR)/drivers/mtd/tests/mtd_speedtest.ko \
+	$(LINUX_OBJ_DIR)/drivers/mtd/tests/mtd_stresstest.ko \
+	$(LINUX_OBJ_DIR)/drivers/mtd/tests/mtd_subpagetest.ko \
+	$(LINUX_OBJ_DIR)/drivers/mtd/tests/mtd_torturetest.ko
 endef
 
 define KernelPackage/mtdtests/description
@@ -839,7 +839,7 @@  define KernelPackage/mtdoops
   SUBMENU:=$(OTHER_MENU)
   TITLE:=Log panic/oops to an MTD buffer
   KCONFIG:=CONFIG_MTD_OOPS
-  FILES:=$(LINUX_DIR)/drivers/mtd/mtdoops.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/mtd/mtdoops.ko
 endef
 
 define KernelPackage/mtdoops/description
@@ -855,7 +855,7 @@  define KernelPackage/mtdram
   KCONFIG:=CONFIG_MTD_MTDRAM \
     CONFIG_MTDRAM_TOTAL_SIZE=4096 \
     CONFIG_MTDRAM_ERASE_SIZE=128
-  FILES:=$(LINUX_DIR)/drivers/mtd/devices/mtdram.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/mtd/devices/mtdram.ko
 endef
 
 define KernelPackage/mtdram/description
@@ -872,7 +872,7 @@  define KernelPackage/ramoops
   KCONFIG:=CONFIG_PSTORE_RAM \
 	CONFIG_PSTORE_CONSOLE=y
   DEPENDS:=+kmod-pstore +kmod-reed-solomon
-  FILES:= $(LINUX_DIR)/fs/pstore/ramoops.ko
+  FILES:= $(LINUX_OBJ_DIR)/fs/pstore/ramoops.ko
   AUTOLOAD:=$(call AutoLoad,30,ramoops,1)
 endef
 
@@ -890,7 +890,7 @@  define KernelPackage/reed-solomon
   KCONFIG:=CONFIG_REED_SOLOMON \
 	CONFIG_REED_SOLOMON_DEC8=y \
 	CONFIG_REED_SOLOMON_ENC8=y
-  FILES:= $(LINUX_DIR)/lib/reed_solomon/reed_solomon.ko
+  FILES:= $(LINUX_OBJ_DIR)/lib/reed_solomon/reed_solomon.ko
   AUTOLOAD:=$(call AutoLoad,30,reed_solomon,1)
 endef
 
@@ -914,10 +914,10 @@  define KernelPackage/serial-8250
 	CONFIG_SERIAL_8250_DETECT_IRQ=n \
 	CONFIG_SERIAL_8250_RSA=n
   FILES:= \
-	$(LINUX_DIR)/drivers/tty/serial/8250/8250.ko \
-	$(LINUX_DIR)/drivers/tty/serial/8250/8250_base.ko \
-	$(if $(CONFIG_PCI),$(LINUX_DIR)/drivers/tty/serial/8250/8250_pci.ko) \
-	$(if $(CONFIG_GPIOLIB),$(LINUX_DIR)/drivers/tty/serial/serial_mctrl_gpio.ko)
+	$(LINUX_OBJ_DIR)/drivers/tty/serial/8250/8250.ko \
+	$(LINUX_OBJ_DIR)/drivers/tty/serial/8250/8250_base.ko \
+	$(if $(CONFIG_PCI),$(LINUX_OBJ_DIR)/drivers/tty/serial/8250/8250_pci.ko) \
+	$(if $(CONFIG_GPIOLIB),$(LINUX_OBJ_DIR)/drivers/tty/serial/serial_mctrl_gpio.ko)
   AUTOLOAD:=$(call AutoProbe,8250 8250_base 8250_pci)
 endef
 
@@ -932,7 +932,7 @@  define KernelPackage/serial-8250-exar
   SUBMENU:=$(OTHER_MENU)
   TITLE:=Exar 8250 UARTs
   KCONFIG:= CONFIG_SERIAL_8250_EXAR
-  FILES:=$(LINUX_DIR)/drivers/tty/serial/8250/8250_exar.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/tty/serial/8250/8250_exar.ko
   AUTOLOAD:=$(call AutoProbe,8250 8250_base 8250_exar)
   DEPENDS:=@PCI_SUPPORT +kmod-serial-8250
 endef
@@ -949,8 +949,8 @@  define KernelPackage/regmap-core
   TITLE:=Generic register map support
   HIDDEN:=1
   KCONFIG:=CONFIG_REGMAP
-ifneq ($(wildcard $(LINUX_DIR)/drivers/base/regmap/regmap-core.ko),)
-  FILES:=$(LINUX_DIR)/drivers/base/regmap/regmap-core.ko
+ifneq ($(wildcard $(LINUX_OBJ_DIR)/drivers/base/regmap/regmap-core.ko),)
+  FILES:=$(LINUX_OBJ_DIR)/drivers/base/regmap/regmap-core.ko
 endif
 endef
 
@@ -968,7 +968,7 @@  define KernelPackage/regmap-spi
   HIDDEN:=1
   KCONFIG:=CONFIG_REGMAP_SPI \
 	   CONFIG_SPI=y
-  FILES:=$(LINUX_DIR)/drivers/base/regmap/regmap-spi.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/base/regmap/regmap-spi.ko
 endef
 
 define KernelPackage/regmap-spi/description
@@ -984,7 +984,7 @@  define KernelPackage/regmap-i2c
   DEPENDS:=+kmod-regmap-core +kmod-i2c-core
   HIDDEN:=1
   KCONFIG:=CONFIG_REGMAP_I2C
-  FILES:=$(LINUX_DIR)/drivers/base/regmap/regmap-i2c.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/base/regmap/regmap-i2c.ko
 endef
 
 define KernelPackage/regmap-i2c/description
@@ -1000,7 +1000,7 @@  define KernelPackage/regmap-mmio
   DEPENDS:=+kmod-regmap-core
   HIDDEN:=1
   KCONFIG:=CONFIG_REGMAP_MMIO
-  FILES:=$(LINUX_DIR)/drivers/base/regmap/regmap-mmio.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/base/regmap/regmap-mmio.ko
 endef
 
 define KernelPackage/regmap-mmio/description
@@ -1015,7 +1015,7 @@  define KernelPackage/ikconfig
   TITLE:=Kernel configuration via /proc/config.gz
   KCONFIG:=CONFIG_IKCONFIG \
 	   CONFIG_IKCONFIG_PROC=y
-  FILES:=$(LINUX_DIR)/kernel/configs.ko
+  FILES:=$(LINUX_OBJ_DIR)/kernel/configs.ko
   AUTOLOAD:=$(call AutoLoad,70,configs)
 endef
 
@@ -1036,8 +1036,8 @@  define KernelPackage/zram
 	CONFIG_ZRAM_WRITEBACK=n \
 	CONFIG_ZSMALLOC_STAT=n
   FILES:= \
-	$(LINUX_DIR)/mm/zsmalloc.ko \
-	$(LINUX_DIR)/drivers/block/zram/zram.ko
+	$(LINUX_OBJ_DIR)/mm/zsmalloc.ko \
+	$(LINUX_OBJ_DIR)/drivers/block/zram/zram.ko
   AUTOLOAD:=$(call AutoLoad,20,zsmalloc zram)
 endef
 
@@ -1081,7 +1081,7 @@  define KernelPackage/pps
   SUBMENU:=$(OTHER_MENU)
   TITLE:=PPS support
   KCONFIG:=CONFIG_PPS
-  FILES:=$(LINUX_DIR)/drivers/pps/pps_core.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/pps/pps_core.ko
   AUTOLOAD:=$(call AutoLoad,17,pps_core,1)
 endef
 
@@ -1099,7 +1099,7 @@  define KernelPackage/pps-gpio
   TITLE:=PPS client using GPIO
   DEPENDS:=+kmod-pps
   KCONFIG:=CONFIG_PPS_CLIENT_GPIO
-  FILES:=$(LINUX_DIR)/drivers/pps/clients/pps-gpio.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/pps/clients/pps-gpio.ko
   AUTOLOAD:=$(call AutoLoad,18,pps-gpio,1)
 endef
 
@@ -1117,7 +1117,7 @@  define KernelPackage/pps-ldisc
   TITLE:=PPS line discipline
   DEPENDS:=+kmod-pps
   KCONFIG:=CONFIG_PPS_CLIENT_LDISC
-  FILES:=$(LINUX_DIR)/drivers/pps/clients/pps-ldisc.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/pps/clients/pps-ldisc.ko
   AUTOLOAD:=$(call AutoLoad,18,pps-ldisc,1)
 endef
 
@@ -1136,7 +1136,7 @@  define KernelPackage/ptp
   KCONFIG:= \
 	CONFIG_PTP_1588_CLOCK \
 	CONFIG_NET_PTP_CLASSIFY=y
-  FILES:=$(LINUX_DIR)/drivers/ptp/ptp.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/ptp/ptp.ko
   AUTOLOAD:=$(call AutoLoad,18,ptp,1)
 endef
 
@@ -1153,7 +1153,7 @@  define KernelPackage/ptp-qoriq
   TITLE:=Freescale QorIQ PTP support
   DEPENDS:=@(TARGET_mpc85xx||TARGET_qoriq) +kmod-ptp
   KCONFIG:=CONFIG_PTP_1588_CLOCK_QORIQ
-  FILES:=$(LINUX_DIR)/drivers/ptp/ptp-qoriq.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/ptp/ptp-qoriq.ko
   AUTOLOAD:=$(call AutoProbe,ptp-qoriq)
 endef
 
@@ -1169,7 +1169,7 @@  define KernelPackage/random-core
   SUBMENU:=$(OTHER_MENU)
   TITLE:=Hardware Random Number Generator Core support
   KCONFIG:=CONFIG_HW_RANDOM
-  FILES:=$(LINUX_DIR)/drivers/char/hw_random/rng-core.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/char/hw_random/rng-core.ko
 endef
 
 define KernelPackage/random-core/description
@@ -1215,7 +1215,7 @@  define KernelPackage/gpio-beeper
 	CONFIG_INPUT_MISC=y \
 	CONFIG_INPUT_GPIO_BEEPER
   FILES:= \
-	$(LINUX_DIR)/drivers/input/misc/gpio-beeper.ko
+	$(LINUX_OBJ_DIR)/drivers/input/misc/gpio-beeper.ko
   AUTOLOAD:=$(call AutoLoad,50,gpio-beeper)
 endef
 
@@ -1230,7 +1230,7 @@  define KernelPackage/echo
   SUBMENU:=$(OTHER_MENU)
   TITLE:=Line Echo Canceller
   KCONFIG:=CONFIG_ECHO
-  FILES:=$(LINUX_DIR)/drivers/misc/echo/echo.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/misc/echo/echo.ko
   AUTOLOAD:=$(call AutoLoad,50,echo)
 endef
 
@@ -1248,7 +1248,7 @@  define KernelPackage/keys-encrypted
   DEPENDS:=@KERNEL_KEYS +kmod-crypto-cbc +kmod-crypto-hmac +kmod-crypto-rng \
            +kmod-crypto-sha256 +kmod-keys-trusted
   KCONFIG:=CONFIG_ENCRYPTED_KEYS
-  FILES:=$(LINUX_DIR)/security/keys/encrypted-keys/encrypted-keys.ko
+  FILES:=$(LINUX_OBJ_DIR)/security/keys/encrypted-keys/encrypted-keys.ko
   AUTOLOAD:=$(call AutoLoad,01,encrypted-keys,1)
 endef
 
@@ -1268,7 +1268,7 @@  define KernelPackage/keys-trusted
   TITLE:=TPM trusted keys on kernel keyring
   DEPENDS:=@KERNEL_KEYS +kmod-crypto-hash +kmod-crypto-hmac +kmod-crypto-sha1 +kmod-tpm
   KCONFIG:=CONFIG_TRUSTED_KEYS
-  FILES:= $(LINUX_DIR)/security/keys/trusted-keys/trusted.ko
+  FILES:= $(LINUX_OBJ_DIR)/security/keys/trusted-keys/trusted.ko
   AUTOLOAD:=$(call AutoLoad,01,trusted-keys,1)
 endef
 
@@ -1289,7 +1289,7 @@  define KernelPackage/tpm
   DEPENDS:= +kmod-random-core +kmod-asn1-decoder \
 	  +kmod-asn1-encoder +kmod-oid-registry
   KCONFIG:= CONFIG_TCG_TPM
-  FILES:= $(LINUX_DIR)/drivers/char/tpm/tpm.ko
+  FILES:= $(LINUX_OBJ_DIR)/drivers/char/tpm/tpm.ko
   AUTOLOAD:=$(call AutoLoad,10,tpm,1)
 endef
 
@@ -1305,8 +1305,8 @@  define KernelPackage/tpm-tis
 	DEPENDS:= @TARGET_x86 +kmod-tpm
   KCONFIG:= CONFIG_TCG_TIS
   FILES:= \
-	$(LINUX_DIR)/drivers/char/tpm/tpm_tis.ko \
-	$(LINUX_DIR)/drivers/char/tpm/tpm_tis_core.ko
+	$(LINUX_OBJ_DIR)/drivers/char/tpm/tpm_tis.ko \
+	$(LINUX_OBJ_DIR)/drivers/char/tpm/tpm_tis_core.ko
   AUTOLOAD:=$(call AutoLoad,20,tpm_tis,1)
 endef
 
@@ -1324,7 +1324,7 @@  define KernelPackage/tpm-i2c-atmel
   TITLE:=TPM I2C Atmel Support
   DEPENDS:= +kmod-tpm +kmod-i2c-core
   KCONFIG:= CONFIG_TCG_TIS_I2C_ATMEL
-  FILES:= $(LINUX_DIR)/drivers/char/tpm/tpm_i2c_atmel.ko
+  FILES:= $(LINUX_OBJ_DIR)/drivers/char/tpm/tpm_i2c_atmel.ko
   AUTOLOAD:=$(call AutoLoad,40,tpm_i2c_atmel,1)
 endef
 
@@ -1339,7 +1339,7 @@  define KernelPackage/tpm-i2c-infineon
   TITLE:= TPM I2C Infineon driver
   DEPENDS:= +kmod-tpm +kmod-i2c-core
   KCONFIG:= CONFIG_TCG_TIS_I2C_INFINEON
-  FILES:= $(LINUX_DIR)/drivers/char/tpm/tpm_i2c_infineon.ko
+  FILES:= $(LINUX_OBJ_DIR)/drivers/char/tpm/tpm_i2c_infineon.ko
   AUTOLOAD:= $(call AutoLoad,40,tpm_i2c_infineon,1)
 endef
 
@@ -1356,7 +1356,7 @@  define KernelPackage/i6300esb-wdt
   DEPENDS:=@PCI_SUPPORT @!SMALL_FLASH
   KCONFIG:=CONFIG_I6300ESB_WDT \
 	   CONFIG_WATCHDOG_CORE=y
-  FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/i6300esb.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/$(WATCHDOG_DIR)/i6300esb.ko
   AUTOLOAD:=$(call AutoLoad,50,i6300esb,1)
 endef
 
@@ -1373,7 +1373,7 @@  define KernelPackage/mhi-bus
   TITLE:=MHI bus
   KCONFIG:=CONFIG_MHI_BUS \
            CONFIG_MHI_BUS_DEBUG=y
-  FILES:=$(LINUX_DIR)/drivers/bus/mhi/host/mhi.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/bus/mhi/host/mhi.ko
   AUTOLOAD:=$(call AutoProbe,mhi)
 endef
 
@@ -1388,7 +1388,7 @@  define KernelPackage/mhi-pci-generic
   TITLE:=MHI PCI controller driver
   DEPENDS:=@PCI_SUPPORT +kmod-mhi-bus
   KCONFIG:=CONFIG_MHI_BUS_PCI_GENERIC
-  FILES:=$(LINUX_DIR)/drivers/bus/mhi/host/mhi_pci_generic.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/bus/mhi/host/mhi_pci_generic.ko
   AUTOLOAD:=$(call AutoProbe,mhi_pci_generic)
 endef
 
diff --git a/package/kernel/linux/modules/pcmcia.mk b/package/kernel/linux/modules/pcmcia.mk
index 11c2106cb0..58970cb6fb 100644
--- a/package/kernel/linux/modules/pcmcia.mk
+++ b/package/kernel/linux/modules/pcmcia.mk
@@ -18,8 +18,8 @@  define KernelPackage/pcmcia-core
 	CONFIG_PCCARD \
 	PCMCIA_DEBUG=n
   FILES:= \
-	$(LINUX_DIR)/drivers/pcmcia/pcmcia_core.ko \
-	$(LINUX_DIR)/drivers/pcmcia/pcmcia.ko
+	$(LINUX_OBJ_DIR)/drivers/pcmcia/pcmcia_core.ko \
+	$(LINUX_OBJ_DIR)/drivers/pcmcia/pcmcia.ko
   AUTOLOAD:=$(call AutoLoad,25,pcmcia_core pcmcia)
 endef
 
@@ -39,7 +39,7 @@  endef
 define KernelPackage/pcmcia-rsrc
   TITLE:=PCMCIA resource support
   KCONFIG:=CONFIG_PCCARD_NONSTATIC=y
-  FILES:=$(LINUX_DIR)/drivers/pcmcia/pcmcia_rsrc.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/pcmcia/pcmcia_rsrc.ko
   AUTOLOAD:=$(call AutoLoad,26,pcmcia_rsrc)
   $(call AddDepends/pcmcia)
 endef
@@ -54,7 +54,7 @@  $(eval $(call KernelPackage,pcmcia-rsrc))
 define KernelPackage/pcmcia-yenta
   TITLE:=yenta socket driver
   KCONFIG:=CONFIG_YENTA
-  FILES:=$(LINUX_DIR)/drivers/pcmcia/yenta_socket.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/pcmcia/yenta_socket.ko
   AUTOLOAD:=$(call AutoLoad,41,yenta_socket)
   DEPENDS:=+kmod-pcmcia-rsrc
   $(call AddDepends/pcmcia)
@@ -68,7 +68,7 @@  define KernelPackage/pcmcia-serial
   KCONFIG:= \
 	CONFIG_PCMCIA_SERIAL_CS \
 	CONFIG_SERIAL_8250_CS
-  FILES:=$(LINUX_DIR)/drivers/tty/serial/8250/serial_cs.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/tty/serial/8250/serial_cs.ko
   AUTOLOAD:=$(call AutoLoad,45,serial_cs)
   DEPENDS:=+kmod-serial-8250
   $(call AddDepends/pcmcia)
@@ -84,7 +84,7 @@  $(eval $(call KernelPackage,pcmcia-serial))
 define KernelPackage/pcmcia-pd6729
   TITLE:=Cirrus PD6729 compatible bridge support
   KCONFIG:=CONFIG_PD6729
-  FILES:=$(LINUX_DIR)/drivers/pcmcia/pd6729.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/pcmcia/pd6729.ko
   AUTOLOAD:=$(call AutoLoad,41,pd6729)
   DEPENDS:=+kmod-pcmcia-rsrc
   $(call AddDepends/pcmcia)
@@ -100,7 +100,7 @@  $(eval $(call KernelPackage,pcmcia-pd6729))
 define KernelPackage/pcmcia-nozomi
   TITLE:=Option Fusion+ card
   KCONFIG:=CONFIG_NOZOMI
-  FILES:=$(LINUX_DIR)/drivers/tty/nozomi.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/tty/nozomi.ko
   AUTOLOAD:=$(call AutoLoad,60,nozomi)
   DEPENDS:=+kmod-pcmcia-rsrc
   $(call AddDepends/pcmcia)
diff --git a/package/kernel/linux/modules/sound.mk b/package/kernel/linux/modules/sound.mk
index 2bfa146207..8d8b018705 100644
--- a/package/kernel/linux/modules/sound.mk
+++ b/package/kernel/linux/modules/sound.mk
@@ -21,22 +21,22 @@  SOUNDCORE_LOAD ?= \
 	snd-compress
 
 SOUNDCORE_FILES ?= \
-	$(LINUX_DIR)/sound/soundcore.ko \
-	$(LINUX_DIR)/sound/core/snd.ko \
-	$(LINUX_DIR)/sound/core/snd-hwdep.ko \
-	$(LINUX_DIR)/sound/core/snd-seq-device.ko \
-	$(LINUX_DIR)/sound/core/snd-rawmidi.ko \
-	$(LINUX_DIR)/sound/core/snd-timer.ko \
-	$(LINUX_DIR)/sound/core/snd-pcm.ko \
-	$(LINUX_DIR)/sound/core/oss/snd-mixer-oss.ko \
-	$(LINUX_DIR)/sound/core/oss/snd-pcm-oss.ko \
-	$(LINUX_DIR)/sound/core/snd-compress.ko
+	$(LINUX_OBJ_DIR)/sound/soundcore.ko \
+	$(LINUX_OBJ_DIR)/sound/core/snd.ko \
+	$(LINUX_OBJ_DIR)/sound/core/snd-hwdep.ko \
+	$(LINUX_OBJ_DIR)/sound/core/snd-seq-device.ko \
+	$(LINUX_OBJ_DIR)/sound/core/snd-rawmidi.ko \
+	$(LINUX_OBJ_DIR)/sound/core/snd-timer.ko \
+	$(LINUX_OBJ_DIR)/sound/core/snd-pcm.ko \
+	$(LINUX_OBJ_DIR)/sound/core/oss/snd-mixer-oss.ko \
+	$(LINUX_OBJ_DIR)/sound/core/oss/snd-pcm-oss.ko \
+	$(LINUX_OBJ_DIR)/sound/core/snd-compress.ko
 
 SOUNDCORE_LOAD += \
 	$(if $(CONFIG_SND_DMAENGINE_PCM),snd-pcm-dmaengine)
 
 SOUNDCORE_FILES += \
-	$(if $(CONFIG_SND_DMAENGINE_PCM),$(LINUX_DIR)/sound/core/snd-pcm-dmaengine.ko)
+	$(if $(CONFIG_SND_DMAENGINE_PCM),$(LINUX_OBJ_DIR)/sound/core/snd-pcm-dmaengine.ko)
 
 define KernelPackage/sound-core
   SUBMENU:=$(SOUND_MENU)
@@ -65,8 +65,8 @@  endef
 
 define KernelPackage/sound-core/uml
   FILES:= \
-	$(LINUX_DIR)/sound/soundcore.ko \
-	$(LINUX_DIR)/arch/um/drivers/hostaudio.ko
+	$(LINUX_OBJ_DIR)/sound/soundcore.ko \
+	$(LINUX_OBJ_DIR)/arch/um/drivers/hostaudio.ko
   AUTOLOAD+=$(call AutoLoad,30,soundcore hostaudio)
 endef
 
@@ -87,8 +87,8 @@  define KernelPackage/ac97
   TITLE:=ac97 controller
   KCONFIG:=CONFIG_SND_AC97_CODEC
   FILES:= \
-	$(LINUX_DIR)/sound/ac97_bus.ko \
-	$(LINUX_DIR)/sound/pci/ac97/snd-ac97-codec.ko
+	$(LINUX_OBJ_DIR)/sound/ac97_bus.ko \
+	$(LINUX_OBJ_DIR)/sound/pci/ac97/snd-ac97-codec.ko
   AUTOLOAD:=$(call AutoLoad,35,ac97_bus snd-ac97-codec)
   $(call AddDepends/sound)
 endef
@@ -104,7 +104,7 @@  define KernelPackage/sound-mpu401
   TITLE:=MPU-401 uart driver
   KCONFIG:=CONFIG_SND_MPU401_UART
   FILES:= \
-	$(LINUX_DIR)/sound/drivers/mpu401/snd-mpu401-uart.ko
+	$(LINUX_OBJ_DIR)/sound/drivers/mpu401/snd-mpu401-uart.ko
   AUTOLOAD:=$(call AutoLoad,35,snd-mpu401-uart)
   $(call AddDepends/sound)
 endef
@@ -120,9 +120,9 @@  $(eval $(call KernelPackage,sound-mpu401))
 define KernelPackage/sound-seq
   TITLE:=Sequencer support
   FILES:= \
-	$(LINUX_DIR)/sound/core/seq/snd-seq.ko \
-	$(LINUX_DIR)/sound/core/seq/snd-seq-midi-event.ko \
-	$(LINUX_DIR)/sound/core/seq/snd-seq-midi.ko
+	$(LINUX_OBJ_DIR)/sound/core/seq/snd-seq.ko \
+	$(LINUX_OBJ_DIR)/sound/core/seq/snd-seq-midi-event.ko \
+	$(LINUX_OBJ_DIR)/sound/core/seq/snd-seq-midi.ko
   AUTOLOAD:=$(call AutoLoad,35,snd-seq snd-seq-midi-event snd-seq-midi)
   $(call AddDepends/sound)
 endef
@@ -138,7 +138,7 @@  define KernelPackage/sound-ens1371
   TITLE:=(Creative) Ensoniq AudioPCI 1371
   KCONFIG:=CONFIG_SND_ENS1371
   DEPENDS:=@PCI_SUPPORT +kmod-ac97
-  FILES:=$(LINUX_DIR)/sound/pci/snd-ens1371.ko
+  FILES:=$(LINUX_OBJ_DIR)/sound/pci/snd-ens1371.ko
   AUTOLOAD:=$(call AutoLoad,36,snd-ens1371)
   $(call AddDepends/sound)
 endef
@@ -154,7 +154,7 @@  define KernelPackage/sound-i8x0
   TITLE:=Intel/SiS/nVidia/AMD/ALi AC97 Controller
   DEPENDS:=+kmod-ac97
   KCONFIG:=CONFIG_SND_INTEL8X0
-  FILES:=$(LINUX_DIR)/sound/pci/snd-intel8x0.ko
+  FILES:=$(LINUX_OBJ_DIR)/sound/pci/snd-intel8x0.ko
   AUTOLOAD:=$(call AutoLoad,36,snd-intel8x0)
   $(call AddDepends/sound)
 endef
@@ -172,7 +172,7 @@  define KernelPackage/sound-via82xx
   TITLE:=VIA 82xx AC97 Controller
   DEPENDS:=+kmod-ac97 +kmod-sound-mpu401
   KCONFIG:=CONFIG_SND_VIA82XX
-  FILES:=$(LINUX_DIR)/sound/pci/snd-via82xx.ko
+  FILES:=$(LINUX_OBJ_DIR)/sound/pci/snd-via82xx.ko
   AUTOLOAD:=$(call AutoLoad,36,snd-via82xx)
   $(call AddDepends/sound)
 endef
@@ -193,7 +193,7 @@  define KernelPackage/sound-soc-core
 	CONFIG_SND_SOC_ADI=n \
 	CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y \
 	CONFIG_SND_SOC_ALL_CODECS=n
-  FILES:=$(LINUX_DIR)/sound/soc/snd-soc-core.ko
+  FILES:=$(LINUX_OBJ_DIR)/sound/soc/snd-soc-core.ko
   AUTOLOAD:=$(call AutoLoad,55,snd-soc-core)
   $(call AddDepends/sound)
 endef
@@ -204,7 +204,7 @@  $(eval $(call KernelPackage,sound-soc-core))
 define KernelPackage/sound-soc-ac97
   TITLE:=AC97 Codec support
   KCONFIG:=CONFIG_SND_SOC_AC97_CODEC
-  FILES:=$(LINUX_DIR)/sound/soc/codecs/snd-soc-ac97.ko
+  FILES:=$(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-ac97.ko
   AUTOLOAD:=$(call AutoLoad,57,snd-soc-ac97)
   DEPENDS:=+kmod-ac97 +kmod-sound-soc-core
   $(call AddDepends/sound)
@@ -221,9 +221,9 @@  define KernelPackage/sound-soc-imx
 	CONFIG_SND_SOC_FSL_SSI \
 	CONFIG_SND_SOC_IMX_PCM_DMA
   FILES:= \
-	$(LINUX_DIR)/sound/soc/fsl/snd-soc-imx-audmux.ko \
-	$(LINUX_DIR)/sound/soc/fsl/snd-soc-fsl-ssi.ko \
-	$(LINUX_DIR)/sound/soc/fsl/imx-pcm-dma.ko
+	$(LINUX_OBJ_DIR)/sound/soc/fsl/snd-soc-imx-audmux.ko \
+	$(LINUX_OBJ_DIR)/sound/soc/fsl/snd-soc-fsl-ssi.ko \
+	$(LINUX_OBJ_DIR)/sound/soc/fsl/imx-pcm-dma.ko
   AUTOLOAD:=$(call AutoLoad,56,snd-soc-imx-audmux snd-soc-fsl-ssi snd-soc-imx-pcm)
   DEPENDS:=@TARGET_imx +kmod-sound-soc-core
   $(call AddDepends/sound)
@@ -240,8 +240,8 @@  define KernelPackage/sound-soc-imx-sgtl5000
   TITLE:=IMX SoC support for SGTL5000
   KCONFIG:=CONFIG_SND_SOC_IMX_SGTL5000
   FILES:=\
-	$(LINUX_DIR)/sound/soc/codecs/snd-soc-sgtl5000.ko \
-	$(LINUX_DIR)/sound/soc/fsl/snd-soc-imx-sgtl5000.ko
+	$(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-sgtl5000.ko \
+	$(LINUX_OBJ_DIR)/sound/soc/fsl/snd-soc-imx-sgtl5000.ko
   AUTOLOAD:=$(call AutoLoad,57,snd-soc-sgtl5000 snd-soc-imx-sgtl5000)
   DEPENDS:=@TARGET_imx +kmod-sound-soc-imx +kmod-regmap-i2c
   $(call AddDepends/sound)
@@ -258,8 +258,8 @@  define KernelPackage/sound-soc-spdif
   TITLE:=SoC S/PDIF codec support
   KCONFIG:=CONFIG_SND_SOC_SPDIF
   FILES:= \
-	$(LINUX_DIR)/sound/soc/codecs/snd-soc-spdif-tx.ko \
-	$(LINUX_DIR)/sound/soc/codecs/snd-soc-spdif-rx.ko
+	$(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-spdif-tx.ko \
+	$(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-spdif-rx.ko
   DEPENDS:=+kmod-sound-soc-core
   AUTOLOAD:=$(call AutoProbe,snd-soc-spdif-tx snd-soc-spdif-rx)
   $(call AddDepends/sound)
@@ -274,7 +274,7 @@  define KernelPackage/pcspkr
   KCONFIG:= \
 	CONFIG_SND_PCSP
   FILES:= \
-	$(LINUX_DIR)/sound/drivers/pcsp/snd-pcsp.ko
+	$(LINUX_OBJ_DIR)/sound/drivers/pcsp/snd-pcsp.ko
   AUTOLOAD:=$(call AutoLoad,50,snd-pcsp)
   $(call AddDepends/sound)
 endef
@@ -291,7 +291,7 @@  define KernelPackage/sound-dummy
   KCONFIG:= \
 	CONFIG_SND_DUMMY
   FILES:= \
-	$(LINUX_DIR)/sound/drivers/snd-dummy.ko
+	$(LINUX_OBJ_DIR)/sound/drivers/snd-dummy.ko
   AUTOLOAD:=$(call AutoLoad,32,snd-dummy)
 endef
 
@@ -313,9 +313,9 @@  define KernelPackage/sound-hda-core
 	CONFIG_SND_HDA_PATCH_LOADER=n \
 	CONFIG_SND_HDA_GENERIC
   FILES:= \
-	$(LINUX_DIR)/sound/hda/snd-hda-core.ko \
-	$(LINUX_DIR)/sound/pci/hda/snd-hda-codec.ko \
-	$(LINUX_DIR)/sound/pci/hda/snd-hda-codec-generic.ko
+	$(LINUX_OBJ_DIR)/sound/hda/snd-hda-core.ko \
+	$(LINUX_OBJ_DIR)/sound/pci/hda/snd-hda-codec.ko \
+	$(LINUX_OBJ_DIR)/sound/pci/hda/snd-hda-codec-generic.ko
   AUTOLOAD:=$(call AutoProbe,snd-hda-core snd-hda-codec snd-hda-codec-generic)
   $(call AddDepends/sound,+kmod-regmap-core)
 endef
@@ -332,7 +332,7 @@  define KernelPackage/sound-hda-codec-realtek
   KCONFIG:= \
 	CONFIG_SND_HDA_CODEC_REALTEK
   FILES:= \
-	$(LINUX_DIR)/sound/pci/hda/snd-hda-codec-realtek.ko
+	$(LINUX_OBJ_DIR)/sound/pci/hda/snd-hda-codec-realtek.ko
   AUTOLOAD:=$(call AutoProbe,snd-hda-codec-realtek)
   $(call AddDepends/sound,kmod-sound-hda-core)
 endef
@@ -349,7 +349,7 @@  define KernelPackage/sound-hda-codec-cmedia
   KCONFIG:= \
 	CONFIG_SND_HDA_CODEC_CMEDIA
   FILES:= \
-	$(LINUX_DIR)/sound/pci/hda/snd-hda-codec-cmedia.ko
+	$(LINUX_OBJ_DIR)/sound/pci/hda/snd-hda-codec-cmedia.ko
   AUTOLOAD:=$(call AutoProbe,snd-hda-codec-cmedia)
   $(call AddDepends/sound,kmod-sound-hda-core)
 endef
@@ -366,7 +366,7 @@  define KernelPackage/sound-hda-codec-analog
   KCONFIG:= \
 	CONFIG_SND_HDA_CODEC_ANALOG
   FILES:= \
-	$(LINUX_DIR)/sound/pci/hda/snd-hda-codec-analog.ko
+	$(LINUX_OBJ_DIR)/sound/pci/hda/snd-hda-codec-analog.ko
   AUTOLOAD:=$(call AutoProbe,snd-hda-codec-analog)
   $(call AddDepends/sound,kmod-sound-hda-core)
 endef
@@ -383,7 +383,7 @@  define KernelPackage/sound-hda-codec-idt
   KCONFIG:= \
 	CONFIG_SND_HDA_CODEC_SIGMATEL
   FILES:= \
-	$(LINUX_DIR)/sound/pci/hda/snd-hda-codec-idt.ko
+	$(LINUX_OBJ_DIR)/sound/pci/hda/snd-hda-codec-idt.ko
   AUTOLOAD:=$(call AutoProbe,snd-hda-codec-idt)
   $(call AddDepends/sound,kmod-sound-hda-core)
 endef
@@ -400,7 +400,7 @@  define KernelPackage/sound-hda-codec-si3054
   KCONFIG:= \
 	CONFIG_SND_HDA_CODEC_SI3054
   FILES:= \
-	$(LINUX_DIR)/sound/pci/hda/snd-hda-codec-si3054.ko
+	$(LINUX_OBJ_DIR)/sound/pci/hda/snd-hda-codec-si3054.ko
   AUTOLOAD:=$(call AutoProbe,snd-hda-codec-si3054)
   $(call AddDepends/sound,kmod-sound-hda-core)
 endef
@@ -417,7 +417,7 @@  define KernelPackage/sound-hda-codec-cirrus
   KCONFIG:= \
 	CONFIG_SND_HDA_CODEC_CIRRUS
   FILES:= \
-	$(LINUX_DIR)/sound/pci/hda/snd-hda-codec-cirrus.ko
+	$(LINUX_OBJ_DIR)/sound/pci/hda/snd-hda-codec-cirrus.ko
   AUTOLOAD:=$(call AutoProbe,snd-hda-codec-cirrus)
   $(call AddDepends/sound,kmod-sound-hda-core)
 endef
@@ -434,7 +434,7 @@  define KernelPackage/sound-hda-codec-ca0110
   KCONFIG:= \
 	CONFIG_SND_HDA_CODEC_CA0110
   FILES:= \
-	$(LINUX_DIR)/sound/pci/hda/snd-hda-codec-ca0110.ko
+	$(LINUX_OBJ_DIR)/sound/pci/hda/snd-hda-codec-ca0110.ko
   AUTOLOAD:=$(call AutoProbe,snd-hda-codec-ca0110)
   $(call AddDepends/sound,kmod-sound-hda-core)
 endef
@@ -452,7 +452,7 @@  define KernelPackage/sound-hda-codec-ca0132
 	CONFIG_SND_HDA_CODEC_CA0132 \
 	CONFIG_SND_HDA_CODEC_CA0132_DSP=n
   FILES:= \
-	$(LINUX_DIR)/sound/pci/hda/snd-hda-codec-ca0132.ko
+	$(LINUX_OBJ_DIR)/sound/pci/hda/snd-hda-codec-ca0132.ko
   AUTOLOAD:=$(call AutoProbe,snd-hda-codec-ca0132)
   $(call AddDepends/sound,kmod-sound-hda-core)
 endef
@@ -469,7 +469,7 @@  define KernelPackage/sound-hda-codec-conexant
   KCONFIG:= \
 	CONFIG_SND_HDA_CODEC_CONEXANT
   FILES:= \
-	$(LINUX_DIR)/sound/pci/hda/snd-hda-codec-conexant.ko
+	$(LINUX_OBJ_DIR)/sound/pci/hda/snd-hda-codec-conexant.ko
   AUTOLOAD:=$(call AutoProbe,snd-hda-codec-conexant)
   $(call AddDepends/sound,kmod-sound-hda-core)
 endef
@@ -486,7 +486,7 @@  define KernelPackage/sound-hda-codec-via
   KCONFIG:= \
 	CONFIG_SND_HDA_CODEC_VIA
   FILES:= \
-	$(LINUX_DIR)/sound/pci/hda/snd-hda-codec-via.ko
+	$(LINUX_OBJ_DIR)/sound/pci/hda/snd-hda-codec-via.ko
   AUTOLOAD:=$(call AutoProbe,snd-hda-codec-via)
   $(call AddDepends/sound,kmod-sound-hda-core)
 endef
@@ -503,7 +503,7 @@  define KernelPackage/sound-hda-codec-hdmi
   KCONFIG:= \
 	CONFIG_SND_HDA_CODEC_HDMI
   FILES:= \
-	$(LINUX_DIR)/sound/pci/hda/snd-hda-codec-hdmi.ko
+	$(LINUX_OBJ_DIR)/sound/pci/hda/snd-hda-codec-hdmi.ko
   AUTOLOAD:=$(call AutoProbe,snd-hda-codec-hdmi)
   $(call AddDepends/sound,kmod-sound-hda-core)
 endef
@@ -522,8 +522,8 @@  define KernelPackage/sound-hda-intel
 	CONFIG_SOUND_PCI \
 	CONFIG_SND_HDA_INTEL
   FILES:= \
-	$(LINUX_DIR)/sound/pci/hda/snd-hda-intel.ko \
-	$(LINUX_DIR)/sound/hda/snd-intel-dspcfg.ko
+	$(LINUX_OBJ_DIR)/sound/pci/hda/snd-hda-intel.ko \
+	$(LINUX_OBJ_DIR)/sound/hda/snd-intel-dspcfg.ko
   AUTOLOAD:=$(call AutoProbe,snd-hda-intel)
   $(call AddDepends/sound,kmod-sound-hda-core)
 endef
diff --git a/package/kernel/linux/modules/spi.mk b/package/kernel/linux/modules/spi.mk
index 78a1c8a032..42059eb313 100644
--- a/package/kernel/linux/modules/spi.mk
+++ b/package/kernel/linux/modules/spi.mk
@@ -15,8 +15,8 @@  define KernelPackage/mmc-spi
           CONFIG_SPI=y \
           CONFIG_SPI_MASTER=y
   FILES:=\
-	$(LINUX_DIR)/drivers/mmc/host/of_mmc_spi.ko \
-	$(LINUX_DIR)/drivers/mmc/host/mmc_spi.ko
+	$(LINUX_OBJ_DIR)/drivers/mmc/host/of_mmc_spi.ko \
+	$(LINUX_OBJ_DIR)/drivers/mmc/host/mmc_spi.ko
   AUTOLOAD:=$(call AutoProbe,of_mmc_spi mmc_spi)
 endef
 
@@ -33,7 +33,7 @@  define KernelPackage/spi-bitbang
   KCONFIG:=CONFIG_SPI_BITBANG \
           CONFIG_SPI=y \
           CONFIG_SPI_MASTER=y
-  FILES:=$(LINUX_DIR)/drivers/spi/spi-bitbang.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/spi/spi-bitbang.ko
 endef
 
 define KernelPackage/spi-bitbang/description
@@ -48,7 +48,7 @@  define KernelPackage/spi-gpio
   TITLE:=GPIO-based bitbanging SPI Master
   DEPENDS:=@GPIO_SUPPORT +kmod-spi-bitbang
   KCONFIG:=CONFIG_SPI_GPIO
-  FILES:=$(LINUX_DIR)/drivers/spi/spi-gpio.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/spi/spi-gpio.ko
   AUTOLOAD:=$(call AutoProbe,spi-gpio)
 endef
 
@@ -64,7 +64,7 @@  define KernelPackage/spi-dev
   KCONFIG:=CONFIG_SPI_SPIDEV \
           CONFIG_SPI=y \
           CONFIG_SPI_MASTER=y
-  FILES:=$(LINUX_DIR)/drivers/spi/spidev.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/spi/spidev.ko
   AUTOLOAD:=$(call AutoProbe,spidev)
 endef
 
diff --git a/package/kernel/linux/modules/usb.mk b/package/kernel/linux/modules/usb.mk
index 6218ec994c..89edbc0b6d 100644
--- a/package/kernel/linux/modules/usb.mk
+++ b/package/kernel/linux/modules/usb.mk
@@ -17,8 +17,8 @@  define KernelPackage/usb-core
   DEPENDS:=@USB_SUPPORT
   KCONFIG:=CONFIG_USB CONFIG_XPS_USB_HCD_XILINX=n CONFIG_USB_FHCI_HCD=n
   FILES:= \
-	$(LINUX_DIR)/drivers/usb/core/usbcore.ko \
-	$(LINUX_DIR)/drivers/usb/common/usb-common.ko
+	$(LINUX_OBJ_DIR)/drivers/usb/core/usbcore.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/common/usb-common.ko
   AUTOLOAD:=$(call AutoLoad,20,usb-common usbcore,1)
   $(call AddDepends/nls)
 endef
@@ -39,7 +39,7 @@  endef
 define KernelPackage/usb-ledtrig-usbport
   TITLE:=LED trigger for USB ports
   KCONFIG:=CONFIG_USB_LEDS_TRIGGER_USBPORT
-  FILES:=$(LINUX_DIR)/drivers/usb/core/ledtrig-usbport.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/core/ledtrig-usbport.ko
   AUTOLOAD:=$(call AutoLoad,50,ledtrig-usbport)
   $(call AddDepends/usb)
 endef
@@ -58,7 +58,7 @@  define KernelPackage/usb-phy-nop
   TITLE:=Support for USB NOP transceiver
   KCONFIG:=CONFIG_NOP_USB_XCEIV
   HIDDEN:=1
-  FILES:=$(LINUX_DIR)/drivers/usb/phy/phy-generic.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/phy/phy-generic.ko
   AUTOLOAD:=$(call AutoLoad,21,phy-generic,1)
   $(call AddDepends/usb)
 endef
@@ -76,8 +76,8 @@  define KernelPackage/phy-ath79-usb
 	CONFIG_PHY_AR7200_USB
   DEPENDS:=@TARGET_ath79
   HIDDEN:=1
-  FILES:=$(LINUX_DIR)/drivers/phy/phy-ar7100-usb.ko \
-	$(LINUX_DIR)/drivers/phy/phy-ar7200-usb.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/phy/phy-ar7100-usb.ko \
+	$(LINUX_OBJ_DIR)/drivers/phy/phy-ar7200-usb.ko
   AUTOLOAD:=$(call AutoLoad,21,phy-ar7100-usb phy-ar7200-usb,1)
   $(call AddDepends/usb)
 endef
@@ -94,7 +94,7 @@  define KernelPackage/usb-gadget
   KCONFIG:=CONFIG_USB_GADGET
   HIDDEN:=1
   FILES:=\
-	$(LINUX_DIR)/drivers/usb/gadget/udc/udc-core.ko
+	$(LINUX_OBJ_DIR)/drivers/usb/gadget/udc/udc-core.ko
   AUTOLOAD:=$(call AutoLoad,21,udc-core,1)
   DEPENDS:=@USB_GADGET_SUPPORT
   $(call AddDepends/usb)
@@ -111,7 +111,7 @@  define KernelPackage/usb-lib-composite
   KCONFIG:=CONFIG_USB_LIBCOMPOSITE
   DEPENDS:=+kmod-usb-gadget +kmod-fs-configfs
   HIDDEN:=1
-  FILES:=$(LINUX_DIR)/drivers/usb/gadget/libcomposite.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/gadget/libcomposite.ko
   AUTOLOAD:=$(call AutoLoad,50,libcomposite)
   $(call AddDepends/usb)
 endef
@@ -127,8 +127,8 @@  define KernelPackage/usb-gadget-hid
   KCONFIG:=CONFIG_USB_G_HID
   DEPENDS:=+kmod-usb-gadget +kmod-usb-lib-composite
   FILES:= \
-	  $(LINUX_DIR)/drivers/usb/gadget/legacy/g_hid.ko \
-	  $(LINUX_DIR)/drivers/usb/gadget/function/usb_f_hid.ko
+	  $(LINUX_OBJ_DIR)/drivers/usb/gadget/legacy/g_hid.ko \
+	  $(LINUX_OBJ_DIR)/drivers/usb/gadget/function/usb_f_hid.ko
   AUTOLOAD:=$(call AutoLoad,52,usb_f_hid)
   $(call AddDepends/usb)
 endef
@@ -146,7 +146,7 @@  define KernelPackage/usb-gadget-ehci-debug
 	CONFIG_USB_G_DBGP_SERIAL=y \
 	CONFIG_USB_G_DBGP_PRINTK=n
   DEPENDS:=+kmod-usb-gadget +kmod-usb-lib-composite +kmod-usb-gadget-serial
-  FILES:=$(LINUX_DIR)/drivers/usb/gadget/legacy/g_dbgp.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/gadget/legacy/g_dbgp.ko
   $(call AddDepends/usb)
 endef
 
@@ -164,11 +164,11 @@  define KernelPackage/usb-gadget-eth
 	CONFIG_USB_ETH_EEM=n
   DEPENDS:=+kmod-usb-gadget +kmod-usb-lib-composite
   FILES:= \
-	$(LINUX_DIR)/drivers/usb/gadget/function/u_ether.ko \
-	$(LINUX_DIR)/drivers/usb/gadget/function/usb_f_ecm.ko \
-	$(LINUX_DIR)/drivers/usb/gadget/function/usb_f_ecm_subset.ko \
-	$(LINUX_DIR)/drivers/usb/gadget/function/usb_f_rndis.ko \
-	$(LINUX_DIR)/drivers/usb/gadget/legacy/g_ether.ko
+	$(LINUX_OBJ_DIR)/drivers/usb/gadget/function/u_ether.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/gadget/function/usb_f_ecm.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/gadget/function/usb_f_ecm_subset.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/gadget/function/usb_f_rndis.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/gadget/legacy/g_ether.ko
   AUTOLOAD:=$(call AutoLoad,52,usb_f_ecm)
   $(call AddDepends/usb)
 endef
@@ -185,8 +185,8 @@  define KernelPackage/usb-gadget-ncm
   DEPENDS:=+kmod-usb-gadget +kmod-usb-lib-composite \
 	+kmod-usb-gadget-eth
   FILES:= \
-	$(LINUX_DIR)/drivers/usb/gadget/function/usb_f_ncm.ko \
-	$(LINUX_DIR)/drivers/usb/gadget/legacy/g_ncm.ko
+	$(LINUX_OBJ_DIR)/drivers/usb/gadget/function/usb_f_ncm.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/gadget/legacy/g_ncm.ko
   AUTOLOAD:=$(call AutoLoad,52,usb_f_ncm)
   $(call AddDepends/usb)
 endef
@@ -202,11 +202,11 @@  define KernelPackage/usb-gadget-serial
   KCONFIG:=CONFIG_USB_G_SERIAL
   DEPENDS:=+kmod-usb-gadget +kmod-usb-lib-composite
   FILES:= \
-	$(LINUX_DIR)/drivers/usb/gadget/function/u_serial.ko \
-	$(LINUX_DIR)/drivers/usb/gadget/function/usb_f_acm.ko \
-	$(LINUX_DIR)/drivers/usb/gadget/function/usb_f_obex.ko \
-	$(LINUX_DIR)/drivers/usb/gadget/function/usb_f_serial.ko \
-	$(LINUX_DIR)/drivers/usb/gadget/legacy/g_serial.ko
+	$(LINUX_OBJ_DIR)/drivers/usb/gadget/function/u_serial.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/gadget/function/usb_f_acm.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/gadget/function/usb_f_obex.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/gadget/function/usb_f_serial.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/gadget/legacy/g_serial.ko
   AUTOLOAD:=$(call AutoLoad,52,usb_f_acm)
   $(call AddDepends/usb)
 endef
@@ -222,8 +222,8 @@  define KernelPackage/usb-gadget-mass-storage
   KCONFIG:=CONFIG_USB_MASS_STORAGE
   DEPENDS:=+kmod-usb-gadget +kmod-usb-lib-composite
   FILES:= \
-	$(LINUX_DIR)/drivers/usb/gadget/function/usb_f_mass_storage.ko \
-	$(LINUX_DIR)/drivers/usb/gadget/legacy/g_mass_storage.ko
+	$(LINUX_OBJ_DIR)/drivers/usb/gadget/function/usb_f_mass_storage.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/gadget/legacy/g_mass_storage.ko
   AUTOLOAD:=$(call AutoLoad,52,usb_f_mass_storage)
   $(call AddDepends/usb)
 endef
@@ -239,7 +239,7 @@  define KernelPackage/usb-gadget-cdc-composite
   KCONFIG:=CONFIG_USB_CDC_COMPOSITE
   DEPENDS:=+kmod-usb-gadget +kmod-usb-lib-composite \
 	+kmod-usb-gadget-eth +kmod-usb-gadget-serial
-  FILES:= $(LINUX_DIR)/drivers/usb/gadget/legacy/g_cdc.ko
+  FILES:= $(LINUX_OBJ_DIR)/drivers/usb/gadget/legacy/g_cdc.ko
   $(call AddDepends/usb)
 endef
 
@@ -257,7 +257,7 @@  define KernelPackage/usb-uhci
 	CONFIG_USB_PCI=y \
 	CONFIG_USB_UHCI_ALT \
 	CONFIG_USB_UHCI_HCD
-  FILES:=$(LINUX_DIR)/drivers/usb/host/uhci-hcd.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/host/uhci-hcd.ko
   AUTOLOAD:=$(call AutoLoad,50,uhci-hcd,1)
   $(call AddDepends/usb)
 endef
@@ -285,10 +285,10 @@  define KernelPackage/usb-ohci
 	CONFIG_USB_OHCI_HCD_OMAP3=y \
 	CONFIG_USB_OHCI_HCD_PLATFORM=y
   FILES:= \
-	$(LINUX_DIR)/drivers/usb/host/ohci-hcd.ko \
-	$(LINUX_DIR)/drivers/usb/host/ohci-platform.ko
-  ifneq ($(wildcard $(LINUX_DIR)/drivers/usb/host/ohci-at91.ko),)
-    FILES+=$(LINUX_DIR)/drivers/usb/host/ohci-at91.ko
+	$(LINUX_OBJ_DIR)/drivers/usb/host/ohci-hcd.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/host/ohci-platform.ko
+  ifneq ($(wildcard $(LINUX_OBJ_DIR)/drivers/usb/host/ohci-at91.ko),)
+    FILES+=$(LINUX_OBJ_DIR)/drivers/usb/host/ohci-at91.ko
   endif
   AUTOLOAD:=$(call AutoLoad,50,ohci-hcd ohci-platform ohci-at91,1)
   $(call AddDepends/usb)
@@ -307,7 +307,7 @@  define KernelPackage/usb-ohci-pci
   KCONFIG:= \
 	CONFIG_USB_PCI=y \
 	CONFIG_USB_OHCI_HCD_PCI
-  FILES:=$(LINUX_DIR)/drivers/usb/host/ohci-pci.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/host/ohci-pci.ko
   AUTOLOAD:=$(call AutoLoad,51,ohci-pci,1)
   $(call AddDepends/usb)
 endef
@@ -325,7 +325,7 @@  define KernelPackage/usb-bcma
   HIDDEN:=1
   KCONFIG:=CONFIG_USB_HCD_BCMA
   FILES:= \
-	$(if $(CONFIG_USB_HCD_BCMA),$(LINUX_DIR)/drivers/usb/host/bcma-hcd.ko)
+	$(if $(CONFIG_USB_HCD_BCMA),$(LINUX_OBJ_DIR)/drivers/usb/host/bcma-hcd.ko)
   AUTOLOAD:=$(call AutoLoad,19,$(if $(CONFIG_USB_HCD_BCMA),bcma-hcd),1)
   $(call AddDepends/usb)
 endef
@@ -337,7 +337,7 @@  define KernelPackage/usb-ssb
   HIDDEN:=1
   KCONFIG:=CONFIG_USB_HCD_SSB
   FILES:= \
-	$(if $(CONFIG_USB_HCD_SSB),$(LINUX_DIR)/drivers/usb/host/ssb-hcd.ko)
+	$(if $(CONFIG_USB_HCD_SSB),$(LINUX_OBJ_DIR)/drivers/usb/host/ssb-hcd.ko)
   AUTOLOAD:=$(call AutoLoad,19,$(if $(CONFIG_USB_HCD_SSB),ssb-hcd),1)
   $(call AddDepends/usb)
 endef
@@ -349,7 +349,7 @@  define KernelPackage/usb-ehci
   KCONFIG:= \
 	CONFIG_USB_EHCI_HCD
   FILES:= \
-	$(LINUX_DIR)/drivers/usb/host/ehci-hcd.ko
+	$(LINUX_OBJ_DIR)/drivers/usb/host/ehci-hcd.ko
   AUTOLOAD:=$(call AutoLoad,35,ehci-hcd,1)
   $(call AddDepends/usb)
 endef
@@ -374,18 +374,18 @@  define KernelPackage/usb2
 	CONFIG_USB_EHCI_HCD_AT91=y \
 	CONFIG_USB_EHCI_FSL
   FILES:= \
-	$(LINUX_DIR)/drivers/usb/host/ehci-platform.ko
-  ifneq ($(wildcard $(LINUX_DIR)/drivers/usb/host/ehci-orion.ko),)
-    FILES+=$(LINUX_DIR)/drivers/usb/host/ehci-orion.ko
+	$(LINUX_OBJ_DIR)/drivers/usb/host/ehci-platform.ko
+  ifneq ($(wildcard $(LINUX_OBJ_DIR)/drivers/usb/host/ehci-orion.ko),)
+    FILES+=$(LINUX_OBJ_DIR)/drivers/usb/host/ehci-orion.ko
   endif
-  ifneq ($(wildcard $(LINUX_DIR)/drivers/usb/host/ehci-atmel.ko),)
-    FILES+=$(LINUX_DIR)/drivers/usb/host/ehci-atmel.ko
+  ifneq ($(wildcard $(LINUX_OBJ_DIR)/drivers/usb/host/ehci-atmel.ko),)
+    FILES+=$(LINUX_OBJ_DIR)/drivers/usb/host/ehci-atmel.ko
   endif
-  ifneq ($(wildcard $(LINUX_DIR)/drivers/usb/host/ehci-fsl.ko),)
-    FILES+=$(LINUX_DIR)/drivers/usb/host/ehci-fsl.ko
+  ifneq ($(wildcard $(LINUX_OBJ_DIR)/drivers/usb/host/ehci-fsl.ko),)
+    FILES+=$(LINUX_OBJ_DIR)/drivers/usb/host/ehci-fsl.ko
   endif
-  ifneq ($(wildcard $(LINUX_DIR)/drivers/usb/host/fsl-mph-dr-of.ko),)
-    FILES+=$(LINUX_DIR)/drivers/usb/host/fsl-mph-dr-of.ko
+  ifneq ($(wildcard $(LINUX_OBJ_DIR)/drivers/usb/host/fsl-mph-dr-of.ko),)
+    FILES+=$(LINUX_OBJ_DIR)/drivers/usb/host/fsl-mph-dr-of.ko
   endif
   AUTOLOAD:=$(call AutoLoad,40,ehci-hcd ehci-platform ehci-orion ehci-atmel ehci-fsl fsl-mph-dr-of,1)
   $(call AddDepends/usb)
@@ -404,7 +404,7 @@  define KernelPackage/usb2-pci
   KCONFIG:= \
 	CONFIG_USB_PCI=y \
 	CONFIG_USB_EHCI_PCI
-  FILES:=$(LINUX_DIR)/drivers/usb/host/ehci-pci.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/host/ehci-pci.ko
   AUTOLOAD:=$(call AutoLoad,42,ehci-pci,1)
   $(call AddDepends/usb)
 endef
@@ -426,7 +426,7 @@  define KernelPackage/usb-dwc2
 	CONFIG_USB_DWC2_TRACK_MISSED_SOFS=n \
 	CONFIG_USB_DWC2_DEBUG_PERIODIC=n
   FILES:= \
-	$(LINUX_DIR)/drivers/usb/dwc2/dwc2.ko
+	$(LINUX_OBJ_DIR)/drivers/usb/dwc2/dwc2.ko
   AUTOLOAD:=$(call AutoLoad,54,dwc2,1)
   $(call AddDepends/usb)
 endef
@@ -446,7 +446,7 @@  define KernelPackage/usb-dwc2-pci
 	CONFIG_USB_PCI=y \
 	CONFIG_USB_DWC2_PCI
   FILES:= \
-	$(LINUX_DIR)/drivers/usb/dwc2/dwc2_pci.ko
+	$(LINUX_OBJ_DIR)/drivers/usb/dwc2/dwc2_pci.ko
   AUTOLOAD:=$(call AutoLoad,54,dwc2_pci,1)
   $(call AddDepends/usb)
 endef
@@ -468,7 +468,7 @@  define KernelPackage/usb-dwc3
 	CONFIG_USB_DWC3_DUAL_ROLE=n \
 	CONFIG_USB_DWC3_DEBUG=n \
 	CONFIG_USB_DWC3_VERBOSE=n
-  FILES:= $(LINUX_DIR)/drivers/usb/dwc3/dwc3.ko
+  FILES:= $(LINUX_OBJ_DIR)/drivers/usb/dwc3/dwc3.ko
   AUTOLOAD:=$(call AutoLoad,54,dwc3,1)
   $(call AddDepends/usb)
 endef
@@ -485,7 +485,7 @@  define KernelPackage/usb-dwc3-qcom
   TITLE:=DWC3 Qualcomm USB driver
   DEPENDS:=@(TARGET_ipq40xx||TARGET_ipq806x||TARGET_qualcommax) +kmod-usb-dwc3
   KCONFIG:= CONFIG_USB_DWC3_QCOM
-  FILES:= $(LINUX_DIR)/drivers/usb/dwc3/dwc3-qcom.ko
+  FILES:= $(LINUX_OBJ_DIR)/drivers/usb/dwc3/dwc3-qcom.ko
   AUTOLOAD:=$(call AutoLoad,53,dwc3-qcom,1)
   $(call AddDepends/usb)
 endef
@@ -503,7 +503,7 @@  $(eval $(call KernelPackage,usb-dwc3-qcom))
 define KernelPackage/usb-acm
   TITLE:=Support for modems/isdn controllers
   KCONFIG:=CONFIG_USB_ACM
-  FILES:=$(LINUX_DIR)/drivers/usb/class/cdc-acm.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/class/cdc-acm.ko
   AUTOLOAD:=$(call AutoProbe,cdc-acm)
 $(call AddDepends/usb)
 endef
@@ -518,7 +518,7 @@  $(eval $(call KernelPackage,usb-acm))
 define KernelPackage/usb-wdm
   TITLE:=USB Wireless Device Management
   KCONFIG:=CONFIG_USB_WDM
-  FILES:=$(LINUX_DIR)/drivers/usb/class/cdc-wdm.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/class/cdc-wdm.ko
   AUTOLOAD:=$(call AutoProbe,cdc-wdm)
 $(call AddDepends/usb)
 $(call AddDepends/usb-net)
@@ -539,8 +539,8 @@  define KernelPackage/usb-audio
   $(call AddDepends/usb)
   $(call AddDepends/sound)
   FILES:= \
-	$(LINUX_DIR)/sound/usb/snd-usbmidi-lib.ko \
-	$(LINUX_DIR)/sound/usb/snd-usb-audio.ko
+	$(LINUX_OBJ_DIR)/sound/usb/snd-usbmidi-lib.ko \
+	$(LINUX_OBJ_DIR)/sound/usb/snd-usb-audio.ko
   AUTOLOAD:=$(call AutoProbe,snd-usbmidi-lib snd-usb-audio)
 endef
 
@@ -554,7 +554,7 @@  $(eval $(call KernelPackage,usb-audio))
 define KernelPackage/usb-printer
   TITLE:=Support for printers
   KCONFIG:=CONFIG_USB_PRINTER
-  FILES:=$(LINUX_DIR)/drivers/usb/class/usblp.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/class/usblp.ko
   AUTOLOAD:=$(call AutoProbe,usblp)
   $(call AddDepends/usb)
 endef
@@ -569,7 +569,7 @@  $(eval $(call KernelPackage,usb-printer))
 define KernelPackage/usb-serial
   TITLE:=Support for USB-to-Serial converters
   KCONFIG:=CONFIG_USB_SERIAL
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/usbserial.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/serial/usbserial.ko
   AUTOLOAD:=$(call AutoProbe,usbserial)
   $(call AddDepends/usb)
 endef
@@ -590,7 +590,7 @@  endef
 define KernelPackage/usb-serial-belkin
   TITLE:=Support for Belkin devices
   KCONFIG:=CONFIG_USB_SERIAL_BELKIN
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/belkin_sa.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/serial/belkin_sa.ko
   AUTOLOAD:=$(call AutoProbe,belkin_sa)
   $(call AddDepends/usb-serial)
 endef
@@ -605,7 +605,7 @@  $(eval $(call KernelPackage,usb-serial-belkin))
 define KernelPackage/usb-serial-ch341
   TITLE:=Support for CH341 devices
   KCONFIG:=CONFIG_USB_SERIAL_CH341
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/ch341.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/serial/ch341.ko
   AUTOLOAD:=$(call AutoProbe,ch341)
   $(call AddDepends/usb-serial)
 endef
@@ -620,7 +620,7 @@  $(eval $(call KernelPackage,usb-serial-ch341))
 define KernelPackage/usb-serial-edgeport
   TITLE:=Support for Digi Edgeport devices
   KCONFIG:=CONFIG_USB_SERIAL_EDGEPORT
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/io_edgeport.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/serial/io_edgeport.ko
   AUTOLOAD:=$(call AutoProbe,io_edgeport)
   $(call AddDepends/usb-serial)
   DEPENDS+=+edgeport-firmware
@@ -652,7 +652,7 @@  $(eval $(call KernelPackage,usb-serial-edgeport))
 define KernelPackage/usb-serial-ftdi
   TITLE:=Support for FTDI devices
   KCONFIG:=CONFIG_USB_SERIAL_FTDI_SIO
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/ftdi_sio.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/serial/ftdi_sio.ko
   AUTOLOAD:=$(call AutoProbe,ftdi_sio)
   $(call AddDepends/usb-serial)
 endef
@@ -667,7 +667,7 @@  $(eval $(call KernelPackage,usb-serial-ftdi))
 define KernelPackage/usb-serial-garmin
   TITLE:=Support for Garmin GPS devices
   KCONFIG:=CONFIG_USB_SERIAL_GARMIN
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/garmin_gps.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/serial/garmin_gps.ko
   AUTOLOAD:=$(call AutoProbe,garmin_gps)
   $(call AddDepends/usb-serial)
 endef
@@ -682,7 +682,7 @@  $(eval $(call KernelPackage,usb-serial-garmin))
 define KernelPackage/usb-serial-simple
   TITLE:=USB Serial Simple (Motorola phone)
   KCONFIG:=CONFIG_USB_SERIAL_SIMPLE
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/usb-serial-simple.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/serial/usb-serial-simple.ko
   AUTOLOAD:=$(call AutoProbe,usb-serial-simple)
   $(call AddDepends/usb-serial)
 endef
@@ -710,7 +710,7 @@  $(eval $(call KernelPackage,usb-serial-simple))
 define KernelPackage/usb-serial-ti-usb
   TITLE:=Support for TI USB 3410/5052
   KCONFIG:=CONFIG_USB_SERIAL_TI
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/ti_usb_3410_5052.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/serial/ti_usb_3410_5052.ko
   AUTOLOAD:=$(call AutoProbe,ti_usb_3410_5052)
   $(call AddDepends/usb-serial)
 endef
@@ -725,7 +725,7 @@  $(eval $(call KernelPackage,usb-serial-ti-usb))
 define KernelPackage/usb-serial-ipw
   TITLE:=Support for IPWireless 3G devices
   KCONFIG:=CONFIG_USB_SERIAL_IPW
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/ipw.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/serial/ipw.ko
   AUTOLOAD:=$(call AutoProbe,ipw)
   $(call AddDepends/usb-serial,+kmod-usb-serial-wwan)
 endef
@@ -736,7 +736,7 @@  $(eval $(call KernelPackage,usb-serial-ipw))
 define KernelPackage/usb-serial-mct
   TITLE:=Support for Magic Control Tech. devices
   KCONFIG:=CONFIG_USB_SERIAL_MCT_U232
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/mct_u232.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/serial/mct_u232.ko
   AUTOLOAD:=$(call AutoProbe,mct_u232)
   $(call AddDepends/usb-serial)
 endef
@@ -751,7 +751,7 @@  $(eval $(call KernelPackage,usb-serial-mct))
 define KernelPackage/usb-serial-mos7720
   TITLE:=Support for Moschip MOS7720 devices
   KCONFIG:=CONFIG_USB_SERIAL_MOS7720 CONFIG_USB_SERIAL_MOS7715_PARPORT=y
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/mos7720.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/serial/mos7720.ko
   DEPENDS:=+kmod-ppdev
   AUTOLOAD:=$(call AutoProbe,mos7720)
   $(call AddDepends/usb-serial)
@@ -767,7 +767,7 @@  $(eval $(call KernelPackage,usb-serial-mos7720))
 define KernelPackage/usb-serial-mos7840
   TITLE:=Support for Moschip MOS7840 devices
   KCONFIG:=CONFIG_USB_SERIAL_MOS7840
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/mos7840.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/serial/mos7840.ko
   AUTOLOAD:=$(call AutoProbe,mos7840)
   $(call AddDepends/usb-serial)
 endef
@@ -782,7 +782,7 @@  $(eval $(call KernelPackage,usb-serial-mos7840))
 define KernelPackage/usb-serial-pl2303
   TITLE:=Support for Prolific PL2303 devices
   KCONFIG:=CONFIG_USB_SERIAL_PL2303
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/pl2303.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/serial/pl2303.ko
   AUTOLOAD:=$(call AutoProbe,pl2303)
   $(call AddDepends/usb-serial)
 endef
@@ -797,7 +797,7 @@  $(eval $(call KernelPackage,usb-serial-pl2303))
 define KernelPackage/usb-serial-cp210x
   TITLE:=Support for Silicon Labs cp210x devices
   KCONFIG:=CONFIG_USB_SERIAL_CP210X
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/cp210x.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/serial/cp210x.ko
   AUTOLOAD:=$(call AutoProbe,cp210x)
   $(call AddDepends/usb-serial)
 endef
@@ -812,7 +812,7 @@  $(eval $(call KernelPackage,usb-serial-cp210x))
 define KernelPackage/usb-serial-ark3116
   TITLE:=Support for ArkMicroChips ARK3116 devices
   KCONFIG:=CONFIG_USB_SERIAL_ARK3116
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/ark3116.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/serial/ark3116.ko
   AUTOLOAD:=$(call AutoProbe,ark3116)
   $(call AddDepends/usb-serial)
 endef
@@ -827,7 +827,7 @@  $(eval $(call KernelPackage,usb-serial-ark3116))
 define KernelPackage/usb-serial-oti6858
   TITLE:=Support for Ours Technology OTI6858 devices
   KCONFIG:=CONFIG_USB_SERIAL_OTI6858
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/oti6858.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/serial/oti6858.ko
   AUTOLOAD:=$(call AutoProbe,oti6858)
   $(call AddDepends/usb-serial)
 endef
@@ -842,7 +842,7 @@  $(eval $(call KernelPackage,usb-serial-oti6858))
 define KernelPackage/usb-serial-sierrawireless
   TITLE:=Support for Sierra Wireless devices
   KCONFIG:=CONFIG_USB_SERIAL_SIERRAWIRELESS
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/sierra.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/serial/sierra.ko
   AUTOLOAD:=$(call AutoProbe,sierra)
   $(call AddDepends/usb-serial)
 endef
@@ -857,7 +857,7 @@  $(eval $(call KernelPackage,usb-serial-sierrawireless))
 define KernelPackage/usb-serial-visor
   TITLE:=Support for Handspring Visor devices
   KCONFIG:=CONFIG_USB_SERIAL_VISOR
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/visor.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/serial/visor.ko
   AUTOLOAD:=$(call AutoProbe,visor)
   $(call AddDepends/usb-serial)
 endef
@@ -872,7 +872,7 @@  $(eval $(call KernelPackage,usb-serial-visor))
 define KernelPackage/usb-serial-cypress-m8
   TITLE:=Support for CypressM8 USB-Serial
   KCONFIG:=CONFIG_USB_SERIAL_CYPRESS_M8
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/cypress_m8.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/serial/cypress_m8.ko
   AUTOLOAD:=$(call AutoProbe,cypress_m8)
   $(call AddDepends/usb-serial)
 endef
@@ -904,8 +904,8 @@  define KernelPackage/usb-serial-keyspan
 	CONFIG_USB_SERIAL_KEYSPAN_USA49W \
 	CONFIG_USB_SERIAL_KEYSPAN_USA49WLC
   FILES:= \
-	$(LINUX_DIR)/drivers/usb/serial/keyspan.ko \
-	$(wildcard $(LINUX_DIR)/drivers/usb/misc/ezusb.ko)
+	$(LINUX_OBJ_DIR)/drivers/usb/serial/keyspan.ko \
+	$(wildcard $(LINUX_OBJ_DIR)/drivers/usb/misc/ezusb.ko)
   AUTOLOAD:=$(call AutoProbe,ezusb keyspan)
   $(call AddDepends/usb-serial)
 endef
@@ -920,7 +920,7 @@  $(eval $(call KernelPackage,usb-serial-keyspan))
 define KernelPackage/usb-serial-wwan
   TITLE:=Support for GSM and CDMA modems
   KCONFIG:=CONFIG_USB_SERIAL_WWAN
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/usb_wwan.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/serial/usb_wwan.ko
   HIDDEN:=1
   AUTOLOAD:=$(call AutoProbe,usb_wwan)
   $(call AddDepends/usb-serial)
@@ -936,7 +936,7 @@  $(eval $(call KernelPackage,usb-serial-wwan))
 define KernelPackage/usb-serial-option
   TITLE:=Support for Option HSDPA modems
   KCONFIG:=CONFIG_USB_SERIAL_OPTION
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/option.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/serial/option.ko
   AUTOLOAD:=$(call AutoProbe,option)
   $(call AddDepends/usb-serial,+kmod-usb-serial-wwan)
 endef
@@ -951,7 +951,7 @@  $(eval $(call KernelPackage,usb-serial-option))
 define KernelPackage/usb-serial-qualcomm
   TITLE:=Support for Qualcomm USB serial
   KCONFIG:=CONFIG_USB_SERIAL_QUALCOMM
-  FILES:=$(LINUX_DIR)/drivers/usb/serial/qcserial.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/serial/qcserial.ko
   AUTOLOAD:=$(call AutoProbe,qcserial)
   $(call AddDepends/usb-serial,+kmod-usb-serial-wwan)
 endef
@@ -967,7 +967,7 @@  define KernelPackage/usb-storage
   TITLE:=USB Storage support
   DEPENDS:= +kmod-scsi-core
   KCONFIG:=CONFIG_USB_STORAGE
-  FILES:=$(LINUX_DIR)/drivers/usb/storage/usb-storage.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/storage/usb-storage.ko
   AUTOLOAD:=$(call AutoProbe,usb-storage,1)
   $(call AddDepends/usb)
 endef
@@ -995,16 +995,16 @@  define KernelPackage/usb-storage-extras
 	CONFIG_USB_STORAGE_SDDR55 \
 	CONFIG_USB_STORAGE_USBAT
   FILES:= \
-	$(LINUX_DIR)/drivers/usb/storage/ums-alauda.ko \
-	$(LINUX_DIR)/drivers/usb/storage/ums-cypress.ko \
-	$(LINUX_DIR)/drivers/usb/storage/ums-datafab.ko \
-	$(LINUX_DIR)/drivers/usb/storage/ums-freecom.ko \
-	$(LINUX_DIR)/drivers/usb/storage/ums-isd200.ko \
-	$(LINUX_DIR)/drivers/usb/storage/ums-jumpshot.ko \
-	$(LINUX_DIR)/drivers/usb/storage/ums-karma.ko \
-	$(LINUX_DIR)/drivers/usb/storage/ums-sddr09.ko \
-	$(LINUX_DIR)/drivers/usb/storage/ums-sddr55.ko \
-	$(LINUX_DIR)/drivers/usb/storage/ums-usbat.ko
+	$(LINUX_OBJ_DIR)/drivers/usb/storage/ums-alauda.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/storage/ums-cypress.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/storage/ums-datafab.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/storage/ums-freecom.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/storage/ums-isd200.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/storage/ums-jumpshot.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/storage/ums-karma.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/storage/ums-sddr09.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/storage/ums-sddr55.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/storage/ums-usbat.ko
   AUTOLOAD:=$(call AutoProbe,ums-alauda ums-cypress ums-datafab \
 				ums-freecom ums-isd200 ums-jumpshot \
 				ums-karma ums-sddr09 ums-sddr55 ums-usbat)
@@ -1023,7 +1023,7 @@  define KernelPackage/usb-storage-uas
   TITLE:=USB Attached SCSI (UASP) support
   DEPENDS:=+kmod-usb-storage
   KCONFIG:=CONFIG_USB_UAS
-  FILES:=$(LINUX_DIR)/drivers/usb/storage/uas.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/storage/uas.ko
   AUTOLOAD:=$(call AutoProbe,uas,1)
 endef
 
@@ -1041,7 +1041,7 @@  define KernelPackage/usb-atm
   TITLE:=Support for ATM on USB bus
   DEPENDS:=+kmod-atm
   KCONFIG:=CONFIG_USB_ATM
-  FILES:=$(LINUX_DIR)/drivers/usb/atm/usbatm.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/atm/usbatm.ko
   AUTOLOAD:=$(call AutoProbe,usbatm)
   $(call AddDepends/usb)
 endef
@@ -1062,7 +1062,7 @@  endef
 define KernelPackage/usb-atm-speedtouch
   TITLE:=SpeedTouch USB ADSL modems support
   KCONFIG:=CONFIG_USB_SPEEDTOUCH
-  FILES:=$(LINUX_DIR)/drivers/usb/atm/speedtch.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/atm/speedtch.ko
   AUTOLOAD:=$(call AutoProbe,speedtch)
   $(call AddDepends/usb-atm)
 endef
@@ -1076,7 +1076,7 @@  $(eval $(call KernelPackage,usb-atm-speedtouch))
 
 define KernelPackage/usb-atm-ueagle
   TITLE:=Eagle 8051 based USB ADSL modems support
-  FILES:=$(LINUX_DIR)/drivers/usb/atm/ueagle-atm.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/atm/ueagle-atm.ko
   KCONFIG:=CONFIG_USB_UEAGLEATM
   AUTOLOAD:=$(call AutoProbe,ueagle-atm)
   $(call AddDepends/usb-atm)
@@ -1091,7 +1091,7 @@  $(eval $(call KernelPackage,usb-atm-ueagle))
 
 define KernelPackage/usb-atm-cxacru
   TITLE:=cxacru
-  FILES:=$(LINUX_DIR)/drivers/usb/atm/cxacru.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/atm/cxacru.ko
   KCONFIG:=CONFIG_USB_CXACRU
   AUTOLOAD:=$(call AutoProbe,cxacru)
   $(call AddDepends/usb-atm)
@@ -1110,7 +1110,7 @@  define KernelPackage/usb-net
   KCONFIG:=CONFIG_USB_USBNET \
 	CONFIG_USB_NET_DRIVERS
   AUTOLOAD:=$(call AutoProbe,usbnet)
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/usbnet.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/$(USBNET_DIR)/usbnet.ko
   $(call AddDepends/usb)
 endef
 
@@ -1130,7 +1130,7 @@  endef
 define KernelPackage/usb-net-aqc111
   TITLE:=Support for USB-to-Ethernet Aquantia AQtion 5/2.5GbE
   KCONFIG:=CONFIG_USB_NET_AQC111
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/aqc111.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/$(USBNET_DIR)/aqc111.ko
   AUTOLOAD:=$(call AutoProbe,aqc111)
   $(call AddDepends/usb-net)
 endef
@@ -1148,7 +1148,7 @@  define KernelPackage/usb-net-asix
 	+kmod-libphy +kmod-net-selftests +kmod-mdio-devres +kmod-phy-ax88796b \
 	+LINUX_6_1:kmod-phylink
   KCONFIG:=CONFIG_USB_NET_AX8817X
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/asix.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/$(USBNET_DIR)/asix.ko
   AUTOLOAD:=$(call AutoProbe,asix)
   $(call AddDepends/usb-net)
 endef
@@ -1164,7 +1164,7 @@  define KernelPackage/usb-net-asix-ax88179
   TITLE:=Kernel module for USB-to-Gigabit-Ethernet Asix convertors
   DEPENDS:=+kmod-libphy
   KCONFIG:=CONFIG_USB_NET_AX88179_178A
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/ax88179_178a.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/$(USBNET_DIR)/ax88179_178a.ko
   AUTOLOAD:=$(call AutoProbe,ax88179_178a)
   $(call AddDepends/usb-net)
 endef
@@ -1181,7 +1181,7 @@  define KernelPackage/usb-net-hso
   TITLE:=Kernel module for Option USB High Speed Mobile Devices
   KCONFIG:=CONFIG_USB_HSO
   FILES:= \
-	$(LINUX_DIR)/drivers/$(USBNET_DIR)/hso.ko
+	$(LINUX_OBJ_DIR)/drivers/$(USBNET_DIR)/hso.ko
   AUTOLOAD:=$(call AutoProbe,hso)
   $(call AddDepends/usb-net)
   $(call AddDepends/rfkill)
@@ -1197,7 +1197,7 @@  $(eval $(call KernelPackage,usb-net-hso))
 define KernelPackage/usb-net-kaweth
   TITLE:=Kernel module for USB-to-Ethernet Kaweth convertors
   KCONFIG:=CONFIG_USB_KAWETH
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/kaweth.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/$(USBNET_DIR)/kaweth.ko
   AUTOLOAD:=$(call AutoProbe,kaweth)
   $(call AddDepends/usb-net)
 endef
@@ -1213,7 +1213,7 @@  define KernelPackage/usb-net-lan78xx
   TITLE:=USB-To-Ethernet Microchip LAN78XX convertors
   DEPENDS:=+kmod-fixed-phy +kmod-phy-microchip +PACKAGE_kmod-of-mdio:kmod-of-mdio
   KCONFIG:=CONFIG_USB_LAN78XX
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/lan78xx.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/$(USBNET_DIR)/lan78xx.ko
   AUTOLOAD:=$(call AutoProbe,lan78xx)
   $(call AddDepends/usb-net)
 endef
@@ -1229,7 +1229,7 @@  $(eval $(call KernelPackage,usb-net-lan78xx))
 define KernelPackage/usb-net-pegasus
   TITLE:=Kernel module for USB-to-Ethernet Pegasus convertors
   KCONFIG:=CONFIG_USB_PEGASUS
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/pegasus.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/$(USBNET_DIR)/pegasus.ko
   AUTOLOAD:=$(call AutoProbe,pegasus)
   $(call AddDepends/usb-net)
 endef
@@ -1244,7 +1244,7 @@  $(eval $(call KernelPackage,usb-net-pegasus))
 define KernelPackage/usb-net-mcs7830
   TITLE:=Kernel module for USB-to-Ethernet MCS7830 convertors
   KCONFIG:=CONFIG_USB_NET_MCS7830
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/mcs7830.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/$(USBNET_DIR)/mcs7830.ko
   AUTOLOAD:=$(call AutoProbe,mcs7830)
   $(call AddDepends/usb-net)
 endef
@@ -1260,7 +1260,7 @@  define KernelPackage/usb-net-smsc75xx
   TITLE:=SMSC LAN75XX based USB 2.0 Gigabit ethernet devices
   DEPENDS:=+kmod-libphy
   KCONFIG:=CONFIG_USB_NET_SMSC75XX
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/smsc75xx.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/$(USBNET_DIR)/smsc75xx.ko
   AUTOLOAD:=$(call AutoProbe,smsc75xx)
   $(call AddDepends/usb-net, +kmod-lib-crc16)
 endef
@@ -1276,7 +1276,7 @@  define KernelPackage/usb-net-smsc95xx
   TITLE:=SMSC LAN95XX based USB 2.0 10/100 ethernet devices
   DEPENDS:=+kmod-libphy +kmod-phy-smsc +LINUX_6_1:kmod-net-selftests
   KCONFIG:=CONFIG_USB_NET_SMSC95XX
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/smsc95xx.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/$(USBNET_DIR)/smsc95xx.ko
   AUTOLOAD:=$(call AutoProbe,smsc95xx)
   $(call AddDepends/usb-net, +kmod-lib-crc16)
 endef
@@ -1291,7 +1291,7 @@  $(eval $(call KernelPackage,usb-net-smsc95xx))
 define KernelPackage/usb-net-dm9601-ether
   TITLE:=Support for DM9601 ethernet connections
   KCONFIG:=CONFIG_USB_NET_DM9601
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/dm9601.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/$(USBNET_DIR)/dm9601.ko
   AUTOLOAD:=$(call AutoProbe,dm9601)
   $(call AddDepends/usb-net)
 endef
@@ -1305,7 +1305,7 @@  $(eval $(call KernelPackage,usb-net-dm9601-ether))
 define KernelPackage/usb-net-cdc-ether
   TITLE:=Support for cdc ethernet connections
   KCONFIG:=CONFIG_USB_NET_CDCETHER
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/cdc_ether.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/$(USBNET_DIR)/cdc_ether.ko
   AUTOLOAD:=$(call AutoProbe,cdc_ether)
   $(call AddDepends/usb-net)
 endef
@@ -1320,7 +1320,7 @@  $(eval $(call KernelPackage,usb-net-cdc-ether))
 define KernelPackage/usb-net-cdc-eem
   TITLE:=Support for CDC EEM connections
   KCONFIG:=CONFIG_USB_NET_CDC_EEM
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/cdc_eem.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/$(USBNET_DIR)/cdc_eem.ko
   AUTOLOAD:=$(call AutoProbe,cdc_eem)
   $(call AddDepends/usb-net)
 endef
@@ -1337,7 +1337,7 @@  define KernelPackage/usb-net-cdc-subset
   KCONFIG:= \
 	CONFIG_USB_NET_CDC_SUBSET \
 	CONFIG_USB_ARMLINUX
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/cdc_subset.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/$(USBNET_DIR)/cdc_subset.ko
   AUTOLOAD:=$(call AutoProbe,cdc_subset)
   $(call AddDepends/usb-net)
 endef
@@ -1352,7 +1352,7 @@  $(eval $(call KernelPackage,usb-net-cdc-subset))
 define KernelPackage/usb-net-qmi-wwan
   TITLE:=QMI WWAN driver
   KCONFIG:=CONFIG_USB_NET_QMI_WWAN
-  FILES:= $(LINUX_DIR)/drivers/$(USBNET_DIR)/qmi_wwan.ko
+  FILES:= $(LINUX_OBJ_DIR)/drivers/$(USBNET_DIR)/qmi_wwan.ko
   AUTOLOAD:=$(call AutoProbe,qmi_wwan)
   $(call AddDepends/usb-net,+kmod-usb-wdm)
 endef
@@ -1367,7 +1367,7 @@  $(eval $(call KernelPackage,usb-net-qmi-wwan))
 define KernelPackage/usb-net-rtl8150
   TITLE:=Kernel module for USB-to-Ethernet Realtek convertors
   KCONFIG:=CONFIG_USB_RTL8150
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/rtl8150.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/$(USBNET_DIR)/rtl8150.ko
   AUTOLOAD:=$(call AutoProbe,rtl8150)
   $(call AddDepends/usb-net)
 endef
@@ -1383,7 +1383,7 @@  define KernelPackage/usb-net-rtl8152
   TITLE:=Kernel module for USB-to-Ethernet Realtek convertors
   DEPENDS:=+r8152-firmware +kmod-crypto-sha256 +kmod-usb-net-cdc-ncm
   KCONFIG:=CONFIG_USB_RTL8152
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/r8152.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/$(USBNET_DIR)/r8152.ko
   AUTOLOAD:=$(call AutoProbe,r8152)
   $(call AddDepends/usb-net)
 endef
@@ -1398,7 +1398,7 @@  $(eval $(call KernelPackage,usb-net-rtl8152))
 define KernelPackage/usb-net-sr9700
   TITLE:=Support for CoreChip SR9700 ethernet devices
   KCONFIG:=CONFIG_USB_NET_SR9700
-  FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/sr9700.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/$(USBNET_DIR)/sr9700.ko
   AUTOLOAD:=$(call AutoProbe,sr9700)
   $(call AddDepends/usb-net)
 endef
@@ -1413,7 +1413,7 @@  $(eval $(call KernelPackage,usb-net-sr9700))
 define KernelPackage/usb-net-rndis
   TITLE:=Support for RNDIS connections
   KCONFIG:=CONFIG_USB_NET_RNDIS_HOST
-  FILES:= $(LINUX_DIR)/drivers/$(USBNET_DIR)/rndis_host.ko
+  FILES:= $(LINUX_OBJ_DIR)/drivers/$(USBNET_DIR)/rndis_host.ko
   AUTOLOAD:=$(call AutoProbe,rndis_host)
   $(call AddDepends/usb-net,+kmod-usb-net-cdc-ether)
 endef
@@ -1430,7 +1430,7 @@  define KernelPackage/usb-net-cdc-mbim
   TITLE:=Kernel module for MBIM Devices
   KCONFIG:=CONFIG_USB_NET_CDC_MBIM
   FILES:= \
-   $(LINUX_DIR)/drivers/$(USBNET_DIR)/cdc_mbim.ko
+   $(LINUX_OBJ_DIR)/drivers/$(USBNET_DIR)/cdc_mbim.ko
   AUTOLOAD:=$(call AutoProbe,cdc_mbim)
   $(call AddDepends/usb-net,+kmod-usb-wdm +kmod-usb-net-cdc-ncm)
 endef
@@ -1445,7 +1445,7 @@  $(eval $(call KernelPackage,usb-net-cdc-mbim))
 define KernelPackage/usb-net-cdc-ncm
   TITLE:=Support for CDC NCM connections
   KCONFIG:=CONFIG_USB_NET_CDC_NCM
-  FILES:= $(LINUX_DIR)/drivers/$(USBNET_DIR)/cdc_ncm.ko
+  FILES:= $(LINUX_OBJ_DIR)/drivers/$(USBNET_DIR)/cdc_ncm.ko
   AUTOLOAD:=$(call AutoProbe,cdc_ncm)
   $(call AddDepends/usb-net,+kmod-usb-net-cdc-ether)
 endef
@@ -1460,7 +1460,7 @@  $(eval $(call KernelPackage,usb-net-cdc-ncm))
 define KernelPackage/usb-net-huawei-cdc-ncm
   TITLE:=Support for Huawei CDC NCM connections
   KCONFIG:=CONFIG_USB_NET_HUAWEI_CDC_NCM
-  FILES:= $(LINUX_DIR)/drivers/$(USBNET_DIR)/huawei_cdc_ncm.ko
+  FILES:= $(LINUX_OBJ_DIR)/drivers/$(USBNET_DIR)/huawei_cdc_ncm.ko
   AUTOLOAD:=$(call AutoProbe,huawei_cdc_ncm)
   $(call AddDepends/usb-net,+kmod-usb-net-cdc-ncm +kmod-usb-wdm)
 endef
@@ -1475,7 +1475,7 @@  $(eval $(call KernelPackage,usb-net-huawei-cdc-ncm))
 define KernelPackage/usb-net-sierrawireless
   TITLE:=Support for Sierra Wireless devices
   KCONFIG:=CONFIG_USB_SIERRA_NET
-  FILES:=$(LINUX_DIR)/drivers/net/usb/sierra_net.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/usb/sierra_net.ko
   AUTOLOAD:=$(call AutoProbe,sierra_net)
   $(call AddDepends/usb-net)
 endef
@@ -1490,7 +1490,7 @@  $(eval $(call KernelPackage,usb-net-sierrawireless))
 define KernelPackage/usb-net-ipheth
   TITLE:=Apple iPhone USB Ethernet driver
   KCONFIG:=CONFIG_USB_IPHETH
-  FILES:=$(LINUX_DIR)/drivers/net/usb/ipheth.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/usb/ipheth.ko
   AUTOLOAD:=$(call AutoProbe,ipheth)
   $(call AddDepends/usb-net)
 endef
@@ -1505,7 +1505,7 @@  $(eval $(call KernelPackage,usb-net-ipheth))
 define KernelPackage/usb-net-kalmia
   TITLE:=Samsung Kalmia based LTE USB modem
   KCONFIG:=CONFIG_USB_NET_KALMIA
-  FILES:=$(LINUX_DIR)/drivers/net/usb/kalmia.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/usb/kalmia.ko
   AUTOLOAD:=$(call AutoProbe,kalmia)
   $(call AddDepends/usb-net)
 endef
@@ -1519,7 +1519,7 @@  $(eval $(call KernelPackage,usb-net-kalmia))
 define KernelPackage/usb-net-pl
   TITLE:=Prolific PL-2301/2302/25A1 based cables
   KCONFIG:=CONFIG_USB_NET_PLUSB
-  FILES:=$(LINUX_DIR)/drivers/net/usb/plusb.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/usb/plusb.ko
   AUTOLOAD:=$(call AutoProbe,plusb)
   $(call AddDepends/usb-net)
 endef
@@ -1534,7 +1534,7 @@  define KernelPackage/usb-hid
   TITLE:=Support for USB Human Input Devices
   KCONFIG:=CONFIG_HID_SUPPORT=y CONFIG_USB_HID CONFIG_USB_HIDDEV=y
   DEPENDS:=+kmod-hid +kmod-hid-generic +kmod-input-evdev
-  FILES:=$(LINUX_DIR)/drivers/$(USBHID_DIR)/usbhid.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/$(USBHID_DIR)/usbhid.ko
   AUTOLOAD:=$(call AutoProbe,usbhid)
   $(call AddDepends/usb)
 endef
@@ -1551,7 +1551,7 @@  define KernelPackage/usb-hid-cp2112
   TITLE:=Silicon Labs CP2112 HID USB to SMBus Master Bridge
   KCONFIG:=CONFIG_HID_CP2112
   DEPENDS:=@GPIO_SUPPORT +kmod-usb-hid +kmod-i2c-core
-  FILES:=$(LINUX_DIR)/drivers/hid/hid-cp2112.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hid/hid-cp2112.ko
   AUTOLOAD:=$(call AutoProbe,hid-cp2112)
 endef
 
@@ -1568,7 +1568,7 @@  define KernelPackage/usb-hid-mcp2221
   TITLE:=Microchip USB 2.0 to I2C/UART Protocol Converter with GPIO
   KCONFIG:=CONFIG_HID_MCP2221
   DEPENDS:=@GPIO_SUPPORT +kmod-usb-hid +kmod-i2c-core
-  FILES:=$(LINUX_DIR)/drivers/hid/hid-mcp2221.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hid/hid-mcp2221.ko
   AUTOLOAD:=$(call AutoProbe,hid-mcp2221)
 endef
 
@@ -1584,7 +1584,7 @@  define KernelPackage/usb-yealink
   TITLE:=USB Yealink VOIP phone
   DEPENDS:=+kmod-input-evdev
   KCONFIG:=CONFIG_USB_YEALINK CONFIG_INPUT_YEALINK CONFIG_INPUT=m CONFIG_INPUT_MISC=y
-  FILES:=$(LINUX_DIR)/drivers/$(USBINPUT_DIR)/yealink.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/$(USBINPUT_DIR)/yealink.ko
   AUTOLOAD:=$(call AutoProbe,yealink)
   $(call AddDepends/usb)
 endef
@@ -1600,7 +1600,7 @@  define KernelPackage/usb-cm109
   TITLE:=Support for CM109 device
   DEPENDS:=+kmod-input-evdev
   KCONFIG:=CONFIG_USB_CM109 CONFIG_INPUT_CM109 CONFIG_INPUT=m CONFIG_INPUT_MISC=y
-  FILES:=$(LINUX_DIR)/drivers/$(USBINPUT_DIR)/cm109.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/$(USBINPUT_DIR)/cm109.ko
   AUTOLOAD:=$(call AutoProbe,cm109)
   $(call AddDepends/usb)
 endef
@@ -1616,7 +1616,7 @@  define KernelPackage/usb-test
   TITLE:=USB Testing Driver
   DEPENDS:=@DEVEL
   KCONFIG:=CONFIG_USB_TEST
-  FILES:=$(LINUX_DIR)/drivers/usb/misc/usbtest.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/misc/usbtest.ko
   $(call AddDepends/usb)
 endef
 
@@ -1632,7 +1632,7 @@  define KernelPackage/usbip
   KCONFIG:= \
 	CONFIG_USBIP_CORE \
 	CONFIG_USBIP_DEBUG=n
-  FILES:=$(LINUX_DIR)/drivers/usb/usbip/usbip-core.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/usbip/usbip-core.ko
   AUTOLOAD:=$(call AutoProbe,usbip-core)
   $(call AddDepends/usb)
 endef
@@ -1644,7 +1644,7 @@  define KernelPackage/usbip-client
   TITLE := USB-over-IP client driver
   DEPENDS := +kmod-usbip
   KCONFIG := CONFIG_USBIP_VHCI_HCD
-  FILES :=$(LINUX_DIR)/drivers/usb/usbip/vhci-hcd.ko
+  FILES :=$(LINUX_OBJ_DIR)/drivers/usb/usbip/vhci-hcd.ko
   AUTOLOAD := $(call AutoProbe,vhci-hcd)
   $(call AddDepends/usb)
 endef
@@ -1657,7 +1657,7 @@  $(call KernelPackage/usbip/Default)
   TITLE := USB-over-IP host driver
   DEPENDS := +kmod-usbip
   KCONFIG := CONFIG_USBIP_HOST
-  FILES :=$(LINUX_DIR)/drivers/usb/usbip/usbip-host.ko
+  FILES :=$(LINUX_OBJ_DIR)/drivers/usb/usbip/usbip-host.ko
   AUTOLOAD := $(call AutoProbe,usbip-host)
   $(call AddDepends/usb)
 endef
@@ -1675,9 +1675,9 @@  define KernelPackage/usb-chipidea
 	CONFIG_USB_CHIPIDEA_UDC=y \
 	CONFIG_USB_CHIPIDEA_DEBUG=y
   FILES:= \
-	$(LINUX_DIR)/drivers/extcon/extcon-core.ko \
-	$(LINUX_DIR)/drivers/usb/chipidea/ci_hdrc.ko \
-	$(LINUX_DIR)/drivers/usb/common/ulpi.ko
+	$(LINUX_OBJ_DIR)/drivers/extcon/extcon-core.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/chipidea/ci_hdrc.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/common/ulpi.ko
   AUTOLOAD:=$(call AutoLoad,39,ci_hdrc,1)
   $(call AddDepends/usb)
 endef
@@ -1699,8 +1699,8 @@  define KernelPackage/usb-chipidea2
 	CONFIG_USB_CHIPIDEA_UDC=y \
 	CONFIG_USB_CHIPIDEA_DEBUG=y
   FILES:= \
-	$(LINUX_DIR)/drivers/extcon/extcon-core.ko \
-	$(LINUX_DIR)/drivers/usb/chipidea/ci_hdrc_usb2.ko
+	$(LINUX_OBJ_DIR)/drivers/extcon/extcon-core.ko \
+	$(LINUX_OBJ_DIR)/drivers/usb/chipidea/ci_hdrc_usb2.ko
   AUTOLOAD:=$(call AutoLoad,39,ci_hdrc_usb2,1)
   $(call AddDepends/usb)
 endef
@@ -1716,7 +1716,7 @@  define KernelPackage/usbmon
   TITLE:=USB traffic monitor
   KCONFIG:=CONFIG_USB_MON
   $(call AddDepends/usb)
-  FILES:=$(LINUX_DIR)/drivers/usb/mon/usbmon.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/mon/usbmon.ko
   AUTOLOAD:=$(call AutoProbe,usbmon)
 endef
 
@@ -1727,8 +1727,8 @@  endef
 $(eval $(call KernelPackage,usbmon))
 
 XHCI_MODULES := xhci-pci xhci-plat-hcd
-XHCI_FILES := $(wildcard $(patsubst %,$(LINUX_DIR)/drivers/usb/host/%.ko,$(XHCI_MODULES)))
-XHCI_AUTOLOAD := $(patsubst $(LINUX_DIR)/drivers/usb/host/%.ko,%,$(XHCI_FILES))
+XHCI_FILES := $(wildcard $(patsubst %,$(LINUX_OBJ_DIR)/drivers/usb/host/%.ko,$(XHCI_MODULES)))
+XHCI_AUTOLOAD := $(patsubst $(LINUX_OBJ_DIR)/drivers/usb/host/%.ko,%,$(XHCI_FILES))
 
 define KernelPackage/usb3
   TITLE:=Support for USB3 controllers
@@ -1763,7 +1763,7 @@  define KernelPackage/usb-net2280
 	CONFIG_USB_PCI=y \
 	CONFIG_USB_NET2280
   DEPENDS:=@PCI_SUPPORT +kmod-usb-gadget
-  FILES:=$(LINUX_DIR)/drivers/usb/gadget/udc/net2280.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/gadget/udc/net2280.ko
   AUTOLOAD:=$(call AutoLoad,46,net2280)
   $(call AddDepends/usb)
 endef
@@ -1778,7 +1778,7 @@  define KernelPackage/usb-roles
   TITLE:=USB Role Switch Library Module
   KCONFIG:=CONFIG_USB_ROLE_SWITCH
   HIDDEN:=1
-  FILES:=$(LINUX_DIR)/drivers/usb/roles/roles.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/roles/roles.ko
   $(call AddDepends/usb)
 endef
 
@@ -1795,7 +1795,7 @@  define KernelPackage/usb-xhci-hcd
 	  CONFIG_USB_XHCI_HCD \
 	  CONFIG_USB_XHCI_HCD_DEBUGGING=n
   HIDDEN:=1
-  FILES:=$(LINUX_DIR)/drivers/usb/host/xhci-hcd.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/host/xhci-hcd.ko
   AUTOLOAD:=$(call AutoLoad,54,xhci-hcd,1)
   $(call AddDepends/usb)
 endef
@@ -1814,7 +1814,7 @@  define KernelPackage/usb-xhci-mtk
   KCONFIG:=CONFIG_USB_XHCI_MTK
   HIDDEN:=1
   FILES:= \
-	 $(LINUX_DIR)/drivers/usb/host/xhci-mtk-hcd.ko
+	 $(LINUX_OBJ_DIR)/drivers/usb/host/xhci-mtk-hcd.ko
   AUTOLOAD:=$(call AutoLoad,54,xhci-mtk-hcd,1)
   $(call AddDepends/usb)
 endef
@@ -1830,7 +1830,7 @@  define KernelPackage/usb-xhci-pci-renesas
   TITLE:=Support for additional Renesas xHCI controller with firmware
   KCONFIG:=CONFIG_USB_XHCI_PCI_RENESAS
   HIDDEN:=1
-  FILES:=$(LINUX_DIR)/drivers/usb/host/xhci-pci-renesas.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/host/xhci-pci-renesas.ko
   AUTOLOAD:=$(call AutoLoad,54,xhci-pci-renesas,1)
   $(call AddDepends/usb)
 endef
@@ -1848,7 +1848,7 @@  define KernelPackage/chaoskey
   TITLE:=Chaoskey hardware RNG support
   DEPENDS:=+kmod-random-core
   KCONFIG:=CONFIG_USB_CHAOSKEY
-  FILES:=$(LINUX_DIR)/drivers/usb/misc/chaoskey.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/misc/chaoskey.ko
   AUTOLOAD:=$(call AutoProbe,chaoskey)
   $(call AddDepends/usb)
 endef
diff --git a/package/kernel/linux/modules/video.mk b/package/kernel/linux/modules/video.mk
index 6ae2bf5104..fbecb11ce2 100644
--- a/package/kernel/linux/modules/video.mk
+++ b/package/kernel/linux/modules/video.mk
@@ -23,8 +23,8 @@  define KernelPackage/acpi-video
   HIDDEN:=1
   KCONFIG:=CONFIG_ACPI_VIDEO \
 	CONFIG_ACPI_WMI
-  FILES:=$(LINUX_DIR)/drivers/acpi/video.ko \
-	$(LINUX_DIR)/drivers/platform/x86/wmi.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/acpi/video.ko \
+	$(LINUX_OBJ_DIR)/drivers/platform/x86/wmi.ko
   AUTOLOAD:=$(call AutoProbe,wmi video)
 endef
 
@@ -47,7 +47,7 @@  define KernelPackage/backlight
 		CONFIG_BACKLIGHT_ADP8870=n \
 		CONFIG_BACKLIGHT_OT200=n \
 		CONFIG_BACKLIGHT_PM8941_WLED=n
-	FILES:=$(LINUX_DIR)/drivers/video/backlight/backlight.ko
+	FILES:=$(LINUX_OBJ_DIR)/drivers/video/backlight/backlight.ko
 	AUTOLOAD:=$(call AutoProbe,video backlight)
 endef
 
@@ -62,7 +62,7 @@  define KernelPackage/backlight-pwm
 	TITLE:=PWM Backlight support
 	DEPENDS:=+kmod-backlight
 	KCONFIG:=CONFIG_BACKLIGHT_PWM
-	FILES:=$(LINUX_DIR)/drivers/video/backlight/pwm_bl.ko
+	FILES:=$(LINUX_OBJ_DIR)/drivers/video/backlight/pwm_bl.ko
 	AUTOLOAD:=$(call AutoProbe,video pwm_bl)
 endef
 
@@ -100,8 +100,8 @@  define KernelPackage/fb
 	CONFIG_CONSOLE_TRANSLATIONS=y \
 	CONFIG_VT_CONSOLE=y \
 	CONFIG_VT_HW_CONSOLE_BINDING=y
-  FILES:=$(LINUX_DIR)/drivers/video/fbdev/core/fb.ko \
-	$(LINUX_DIR)/lib/fonts/font.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/video/fbdev/core/fb.ko \
+	$(LINUX_OBJ_DIR)/lib/fonts/font.ko
   AUTOLOAD:=$(call AutoLoad,06,fb font)
 endef
 
@@ -110,7 +110,7 @@  define KernelPackage/fb/description
 endef
 
 define KernelPackage/fb/x86
-  FILES+=$(LINUX_DIR)/arch/x86/video/fbdev.ko
+  FILES+=$(LINUX_OBJ_DIR)/arch/x86/video/fbdev.ko
   AUTOLOAD:=$(call AutoLoad,06,fbdev fb font)
 endef
 
@@ -122,7 +122,7 @@  define KernelPackage/fb-cfb-fillrect
   TITLE:=Framebuffer software rectangle filling support
   DEPENDS:=+kmod-fb
   KCONFIG:=CONFIG_FB_CFB_FILLRECT
-  FILES:=$(LINUX_DIR)/drivers/video/fbdev/core/cfbfillrect.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/video/fbdev/core/cfbfillrect.ko
   AUTOLOAD:=$(call AutoLoad,07,cfbfillrect)
 endef
 
@@ -138,7 +138,7 @@  define KernelPackage/fb-cfb-copyarea
   TITLE:=Framebuffer software copy area support
   DEPENDS:=+kmod-fb
   KCONFIG:=CONFIG_FB_CFB_COPYAREA
-  FILES:=$(LINUX_DIR)/drivers/video/fbdev/core/cfbcopyarea.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/video/fbdev/core/cfbcopyarea.ko
   AUTOLOAD:=$(call AutoLoad,07,cfbcopyarea)
 endef
 
@@ -153,7 +153,7 @@  define KernelPackage/fb-cfb-imgblt
   TITLE:=Framebuffer software image blit support
   DEPENDS:=+kmod-fb
   KCONFIG:=CONFIG_FB_CFB_IMAGEBLIT
-  FILES:=$(LINUX_DIR)/drivers/video/fbdev/core/cfbimgblt.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/video/fbdev/core/cfbimgblt.ko
   AUTOLOAD:=$(call AutoLoad,07,cfbimgblt)
 endef
 
@@ -169,7 +169,7 @@  define KernelPackage/fb-sys-fops
   TITLE:=Framebuffer software sys ops support
   DEPENDS:=+kmod-fb
   KCONFIG:=CONFIG_FB_SYS_FOPS
-  FILES:=$(LINUX_DIR)/drivers/video/fbdev/core/fb_sys_fops.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/video/fbdev/core/fb_sys_fops.ko
   AUTOLOAD:=$(call AutoLoad,07,fb_sys_fops)
 endef
 
@@ -189,9 +189,9 @@  define KernelPackage/fb-sys-ram
 	CONFIG_FB_SYS_FILLRECT \
 	CONFIG_FB_SYS_IMAGEBLIT
   FILES:= \
-	$(LINUX_DIR)/drivers/video/fbdev/core/syscopyarea.ko \
-	$(LINUX_DIR)/drivers/video/fbdev/core/sysfillrect.ko \
-	$(LINUX_DIR)/drivers/video/fbdev/core/sysimgblt.ko
+	$(LINUX_OBJ_DIR)/drivers/video/fbdev/core/syscopyarea.ko \
+	$(LINUX_OBJ_DIR)/drivers/video/fbdev/core/sysfillrect.ko \
+	$(LINUX_OBJ_DIR)/drivers/video/fbdev/core/sysimgblt.ko
   AUTOLOAD:=$(call AutoLoad,07,syscopyarea sysfillrect sysimgblt)
 endef
 
@@ -213,7 +213,7 @@  define KernelPackage/fb-tft
        CONFIG_FB_DEFERRED_IO=y \
        CONFIG_FB_TFT
   FILES:= \
-       $(LINUX_DIR)/drivers/staging/fbtft/fbtft.ko
+       $(LINUX_OBJ_DIR)/drivers/staging/fbtft/fbtft.ko
   AUTOLOAD:=$(call AutoLoad,08,fbtft)
 endef
 
@@ -229,7 +229,7 @@  define KernelPackage/fb-tft-ili9486
   TITLE:=FB driver for the ILI9486 LCD Controller
   DEPENDS:=+kmod-fb-tft
   KCONFIG:=CONFIG_FB_TFT_ILI9486
-  FILES:=$(LINUX_DIR)/drivers/staging/fbtft/fb_ili9486.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/staging/fbtft/fb_ili9486.ko
   AUTOLOAD:=$(call AutoLoad,09,fb_ili9486)
 endef
 
@@ -248,8 +248,8 @@  define KernelPackage/drm
 	+kmod-fb
   KCONFIG:=CONFIG_DRM
   FILES:= \
-	$(LINUX_DIR)/drivers/gpu/drm/drm.ko \
-	$(LINUX_DIR)/drivers/gpu/drm/drm_panel_orientation_quirks.ko
+	$(LINUX_OBJ_DIR)/drivers/gpu/drm/drm.ko \
+	$(LINUX_OBJ_DIR)/drivers/gpu/drm/drm_panel_orientation_quirks.ko
   AUTOLOAD:=$(call AutoLoad,05,drm)
 endef
 
@@ -264,7 +264,7 @@  define KernelPackage/drm-buddy
   TITLE:=A page based buddy allocator
   DEPENDS:=@DISPLAY_SUPPORT +kmod-drm @LINUX_6_1
   KCONFIG:=CONFIG_DRM_BUDDY
-  FILES:= $(LINUX_DIR)/drivers/gpu/drm/drm_buddy.ko
+  FILES:= $(LINUX_OBJ_DIR)/drivers/gpu/drm/drm_buddy.ko
   AUTOLOAD:=$(call AutoProbe,drm_buddy)
 endef
 
@@ -279,7 +279,7 @@  define KernelPackage/drm-display-helper
   TITLE:=DRM helpers for display adapters drivers
   DEPENDS:=@DISPLAY_SUPPORT +kmod-drm-kms-helper @LINUX_6_1
   KCONFIG:=CONFIG_DRM_DISPLAY_HELPER
-  FILES:=$(LINUX_DIR)/drivers/gpu/drm/display/drm_display_helper.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/gpu/drm/display/drm_display_helper.ko
   AUTOLOAD:=$(call AutoProbe,drm_display_helper)
 endef
 
@@ -294,7 +294,7 @@  define KernelPackage/drm-ttm
   TITLE:=GPU memory management subsystem
   DEPENDS:=@DISPLAY_SUPPORT +kmod-drm
   KCONFIG:=CONFIG_DRM_TTM
-  FILES:=$(LINUX_DIR)/drivers/gpu/drm/ttm/ttm.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/gpu/drm/ttm/ttm.ko
   AUTOLOAD:=$(call AutoProbe,ttm)
 endef
 
@@ -312,7 +312,7 @@  define KernelPackage/drm-ttm-helper
   HIDDEN:=1
   DEPENDS:=@DISPLAY_SUPPORT +kmod-drm-ttm
   KCONFIG:=CONFIG_DRM_TTM_HELPER
-  FILES:=$(LINUX_DIR)/drivers/gpu/drm/drm_ttm_helper.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/gpu/drm/drm_ttm_helper.ko
   AUTOLOAD:=$(call AutoProbe,drm_ttm_helper)
 endef
 
@@ -327,7 +327,7 @@  define KernelPackage/drm-kms-helper
   KCONFIG:= \
     CONFIG_DRM_KMS_HELPER \
     CONFIG_DRM_KMS_FB_HELPER=y
-  FILES:=$(LINUX_DIR)/drivers/gpu/drm/drm_kms_helper.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/gpu/drm/drm_kms_helper.ko
   AUTOLOAD:=$(call AutoProbe,drm_kms_helper)
 endef
 
@@ -349,8 +349,8 @@  define KernelPackage/drm-amdgpu
 	CONFIG_DRM_AMDGPU_CIK=y \
 	CONFIG_DRM_AMD_DC=y \
 	CONFIG_DEBUG_KERNEL_DC=n
-  FILES:=$(LINUX_DIR)/drivers/gpu/drm/amd/amdgpu/amdgpu.ko \
-	$(LINUX_DIR)/drivers/gpu/drm/scheduler/gpu-sched.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/gpu/drm/amd/amdgpu/amdgpu.ko \
+	$(LINUX_OBJ_DIR)/drivers/gpu/drm/scheduler/gpu-sched.ko
   AUTOLOAD:=$(call AutoProbe,amdgpu)
 endef
 
@@ -380,8 +380,8 @@  define KernelPackage/drm-imx
 	CONFIG_DRM_IMX_LDB=n \
 	CONFIG_DRM_IMX_HDMI=n
   FILES:= \
-	$(LINUX_DIR)/drivers/gpu/drm/imx/imxdrm.ko \
-	$(LINUX_DIR)/drivers/gpu/ipu-v3/imx-ipu-v3.ko
+	$(LINUX_OBJ_DIR)/drivers/gpu/drm/imx/imxdrm.ko \
+	$(LINUX_OBJ_DIR)/drivers/gpu/ipu-v3/imx-ipu-v3.ko
   AUTOLOAD:=$(call AutoLoad,08,imxdrm imx-ipu-v3 imx-ipuv3-crtc)
 endef
 
@@ -399,9 +399,9 @@  define KernelPackage/drm-imx-hdmi
 	CONFIG_DRM_DW_HDMI_AHB_AUDIO \
 	CONFIG_DRM_DW_HDMI_I2S_AUDIO
   FILES:= \
-	$(LINUX_DIR)/drivers/gpu/drm/bridge/synopsys/dw-hdmi.ko \
-	$(LINUX_DIR)/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.ko \
-	$(LINUX_DIR)/drivers/gpu/drm/imx/dw_hdmi-imx.ko
+	$(LINUX_OBJ_DIR)/drivers/gpu/drm/bridge/synopsys/dw-hdmi.ko \
+	$(LINUX_OBJ_DIR)/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.ko \
+	$(LINUX_OBJ_DIR)/drivers/gpu/drm/imx/dw_hdmi-imx.ko
   AUTOLOAD:=$(call AutoLoad,08,dw-hdmi dw-hdmi-ahb-audio.ko dw_hdmi-imx)
 endef
 
@@ -425,9 +425,9 @@  define KernelPackage/drm-imx-ldb
 	CONFIG_DRM_PANEL_LVDS=n \
 	CONFIG_DRM_PANEL_S6E8AA0=n \
 	CONFIG_DRM_PANEL_SITRONIX_ST7789V=n
-  FILES:=$(LINUX_DIR)/drivers/gpu/drm/imx/imx-ldb.ko \
-	$(LINUX_DIR)/drivers/gpu/drm/panel/panel-simple.ko \
-	$(LINUX_DIR)/drivers/gpu/drm/drm_dp_aux_bus.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/gpu/drm/imx/imx-ldb.ko \
+	$(LINUX_OBJ_DIR)/drivers/gpu/drm/panel/panel-simple.ko \
+	$(LINUX_OBJ_DIR)/drivers/gpu/drm/drm_dp_aux_bus.ko
   AUTOLOAD:=$(call AutoLoad,08,imx-ldb)
 endef
 
@@ -444,7 +444,7 @@  define KernelPackage/drm-radeon
 	+kmod-drm-ttm +kmod-drm-ttm-helper +kmod-i2c-algo-bit +radeon-firmware \
 	+LINUX_6_1:kmod-drm-display-helper +LINUX_6_1:kmod-acpi-video
   KCONFIG:=CONFIG_DRM_RADEON
-  FILES:=$(LINUX_DIR)/drivers/gpu/drm/radeon/radeon.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/gpu/drm/radeon/radeon.ko
   AUTOLOAD:=$(call AutoProbe,radeon)
 endef
 
@@ -468,7 +468,7 @@  define KernelPackage/video-core
 	CONFIG_VIDEO_DEV \
 	CONFIG_V4L_PLATFORM_DRIVERS=y
   FILES:= \
-	$(LINUX_DIR)/drivers/media/$(V4L2_DIR)/videodev.ko
+	$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_DIR)/videodev.ko
   AUTOLOAD:=$(call AutoLoad,60, videodev v4l2-common)
 endef
 
@@ -503,10 +503,10 @@  define KernelPackage/video-videobuf2
 	CONFIG_VIDEOBUF2_MEMOPS \
 	CONFIG_VIDEOBUF2_VMALLOC
   FILES:= \
-	$(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-common.ko \
-	$(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-v4l2.ko \
-	$(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-memops.ko \
-	$(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-vmalloc.ko
+	$(LINUX_OBJ_DIR)/drivers/media/common/videobuf2/videobuf2-common.ko \
+	$(LINUX_OBJ_DIR)/drivers/media/common/videobuf2/videobuf2-v4l2.ko \
+	$(LINUX_OBJ_DIR)/drivers/media/common/videobuf2/videobuf2-memops.ko \
+	$(LINUX_OBJ_DIR)/drivers/media/common/videobuf2/videobuf2-vmalloc.ko
   AUTOLOAD:=$(call AutoLoad,65,videobuf2-core videobuf-v4l2 videobuf2-memops videobuf2-vmalloc)
   $(call AddDepends/video)
 endef
@@ -522,7 +522,7 @@  define KernelPackage/video-cpia2
   TITLE:=CPIA2 video driver
   DEPENDS:=@USB_SUPPORT +kmod-usb-core
   KCONFIG:=CONFIG_VIDEO_CPIA2
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/cpia2/cpia2.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/cpia2/cpia2.ko
   AUTOLOAD:=$(call AutoProbe,cpia2)
   $(call AddDepends/camera)
 endef
@@ -540,7 +540,7 @@  define KernelPackage/video-pwc
   KCONFIG:= \
 	CONFIG_USB_PWC \
 	CONFIG_USB_PWC_DEBUG=n
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/pwc/pwc.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/pwc/pwc.ko
   AUTOLOAD:=$(call AutoProbe,pwc)
   $(call AddDepends/camera)
 endef
@@ -556,7 +556,7 @@  define KernelPackage/video-uvc
   TITLE:=USB Video Class (UVC) support
   DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-video-videobuf2 +kmod-input-core
   KCONFIG:= CONFIG_USB_VIDEO_CLASS
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/uvc/uvcvideo.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/uvc/uvcvideo.ko
   AUTOLOAD:=$(call AutoProbe,uvcvideo)
   $(call AddDepends/camera)
 endef
@@ -573,7 +573,7 @@  define KernelPackage/video-gspca-core
   TITLE:=GSPCA webcam core support framework
   DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-input-core +kmod-video-videobuf2
   KCONFIG:=CONFIG_USB_GSPCA
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_main.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_main.ko
   AUTOLOAD:=$(call AutoProbe,gspca_main)
   $(call AddDepends/camera)
 endef
@@ -595,7 +595,7 @@  endef
 define KernelPackage/video-gspca-conex
   TITLE:=conex webcam support
   KCONFIG:=CONFIG_USB_GSPCA_CONEX
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_conex.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_conex.ko
   AUTOLOAD:=$(call AutoProbe,gspca_conex)
   $(call AddDepends/camera-gspca)
 endef
@@ -610,7 +610,7 @@  $(eval $(call KernelPackage,video-gspca-conex))
 define KernelPackage/video-gspca-etoms
   TITLE:=etoms webcam support
   KCONFIG:=CONFIG_USB_GSPCA_ETOMS
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_etoms.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_etoms.ko
   AUTOLOAD:=$(call AutoProbe,gspca_etoms)
   $(call AddDepends/camera-gspca)
 endef
@@ -625,7 +625,7 @@  $(eval $(call KernelPackage,video-gspca-etoms))
 define KernelPackage/video-gspca-finepix
   TITLE:=finepix webcam support
   KCONFIG:=CONFIG_USB_GSPCA_FINEPIX
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_finepix.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_finepix.ko
   AUTOLOAD:=$(call AutoProbe,gspca_finepix)
   $(call AddDepends/camera-gspca)
 endef
@@ -640,7 +640,7 @@  $(eval $(call KernelPackage,video-gspca-finepix))
 define KernelPackage/video-gspca-mars
   TITLE:=mars webcam support
   KCONFIG:=CONFIG_USB_GSPCA_MARS
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_mars.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_mars.ko
   AUTOLOAD:=$(call AutoProbe,gspca_mars)
   $(call AddDepends/camera-gspca)
 endef
@@ -655,7 +655,7 @@  $(eval $(call KernelPackage,video-gspca-mars))
 define KernelPackage/video-gspca-mr97310a
   TITLE:=mr97310a webcam support
   KCONFIG:=CONFIG_USB_GSPCA_MR97310A
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_mr97310a.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_mr97310a.ko
   AUTOLOAD:=$(call AutoProbe,gspca_mr97310a)
   $(call AddDepends/camera-gspca)
 endef
@@ -670,7 +670,7 @@  $(eval $(call KernelPackage,video-gspca-mr97310a))
 define KernelPackage/video-gspca-ov519
   TITLE:=ov519 webcam support
   KCONFIG:=CONFIG_USB_GSPCA_OV519
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_ov519.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_ov519.ko
   AUTOLOAD:=$(call AutoProbe,gspca_ov519)
   $(call AddDepends/camera-gspca)
 endef
@@ -685,7 +685,7 @@  $(eval $(call KernelPackage,video-gspca-ov519))
 define KernelPackage/video-gspca-ov534
   TITLE:=ov534 webcam support
   KCONFIG:=CONFIG_USB_GSPCA_OV534
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_ov534.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_ov534.ko
   AUTOLOAD:=$(call AutoProbe,gspca_ov534)
   $(call AddDepends/camera-gspca)
 endef
@@ -700,7 +700,7 @@  $(eval $(call KernelPackage,video-gspca-ov534))
 define KernelPackage/video-gspca-ov534-9
   TITLE:=ov534-9 webcam support
   KCONFIG:=CONFIG_USB_GSPCA_OV534_9
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_ov534_9.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_ov534_9.ko
   AUTOLOAD:=$(call AutoProbe,gspca_ov534_9)
   $(call AddDepends/camera-gspca)
 endef
@@ -715,7 +715,7 @@  $(eval $(call KernelPackage,video-gspca-ov534-9))
 define KernelPackage/video-gspca-pac207
   TITLE:=pac207 webcam support
   KCONFIG:=CONFIG_USB_GSPCA_PAC207
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_pac207.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_pac207.ko
   AUTOLOAD:=$(call AutoProbe,gspca_pac207)
   $(call AddDepends/camera-gspca)
 endef
@@ -730,7 +730,7 @@  $(eval $(call KernelPackage,video-gspca-pac207))
 define KernelPackage/video-gspca-pac7311
   TITLE:=pac7311 webcam support
   KCONFIG:=CONFIG_USB_GSPCA_PAC7311
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_pac7311.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_pac7311.ko
   AUTOLOAD:=$(call AutoProbe,gspca_pac7311)
   $(call AddDepends/camera-gspca)
 endef
@@ -745,7 +745,7 @@  $(eval $(call KernelPackage,video-gspca-pac7311))
 define KernelPackage/video-gspca-se401
   TITLE:=se401 webcam support
   KCONFIG:=CONFIG_USB_GSPCA_SE401
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_se401.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_se401.ko
   AUTOLOAD:=$(call AutoProbe,gspca_se401)
   $(call AddDepends/camera-gspca)
 endef
@@ -760,7 +760,7 @@  $(eval $(call KernelPackage,video-gspca-se401))
 define KernelPackage/video-gspca-sn9c20x
   TITLE:=sn9c20x webcam support
   KCONFIG:=CONFIG_USB_GSPCA_SN9C20X
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sn9c20x.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sn9c20x.ko
   AUTOLOAD:=$(call AutoProbe,gspca_sn9c20x)
   $(call AddDepends/camera-gspca)
 endef
@@ -775,7 +775,7 @@  $(eval $(call KernelPackage,video-gspca-sn9c20x))
 define KernelPackage/video-gspca-sonixb
   TITLE:=sonixb webcam support
   KCONFIG:=CONFIG_USB_GSPCA_SONIXB
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sonixb.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sonixb.ko
   AUTOLOAD:=$(call AutoProbe,gspca_sonixb)
   $(call AddDepends/camera-gspca)
 endef
@@ -790,7 +790,7 @@  $(eval $(call KernelPackage,video-gspca-sonixb))
 define KernelPackage/video-gspca-sonixj
   TITLE:=sonixj webcam support
   KCONFIG:=CONFIG_USB_GSPCA_SONIXJ
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sonixj.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sonixj.ko
   AUTOLOAD:=$(call AutoProbe,gspca_sonixj)
   $(call AddDepends/camera-gspca)
 endef
@@ -805,7 +805,7 @@  $(eval $(call KernelPackage,video-gspca-sonixj))
 define KernelPackage/video-gspca-spca500
   TITLE:=spca500 webcam support
   KCONFIG:=CONFIG_USB_GSPCA_SPCA500
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca500.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca500.ko
   AUTOLOAD:=$(call AutoProbe,gspca_spca500)
   $(call AddDepends/camera-gspca)
 endef
@@ -820,7 +820,7 @@  $(eval $(call KernelPackage,video-gspca-spca500))
 define KernelPackage/video-gspca-spca501
   TITLE:=spca501 webcam support
   KCONFIG:=CONFIG_USB_GSPCA_SPCA501
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca501.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca501.ko
   AUTOLOAD:=$(call AutoProbe,gspca_spca501)
   $(call AddDepends/camera-gspca)
 endef
@@ -835,7 +835,7 @@  $(eval $(call KernelPackage,video-gspca-spca501))
 define KernelPackage/video-gspca-spca505
   TITLE:=spca505 webcam support
   KCONFIG:=CONFIG_USB_GSPCA_SPCA505
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca505.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca505.ko
   AUTOLOAD:=$(call AutoProbe,gspca_spca505)
   $(call AddDepends/camera-gspca)
 endef
@@ -850,7 +850,7 @@  $(eval $(call KernelPackage,video-gspca-spca505))
 define KernelPackage/video-gspca-spca506
   TITLE:=spca506 webcam support
   KCONFIG:=CONFIG_USB_GSPCA_SPCA506
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca506.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca506.ko
   AUTOLOAD:=$(call AutoProbe,gspca_spca506)
   $(call AddDepends/camera-gspca)
 endef
@@ -865,7 +865,7 @@  $(eval $(call KernelPackage,video-gspca-spca506))
 define KernelPackage/video-gspca-spca508
   TITLE:=spca508 webcam support
   KCONFIG:=CONFIG_USB_GSPCA_SPCA508
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca508.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca508.ko
   AUTOLOAD:=$(call AutoProbe,gspca_spca508)
   $(call AddDepends/camera-gspca)
 endef
@@ -880,7 +880,7 @@  $(eval $(call KernelPackage,video-gspca-spca508))
 define KernelPackage/video-gspca-spca561
   TITLE:=spca561 webcam support
   KCONFIG:=CONFIG_USB_GSPCA_SPCA561
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca561.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_spca561.ko
   AUTOLOAD:=$(call AutoProbe,gspca_spca561)
   $(call AddDepends/camera-gspca)
 endef
@@ -895,7 +895,7 @@  $(eval $(call KernelPackage,video-gspca-spca561))
 define KernelPackage/video-gspca-sq905
   TITLE:=sq905 webcam support
   KCONFIG:=CONFIG_USB_GSPCA_SQ905
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sq905.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sq905.ko
   AUTOLOAD:=$(call AutoProbe,gspca_sq905)
   $(call AddDepends/camera-gspca)
 endef
@@ -910,7 +910,7 @@  $(eval $(call KernelPackage,video-gspca-sq905))
 define KernelPackage/video-gspca-sq905c
   TITLE:=sq905c webcam support
   KCONFIG:=CONFIG_USB_GSPCA_SQ905C
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sq905c.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sq905c.ko
   AUTOLOAD:=$(call AutoProbe,gspca_sq905c)
   $(call AddDepends/camera-gspca)
 endef
@@ -925,7 +925,7 @@  $(eval $(call KernelPackage,video-gspca-sq905c))
 define KernelPackage/video-gspca-sq930x
   TITLE:=sq930x webcam support
   KCONFIG:=CONFIG_USB_GSPCA_SQ930X
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sq930x.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sq930x.ko
   AUTOLOAD:=$(call AutoProbe,gspca_sq930x)
   $(call AddDepends/camera-gspca)
 endef
@@ -940,7 +940,7 @@  $(eval $(call KernelPackage,video-gspca-sq930x))
 define KernelPackage/video-gspca-stk014
   TITLE:=stk014 webcam support
   KCONFIG:=CONFIG_USB_GSPCA_STK014
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_stk014.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_stk014.ko
   AUTOLOAD:=$(call AutoProbe,gspca_stk014)
   $(call AddDepends/camera-gspca)
 endef
@@ -955,7 +955,7 @@  $(eval $(call KernelPackage,video-gspca-stk014))
 define KernelPackage/video-gspca-sunplus
   TITLE:=sunplus webcam support
   KCONFIG:=CONFIG_USB_GSPCA_SUNPLUS
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sunplus.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sunplus.ko
   AUTOLOAD:=$(call AutoProbe,gspca_sunplus)
   $(call AddDepends/camera-gspca)
 endef
@@ -970,7 +970,7 @@  $(eval $(call KernelPackage,video-gspca-sunplus))
 define KernelPackage/video-gspca-t613
   TITLE:=t613 webcam support
   KCONFIG:=CONFIG_USB_GSPCA_T613
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_t613.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_t613.ko
   AUTOLOAD:=$(call AutoProbe,gspca_t613)
   $(call AddDepends/camera-gspca)
 endef
@@ -985,7 +985,7 @@  $(eval $(call KernelPackage,video-gspca-t613))
 define KernelPackage/video-gspca-tv8532
   TITLE:=tv8532 webcam support
   KCONFIG:=CONFIG_USB_GSPCA_TV8532
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_tv8532.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_tv8532.ko
   AUTOLOAD:=$(call AutoProbe,gspca_tv8532)
   $(call AddDepends/camera-gspca)
 endef
@@ -1000,7 +1000,7 @@  $(eval $(call KernelPackage,video-gspca-tv8532))
 define KernelPackage/video-gspca-vc032x
   TITLE:=vc032x webcam support
   KCONFIG:=CONFIG_USB_GSPCA_VC032X
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_vc032x.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_vc032x.ko
   AUTOLOAD:=$(call AutoProbe,gspca_vc032x)
   $(call AddDepends/camera-gspca)
 endef
@@ -1015,7 +1015,7 @@  $(eval $(call KernelPackage,video-gspca-vc032x))
 define KernelPackage/video-gspca-zc3xx
   TITLE:=zc3xx webcam support
   KCONFIG:=CONFIG_USB_GSPCA_ZC3XX
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_zc3xx.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_zc3xx.ko
   AUTOLOAD:=$(call AutoProbe,gspca_zc3xx)
   $(call AddDepends/camera-gspca)
 endef
@@ -1030,7 +1030,7 @@  $(eval $(call KernelPackage,video-gspca-zc3xx))
 define KernelPackage/video-gspca-m5602
   TITLE:=m5602 webcam support
   KCONFIG:=CONFIG_USB_M5602
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/m5602/gspca_m5602.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/m5602/gspca_m5602.ko
   AUTOLOAD:=$(call AutoProbe,gspca_m5602)
   $(call AddDepends/camera-gspca)
 endef
@@ -1045,7 +1045,7 @@  $(eval $(call KernelPackage,video-gspca-m5602))
 define KernelPackage/video-gspca-stv06xx
   TITLE:=stv06xx webcam support
   KCONFIG:=CONFIG_USB_STV06XX
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/stv06xx/gspca_stv06xx.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/stv06xx/gspca_stv06xx.ko
   AUTOLOAD:=$(call AutoProbe,gspca_stv06xx)
   $(call AddDepends/camera-gspca)
 endef
@@ -1060,7 +1060,7 @@  $(eval $(call KernelPackage,video-gspca-stv06xx))
 define KernelPackage/video-gspca-gl860
   TITLE:=gl860 webcam support
   KCONFIG:=CONFIG_USB_GL860
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gl860/gspca_gl860.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gl860/gspca_gl860.ko
   AUTOLOAD:=$(call AutoProbe,gspca_gl860)
   $(call AddDepends/camera-gspca)
 endef
@@ -1075,7 +1075,7 @@  $(eval $(call KernelPackage,video-gspca-gl860))
 define KernelPackage/video-gspca-jeilinj
   TITLE:=jeilinj webcam support
   KCONFIG:=CONFIG_USB_GSPCA_JEILINJ
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_jeilinj.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_jeilinj.ko
   AUTOLOAD:=$(call AutoProbe,gspca_jeilinj)
   $(call AddDepends/camera-gspca)
 endef
@@ -1090,7 +1090,7 @@  $(eval $(call KernelPackage,video-gspca-jeilinj))
 define KernelPackage/video-gspca-konica
   TITLE:=konica webcam support
   KCONFIG:=CONFIG_USB_GSPCA_KONICA
-  FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_konica.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_konica.ko
   AUTOLOAD:=$(call AutoProbe,gspca_konica)
   $(call AddDepends/camera-gspca)
 endef
@@ -1111,7 +1111,7 @@  define KernelPackage/video-mem2mem
   HIDDEN:=1
   DEPENDS:=+kmod-video-videobuf2
   KCONFIG:= CONFIG_V4L_MEM2MEM_DRIVERS=y
-  FILES:= $(LINUX_DIR)/drivers/media/$(V4L2_DIR)/v4l2-mem2mem.ko
+  FILES:= $(LINUX_OBJ_DIR)/drivers/media/$(V4L2_DIR)/v4l2-mem2mem.ko
   AUTOLOAD:=$(call AutoLoad,66,v4l2-mem2mem)
   $(call AddDepends/video)
 endef
@@ -1130,7 +1130,7 @@  define KernelPackage/video-dma
   KCONFIG:= \
 	CONFIG_VIDEOBUF2_DMA_CONTIG \
 	CONFIG_VIDEOBUF2_DMA_SG
-  FILES:= $(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-dma-*.ko
+  FILES:= $(LINUX_OBJ_DIR)/drivers/media/common/videobuf2/videobuf2-dma-*.ko
   AUTOLOAD:=$(call AutoLoad,66,videobuf2-dma-contig videobuf2-dma-sg)
   $(call AddDepends/video)
 endef
@@ -1148,9 +1148,9 @@  define KernelPackage/video-coda
   	CONFIG_VIDEO_CODA \
   	CONFIG_VIDEO_IMX_VDOA
   FILES:= \
-  	$(LINUX_DIR)/drivers/media/$(V4L2_MEM2MEM_DIR)/coda/coda-vpu.ko \
-  	$(LINUX_DIR)/drivers/media/$(V4L2_MEM2MEM_DIR)/coda/imx-vdoa.ko \
- 	$(LINUX_DIR)/drivers/media/$(V4L2_DIR)/v4l2-jpeg.ko
+  	$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_MEM2MEM_DIR)/coda/coda-vpu.ko \
+  	$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_MEM2MEM_DIR)/coda/imx-vdoa.ko \
+ 	$(LINUX_OBJ_DIR)/drivers/media/$(V4L2_DIR)/v4l2-jpeg.ko
   AUTOLOAD:=$(call AutoProbe,coda-vpu imx-vdoa v4l2-jpeg)
   $(call AddDepends/video)
 endef
@@ -1165,7 +1165,7 @@  define KernelPackage/video-pxp
   TITLE:=i.MX PXP support
   DEPENDS:=@TARGET_imx +kmod-video-mem2mem +kmod-video-dma
   KCONFIG:= CONFIG_VIDEO_IMX_PXP
-  FILES:= $(LINUX_DIR)/drivers/media/$(V4L2_MEM2MEM_DIR)/imx-pxp.ko
+  FILES:= $(LINUX_OBJ_DIR)/drivers/media/$(V4L2_MEM2MEM_DIR)/imx-pxp.ko
   AUTOLOAD:=$(call AutoProbe,imx-pxp)
   $(call AddDepends/video)
 endef
@@ -1182,7 +1182,7 @@  define KernelPackage/video-tw686x
   TITLE:=TW686x support
   DEPENDS:=@PCIE_SUPPORT +kmod-video-dma +kmod-sound-core
   KCONFIG:= CONFIG_VIDEO_TW686X
-  FILES:= $(LINUX_DIR)/drivers/media/pci/tw686x/tw686x.ko
+  FILES:= $(LINUX_OBJ_DIR)/drivers/media/pci/tw686x/tw686x.ko
   AUTOLOAD:=$(call AutoProbe,tw686x)
   MODPARAMS.tw686x:=dma_mode=contig
   $(call AddDepends/framegrabber)
diff --git a/package/kernel/linux/modules/virt.mk b/package/kernel/linux/modules/virt.mk
index 82fb1af2de..4ad941d448 100644
--- a/package/kernel/linux/modules/virt.mk
+++ b/package/kernel/linux/modules/virt.mk
@@ -9,7 +9,7 @@  define KernelPackage/irqbypass
   TITLE:=IRQ offload/bypass manager
   KCONFIG:=CONFIG_IRQ_BYPASS_MANAGER
   HIDDEN:=1
-  FILES:= $(LINUX_DIR)/virt/lib/irqbypass.ko
+  FILES:= $(LINUX_OBJ_DIR)/virt/lib/irqbypass.ko
   AUTOLOAD:=$(call AutoProbe,irqbypass.ko)
 endef
 $(eval $(call KernelPackage,irqbypass))
@@ -23,7 +23,7 @@  define KernelPackage/kvm-x86
 	  CONFIG_KVM \
 	  CONFIG_KVM_MMU_AUDIT=n \
 	  CONFIG_VIRTUALIZATION=y
-  FILES:= $(LINUX_DIR)/arch/$(LINUX_KARCH)/kvm/kvm.ko
+  FILES:= $(LINUX_OBJ_DIR)/arch/$(LINUX_KARCH)/kvm/kvm.ko
   AUTOLOAD:=$(call AutoProbe,kvm.ko)
 endef
 
@@ -45,7 +45,7 @@  define KernelPackage/kvm-intel
   TITLE:=KVM for Intel processors support
   DEPENDS:=+kmod-kvm-x86
   KCONFIG:=CONFIG_KVM_INTEL
-  FILES:= $(LINUX_DIR)/arch/$(LINUX_KARCH)/kvm/kvm-intel.ko
+  FILES:= $(LINUX_OBJ_DIR)/arch/$(LINUX_KARCH)/kvm/kvm-intel.ko
   AUTOLOAD:=$(call AutoProbe,kvm-intel.ko)
 endef
 
@@ -62,7 +62,7 @@  define KernelPackage/kvm-amd
   TITLE:=KVM for AMD processors support
   DEPENDS:=+kmod-kvm-x86
   KCONFIG:=CONFIG_KVM_AMD
-  FILES:= $(LINUX_DIR)/arch/$(LINUX_KARCH)/kvm/kvm-amd.ko
+  FILES:= $(LINUX_OBJ_DIR)/arch/$(LINUX_KARCH)/kvm/kvm-amd.ko
   AUTOLOAD:=$(call AutoProbe,kvm-amd.ko)
 endef
 
@@ -83,9 +83,9 @@  define KernelPackage/vfio
 	CONFIG_VFIO_NOIOMMU=n \
 	CONFIG_VFIO_MDEV=n
   FILES:= \
-	$(LINUX_DIR)/drivers/vfio/vfio.ko \
-	$(LINUX_DIR)/drivers/vfio/vfio_virqfd.ko \
-	$(LINUX_DIR)/drivers/vfio/vfio_iommu_type1.ko
+	$(LINUX_OBJ_DIR)/drivers/vfio/vfio.ko \
+	$(LINUX_OBJ_DIR)/drivers/vfio/vfio_virqfd.ko \
+	$(LINUX_OBJ_DIR)/drivers/vfio/vfio_iommu_type1.ko
   AUTOLOAD:=$(call AutoProbe,vfio vfio_iommu_type1 vfio_virqfd)
 endef
 
@@ -104,8 +104,8 @@  define KernelPackage/vfio-pci
 	CONFIG_VFIO_PCI \
 	CONFIG_VFIO_PCI_IGD=n
   FILES:= \
-	$(LINUX_DIR)/drivers/vfio/pci/vfio-pci-core.ko \
-	$(LINUX_DIR)/drivers/vfio/pci/vfio-pci.ko
+	$(LINUX_OBJ_DIR)/drivers/vfio/pci/vfio-pci-core.ko \
+	$(LINUX_OBJ_DIR)/drivers/vfio/pci/vfio-pci.ko
   AUTOLOAD:=$(call AutoProbe,vfio-pci)
 endef
 
@@ -121,8 +121,8 @@  define KernelPackage/vhost
   SUBMENU:=Virtualization
   TITLE:=Host kernel accelerator for virtio (base)
   KCONFIG:=CONFIG_VHOST
-  FILES:=$(LINUX_DIR)/drivers/vhost/vhost.ko \
-    $(LINUX_DIR)/drivers/vhost/vhost_iotlb.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/vhost/vhost.ko \
+    $(LINUX_OBJ_DIR)/drivers/vhost/vhost_iotlb.ko
   AUTOLOAD:=$(call AutoProbe,vhost vhost_iotlb)
 endef
 
@@ -134,7 +134,7 @@  define KernelPackage/vhost-net
   TITLE:=Host kernel accelerator for virtio-net
   DEPENDS:=+kmod-tun +kmod-vhost
   KCONFIG:=CONFIG_VHOST_NET
-  FILES:=$(LINUX_DIR)/drivers/vhost/vhost_net.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/vhost/vhost_net.ko
   AUTOLOAD:=$(call AutoProbe,vhost_net)
 endef
 
diff --git a/package/kernel/linux/modules/w1.mk b/package/kernel/linux/modules/w1.mk
index 9cba28da11..e6b5263e2c 100644
--- a/package/kernel/linux/modules/w1.mk
+++ b/package/kernel/linux/modules/w1.mk
@@ -13,7 +13,7 @@  define KernelPackage/w1
   SUBMENU:=$(W1_MENU)
   TITLE:=Dallas's 1-wire support
   KCONFIG:=CONFIG_W1
-  FILES:=$(LINUX_DIR)/drivers/w1/wire.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/w1/wire.ko
   DEPENDS:=+kmod-hwmon-core
 endef
 
diff --git a/package/kernel/linux/modules/wpan.mk b/package/kernel/linux/modules/wpan.mk
index dab8a0cb71..70a85e2845 100644
--- a/package/kernel/linux/modules/wpan.mk
+++ b/package/kernel/linux/modules/wpan.mk
@@ -14,8 +14,8 @@  define KernelPackage/ieee802154
 	CONFIG_IEEE802154_SOCKET=y \
 	CONFIG_IEEE802154_NL802154_EXPERIMENTAL=n
   FILES:= \
-	$(LINUX_DIR)/net/ieee802154/ieee802154.ko \
-	$(LINUX_DIR)/net/ieee802154/ieee802154_socket.ko
+	$(LINUX_OBJ_DIR)/net/ieee802154/ieee802154.ko \
+	$(LINUX_OBJ_DIR)/net/ieee802154/ieee802154_socket.ko
   AUTOLOAD:=$(call AutoLoad,90,ieee802154 ieee802154_socket)
 endef
 
@@ -36,7 +36,7 @@  define KernelPackage/mac802154
   KCONFIG:= \
 	CONFIG_MAC802154 \
 	CONFIG_IEEE802154_DRIVERS=y
-  FILES:=$(LINUX_DIR)/net/mac802154/mac802154.ko
+  FILES:=$(LINUX_OBJ_DIR)/net/mac802154/mac802154.ko
   AUTOLOAD:=$(call AutoLoad,91,mac802154)
 endef
 
@@ -57,7 +57,7 @@  define KernelPackage/fakelb
   TITLE:=Fake LR-WPAN driver
   DEPENDS:=+kmod-mac802154
   KCONFIG:=CONFIG_IEEE802154_FAKELB
-  FILES:=$(LINUX_DIR)/drivers/net/ieee802154/fakelb.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ieee802154/fakelb.ko
   AUTOLOAD:=$(call AutoLoad,92,fakelb)
 endef
 
@@ -73,7 +73,7 @@  define KernelPackage/atusb
   TITLE:=ATUSB transceiver driver
   DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-mac802154
   KCONFIG:=CONFIG_IEEE802154_ATUSB
-  FILES:=$(LINUX_DIR)/drivers/net/ieee802154/atusb.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ieee802154/atusb.ko
   AUTOLOAD:=$(call AutoProbe,atusb)
 endef
 
@@ -87,7 +87,7 @@  define KernelPackage/at86rf230
 	CONFIG_IEEE802154_AT86RF230_DEBUGFS=n \
 	CONFIG_SPI=y \
 	CONFIG_SPI_MASTER=y
-  FILES:=$(LINUX_DIR)/drivers/net/ieee802154/at86rf230.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ieee802154/at86rf230.ko
   AUTOLOAD:=$(call AutoProbe,at86rf230)
 endef
 
@@ -100,7 +100,7 @@  define KernelPackage/mrf24j40
   KCONFIG:=CONFIG_IEEE802154_MRF24J40 \
 	CONFIG_SPI=y \
 	CONFIG_SPI_MASTER=y
-  FILES:=$(LINUX_DIR)/drivers/net/ieee802154/mrf24j40.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ieee802154/mrf24j40.ko
   AUTOLOAD:=$(call AutoProbe,mrf24j40)
 endef
 
@@ -113,7 +113,7 @@  define KernelPackage/cc2520
   KCONFIG:=CONFIG_IEEE802154_CC2520 \
 	CONFIG_SPI=y \
 	CONFIG_SPI_MASTER=y
-  FILES:=$(LINUX_DIR)/drivers/net/ieee802154/cc2520.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ieee802154/cc2520.ko
   AUTOLOAD:=$(call AutoProbe,cc2520)
 endef
 
@@ -128,7 +128,7 @@  define KernelPackage/ca8210
 	CONFIG_SPI=y \
 	CONFIG_SPI_MASTER=y \
 	CONFIG_IEEE802154_CA8210_DEBUGFS=n
-  FILES:=$(LINUX_DIR)/drivers/net/ieee802154/ca8210.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ieee802154/ca8210.ko
   AUTOLOAD:=$(call AutoProbe,ca8210)
 endef
 
@@ -141,7 +141,7 @@  define KernelPackage/ieee802154-6lowpan
   DEPENDS:=+kmod-6lowpan +kmod-ieee802154
   KCONFIG:=CONFIG_IEEE802154_6LOWPAN
   FILES:= \
-	$(LINUX_DIR)/net/ieee802154/6lowpan/ieee802154_6lowpan.ko
+	$(LINUX_OBJ_DIR)/net/ieee802154/6lowpan/ieee802154_6lowpan.ko
   AUTOLOAD:=$(call AutoLoad,91,ieee802154_6lowpan)
 endef
 
diff --git a/target/linux/apm821xx/modules.mk b/target/linux/apm821xx/modules.mk
index 1abb12a483..b9efff297d 100644
--- a/target/linux/apm821xx/modules.mk
+++ b/target/linux/apm821xx/modules.mk
@@ -1,7 +1,7 @@ 
 define KernelPackage/ata-dwc
   TITLE:=DesignWare Cores SATA support
   KCONFIG:=CONFIG_SATA_DWC
-  FILES:=$(LINUX_DIR)/drivers/ata/sata_dwc_460ex.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/ata/sata_dwc_460ex.ko
   AUTOLOAD:=$(call AutoLoad,40,sata_dwc_460ex,1)
   $(call AddDepends/ata)
 endef
@@ -22,7 +22,7 @@  define KernelPackage/hw-crypto-4xx
   DEPENDS:=@TARGET_apm821xx +kmod-random-core +kmod-crypto-manager \
 	   +kmod-crypto-ccm +kmod-crypto-gcm \
 	   +kmod-crypto-sha1 +kmod-crypto-sha256 +kmod-crypto-sha512
-  FILES:=$(LINUX_DIR)/drivers/crypto/amcc/crypto4xx.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/crypto/amcc/crypto4xx.ko
   AUTOLOAD:=$(call AutoLoad,09,crypto4xx,1)
   $(call AddDepends/crypto)
 endef
diff --git a/target/linux/armsr/modules.mk b/target/linux/armsr/modules.mk
index 6e9ecda999..a689c91238 100644
--- a/target/linux/armsr/modules.mk
+++ b/target/linux/armsr/modules.mk
@@ -3,7 +3,7 @@  define KernelPackage/acpi-mdio
   TITLE:=ACPI MDIO support
   DEPENDS:=@(TARGET_armsr_armv8) +kmod-libphy +kmod-mdio-devres
   KCONFIG:=CONFIG_ACPI_MDIO
-  FILES:=$(LINUX_DIR)/drivers/net/mdio/acpi_mdio.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/mdio/acpi_mdio.ko
   AUTOLOAD:=$(call AutoLoad,11,acpi_mdio)
 endef
 
@@ -18,7 +18,7 @@  define KernelPackage/bcmgenet
   DEPENDS:=@(TARGET_armsr_armv8) +kmod-mdio-bcm-unimac
   TITLE:=Broadcom GENET internal MAC (Raspberry Pi 4)
   KCONFIG:=CONFIG_BCMGENET
-  FILES=$(LINUX_DIR)/drivers/net/ethernet/broadcom/genet/genet.ko
+  FILES=$(LINUX_OBJ_DIR)/drivers/net/ethernet/broadcom/genet/genet.ko
   AUTOLOAD=$(call AutoLoad,30,genet)
 endef
 
@@ -29,7 +29,7 @@  define KernelPackage/mdio-bcm-unimac
   DEPENDS:=@(TARGET_armsr_armv8) +kmod-of-mdio
   TITLE:=Broadcom UniMAC MDIO bus controller
   KCONFIG:=CONFIG_MDIO_BCM_UNIMAC
-  FILES=$(LINUX_DIR)/drivers/net/mdio/mdio-bcm-unimac.ko
+  FILES=$(LINUX_OBJ_DIR)/drivers/net/mdio/mdio-bcm-unimac.ko
   AUTOLOAD=$(call AutoLoad,30,mdio-bcm-unimac)
 endef
 
@@ -41,7 +41,7 @@  define KernelPackage/fsl-pcs-lynx
   TITLE:=NXP (Freescale) Lynx PCS
   HIDDEN:=1
   KCONFIG:=CONFIG_PCS_LYNX
-  FILES=$(LINUX_DIR)/drivers/net/pcs/pcs-lynx.ko
+  FILES=$(LINUX_OBJ_DIR)/drivers/net/pcs/pcs-lynx.ko
   AUTOLOAD=$(call AutoLoad,30,pcs-lynx)
 endef
 
@@ -52,7 +52,7 @@  define KernelPackage/pcs-xpcs
   TITLE:=Synopsis DesignWare PCS driver
   DEPENDS:=@(TARGET_armsr_armv8) +kmod-phylink
   KCONFIG:=CONFIG_PCS_XPCS
-  FILES:=$(LINUX_DIR)/drivers/net/pcs/pcs_xpcs.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/pcs/pcs_xpcs.ko
   AUTOLOAD:=$(call AutoLoad,20,pcs_xpcs)
 endef
 
@@ -64,7 +64,7 @@  define KernelPackage/fsl-fec
     +kmod-ptp +kmod-net-selftests
   TITLE:=NXP (Freescale) FEC Ethernet controller (i.MX)
   KCONFIG:=CONFIG_FEC
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/freescale/fec.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/freescale/fec.ko
   AUTOLOAD:=$(call AutoLoad,35,fec)
 endef
 
@@ -75,7 +75,7 @@  define KernelPackage/fsl-xgmac-mdio
   DEPENDS:=@(TARGET_armsr_armv8) +kmod-libphy +kmod-of-mdio +kmod-acpi-mdio
   TITLE:=NXP (Freescale) MDIO bus
   KCONFIG:=CONFIG_FSL_XGMAC_MDIO
-  FILES=$(LINUX_DIR)/drivers/net/ethernet/freescale/xgmac_mdio.ko
+  FILES=$(LINUX_OBJ_DIR)/drivers/net/ethernet/freescale/xgmac_mdio.ko
   AUTOLOAD=$(call AutoLoad,30,xgmac_mdio)
 endef
 
@@ -87,7 +87,7 @@  define KernelPackage/fsl-mc-dpio
   HIDDEN:=1
   KCONFIG:=CONFIG_FSL_MC_BUS=y \
     CONFIG_FSL_MC_DPIO
-  FILES:=$(LINUX_DIR)/drivers/soc/fsl/dpio/fsl-mc-dpio.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/soc/fsl/dpio/fsl-mc-dpio.ko
   AUTOLOAD=$(call AutoLoad,30,fsl-mc-dpio)
 endef
 
@@ -102,10 +102,10 @@  define KernelPackage/fsl-enetc-net
     CONFIG_FSL_ENETC_VF \
     CONFIG_FSL_ENETC_QOS=y
   FILES:= \
-    $(LINUX_DIR)/drivers/net/ethernet/freescale/enetc/fsl-enetc.ko \
-    $(LINUX_DIR)/drivers/net/ethernet/freescale/enetc/fsl-enetc-vf.ko \
-    $(LINUX_DIR)/drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio.ko \
-    $(LINUX_DIR)/drivers/net/ethernet/freescale/enetc/fsl-enetc-ierb.ko
+    $(LINUX_OBJ_DIR)/drivers/net/ethernet/freescale/enetc/fsl-enetc.ko \
+    $(LINUX_OBJ_DIR)/drivers/net/ethernet/freescale/enetc/fsl-enetc-vf.ko \
+    $(LINUX_OBJ_DIR)/drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio.ko \
+    $(LINUX_OBJ_DIR)/drivers/net/ethernet/freescale/enetc/fsl-enetc-ierb.ko
   AUTOLOAD=$(call AutoLoad,35,fsl-enetc)
 endef
 
@@ -123,9 +123,9 @@  define KernelPackage/fsl-dpaa1-net
     CONFIG_FSL_BMAN_TEST=n \
     CONFIG_FSL_QMAN_TEST=n
   MODULES:= \
-    $(LINUX_DIR)/drivers/net/ethernet/freescale/dpaa/fsl_dpa.ko \
-    $(LINUX_DIR)/drivers/net/ethernet/freescale/fman/fsl_dpaa_fman.ko \
-    $(LINUX_DIR)/drivers/net/ethernet/freescale/fman/fsl_dpaa_mac.ko
+    $(LINUX_OBJ_DIR)/drivers/net/ethernet/freescale/dpaa/fsl_dpa.ko \
+    $(LINUX_OBJ_DIR)/drivers/net/ethernet/freescale/fman/fsl_dpaa_fman.ko \
+    $(LINUX_OBJ_DIR)/drivers/net/ethernet/freescale/fman/fsl_dpaa_mac.ko
   AUTOLOAD=$(call AutoLoad,35,fsl-dpa)
 endef
 
@@ -140,7 +140,7 @@  define KernelPackage/fsl-dpaa2-net
     CONFIG_FSL_MC_UAPI_SUPPORT=y \
     CONFIG_FSL_DPAA2_ETH
   FILES:= \
-  $(LINUX_DIR)/drivers/net/ethernet/freescale/dpaa2/fsl-dpaa2-eth.ko
+  $(LINUX_OBJ_DIR)/drivers/net/ethernet/freescale/dpaa2/fsl-dpaa2-eth.ko
   AUTOLOAD=$(call AutoLoad,35,fsl-dpaa2-eth)
 endef
 
@@ -151,7 +151,7 @@  define KernelPackage/fsl-dpaa2-console
   TITLE:=NXP DPAA2 Debug console
   DEPENDS:=@(TARGET_armsr_armv8)
   KCONFIG:=CONFIG_DPAA2_CONSOLE
-  FILES=$(LINUX_DIR)/drivers/soc/fsl/dpaa2-console.ko
+  FILES=$(LINUX_OBJ_DIR)/drivers/soc/fsl/dpaa2-console.ko
   AUTOLOAD=$(call AutoLoad,40,dpaa2-console)
 endef
 
@@ -167,7 +167,7 @@  define KernelPackage/marvell-mdio
   TITLE:=Marvell Armada platform MDIO driver
   DEPENDS:=@(TARGET_armsr_armv8) +kmod-libphy +kmod-of-mdio +kmod-acpi-mdio
   KCONFIG:=CONFIG_MVMDIO
-  FILES=$(LINUX_DIR)/drivers/net/ethernet/marvell/mvmdio.ko
+  FILES=$(LINUX_OBJ_DIR)/drivers/net/ethernet/marvell/mvmdio.ko
   AUTOLOAD=$(call AutoLoad,30,marvell-mdio)
 endef
 
@@ -178,7 +178,7 @@  define KernelPackage/mvneta
   TITLE:=Marvell Armada 370/38x/XP/37xx network driver
   DEPENDS:=@(TARGET_armsr_armv8) +kmod-marvell-mdio +kmod-phylink
   KCONFIG:=CONFIG_MVNETA
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/marvell/mvneta.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/marvell/mvneta.ko
   AUTOLOAD=$(call AutoLoad,30,mvneta)
 endef
 
@@ -190,7 +190,7 @@  define KernelPackage/mvpp2
   DEPENDS:=@(TARGET_armsr_armv8) +kmod-marvell-mdio +kmod-phylink
   KCONFIG:=CONFIG_MVPP2 \
     CONFIG_MVPP2_PTP=n
-  FILES=$(LINUX_DIR)/drivers/net/ethernet/marvell/mvpp2/mvpp2.ko
+  FILES=$(LINUX_OBJ_DIR)/drivers/net/ethernet/marvell/mvpp2/mvpp2.ko
   AUTOLOAD=$(call AutoLoad,40,mvpp2)
 endef
 
@@ -200,7 +200,7 @@  define KernelPackage/imx2-wdt
   SUBMENU:=$(OTHER_MENU)
   TITLE:=NXP (Freescale) i.MX2+ and Layerscape watchdog driver
   KCONFIG:=CONFIG_IMX2_WDT
-  FILES=$(LINUX_DIR)/drivers/watchdog/imx2_wdt.ko
+  FILES=$(LINUX_OBJ_DIR)/drivers/watchdog/imx2_wdt.ko
   AUTOLOAD=$(call AutoLoad,60,imx2_wdt)
 endef
 
@@ -210,7 +210,7 @@  define KernelPackage/imx7-ulp-wdt
   SUBMENU:=$(OTHER_MENU)
   TITLE:=NXP (Freescale) i.MX7ULP and later watchdog
   KCONFIG:=CONFIG_IMX7ULP_WDT
-  FILES=$(LINUX_DIR)/drivers/watchdog/imx7ulp_wdt.ko
+  FILES=$(LINUX_OBJ_DIR)/drivers/watchdog/imx7ulp_wdt.ko
   AUTOLOAD=$(call AutoLoad,60,imx7ulp_wdt)
 endef
 
@@ -226,9 +226,9 @@  define KernelPackage/stmmac-core
     CONFIG_STMMAC_PLATFORM \
     CONFIG_CONFIG_DWMAC_DWC_QOS_ETH=n \
     CONFIG_DWMAC_GENERIC
-  FILES=$(LINUX_DIR)/drivers/net/ethernet/stmicro/stmmac/stmmac.ko \
-    $(LINUX_DIR)/drivers/net/ethernet/stmicro/stmmac/stmmac-platform.ko \
-    $(LINUX_DIR)/drivers/net/ethernet/stmicro/stmmac/dwmac-generic.ko
+  FILES=$(LINUX_OBJ_DIR)/drivers/net/ethernet/stmicro/stmmac/stmmac.ko \
+    $(LINUX_OBJ_DIR)/drivers/net/ethernet/stmicro/stmmac/stmmac-platform.ko \
+    $(LINUX_OBJ_DIR)/drivers/net/ethernet/stmicro/stmmac/dwmac-generic.ko
   AUTOLOAD=$(call AutoLoad,40,stmmac stmmac-platform dwmac-generic)
 endef
 
@@ -239,7 +239,7 @@  define KernelPackage/dwmac-imx
   TITLE:=NXP i.MX8 Ethernet controller
   DEPENDS:=+kmod-stmmac-core
   KCONFIG:=CONFIG_DWMAC_IMX8
-  FILES=$(LINUX_DIR)/drivers/net/ethernet/stmicro/stmmac/dwmac-imx.ko
+  FILES=$(LINUX_OBJ_DIR)/drivers/net/ethernet/stmicro/stmmac/dwmac-imx.ko
   AUTOLOAD=$(call AutoLoad,45,dwmac-imx)
 endef
 
@@ -250,7 +250,7 @@  define KernelPackage/dwmac-sun8i
   TITLE:=Allwinner H3/A83T/A64 (sun8i) Ethernet
   DEPENDS:=+kmod-stmmac-core +kmod-mdio-bus-mux
   KCONFIG:=CONFIG_DWMAC_SUN8I
-  FILES=$(LINUX_DIR)/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.ko
+  FILES=$(LINUX_OBJ_DIR)/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.ko
   AUTOLOAD=$(call AutoLoad,45,dwmac-sun8i)
 endef
 
@@ -261,7 +261,7 @@  define KernelPackage/dwmac-rockchip
   TITLE:=Rockchip RK3328/RK3399/RK3568 Ethernet
   DEPENDS:=+kmod-stmmac-core +kmod-mdio-bus-mux
   KCONFIG:=CONFIG_DWMAC_ROCKCHIP
-  FILES=$(LINUX_DIR)/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.ko
+  FILES=$(LINUX_OBJ_DIR)/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.ko
   AUTOLOAD=$(call AutoLoad,45,dwmac-rk)
 endef
 
@@ -272,8 +272,8 @@  define KernelPackage/mdio-thunder
   TITLE:=Marvell (Cavium) Thunder MDIO controller
   DEPENDS:=@(TARGET_armsr_armv8) +kmod-of-mdio
   KCONFIG:=CONFIG_MDIO_THUNDER
-  FILES=$(LINUX_DIR)/drivers/net/mdio/mdio-cavium.ko \
-    $(LINUX_DIR)/drivers/net/mdio/mdio-thunder.ko
+  FILES=$(LINUX_OBJ_DIR)/drivers/net/mdio/mdio-cavium.ko \
+    $(LINUX_OBJ_DIR)/drivers/net/mdio/mdio-thunder.ko
   AUTOLOAD=$(call AutoLoad,30,mdio-cavium mdio-thunder)
 endef
 
@@ -288,10 +288,10 @@  define KernelPackage/thunderx-net
     CONFIG_THUNDER_NIC_VF \
     CONFIG_THUNDER_NIC_BGX \
     CONFIG_THUNDER_NIC_RGX
-  FILES=$(LINUX_DIR)/drivers/net/ethernet/cavium/thunder/nicvf.ko \
-    $(LINUX_DIR)/drivers/net/ethernet/cavium/thunder/nicpf.ko \
-    $(LINUX_DIR)/drivers/net/ethernet/cavium/thunder/thunder_xcv.ko \
-    $(LINUX_DIR)/drivers/net/ethernet/cavium/thunder/thunder_bgx.ko
+  FILES=$(LINUX_OBJ_DIR)/drivers/net/ethernet/cavium/thunder/nicvf.ko \
+    $(LINUX_OBJ_DIR)/drivers/net/ethernet/cavium/thunder/nicpf.ko \
+    $(LINUX_OBJ_DIR)/drivers/net/ethernet/cavium/thunder/thunder_xcv.ko \
+    $(LINUX_OBJ_DIR)/drivers/net/ethernet/cavium/thunder/thunder_bgx.ko
   AUTOLOAD=$(call AutoLoad,40,nicpf nicvf thunder_xcv thunder_bgx)
 endef
 
@@ -307,11 +307,11 @@  define KernelPackage/octeontx2-net
     CONFIG_OCTEONTX2_PF \
     CONFIG_OCTEONTX2_VF \
     CONFIG_NDC_DIS_DYNAMIC_CACHING=n
-  FILES=$(LINUX_DIR)/drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox.ko \
-    $(LINUX_DIR)/drivers/net/ethernet/marvell/octeontx2/af/rvu_af.ko \
-    $(LINUX_DIR)/drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf.ko \
-    $(LINUX_DIR)/drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicvf.ko \
-    $(LINUX_DIR)/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.ko
+  FILES=$(LINUX_OBJ_DIR)/drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox.ko \
+    $(LINUX_OBJ_DIR)/drivers/net/ethernet/marvell/octeontx2/af/rvu_af.ko \
+    $(LINUX_OBJ_DIR)/drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf.ko \
+    $(LINUX_OBJ_DIR)/drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicvf.ko \
+    $(LINUX_OBJ_DIR)/drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp.ko
   AUTOLOAD=$(call AutoLoad,40,rvu_af rvu_mbox rvu_nicpf rvu_nicvf otx2_ptp)
 endef
 $(eval $(call KernelPackage,octeontx2-net))
@@ -320,7 +320,7 @@  define KernelPackage/wdt-sp805
   SUBMENU:=$(OTHER_MENU)
   TITLE:=ARM SP805 Watchdog
   KCONFIG:=CONFIG_ARM_SP805_WATCHDOG
-  FILES=$(LINUX_DIR)/drivers/watchdog/sp805_wdt.ko
+  FILES=$(LINUX_OBJ_DIR)/drivers/watchdog/sp805_wdt.ko
   AUTOLOAD=$(call AutoLoad,50,sp805_wdt)
 endef
 
diff --git a/target/linux/at91/modules.mk b/target/linux/at91/modules.mk
index 0590afef82..48404ea33c 100644
--- a/target/linux/at91/modules.mk
+++ b/target/linux/at91/modules.mk
@@ -7,7 +7,7 @@  define KernelPackage/mmc-at91
   TITLE:=MMC/SD Card Support on AT91
   DEPENDS:=@TARGET_at91 +kmod-mmc
   KCONFIG:=CONFIG_MMC_AT91
-  FILES:=$(LINUX_DIR)/drivers/mmc/host/at91_mci.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/mmc/host/at91_mci.ko
   AUTOLOAD:=$(call AutoLoad,90,at91_mci,1)
 endef
 
@@ -22,7 +22,7 @@  define KernelPackage/pwm-atmel
   TITLE:=PWM on atmel SoC
   DEPENDS:=@TARGET_at91
   KCONFIG:=CONFIG_ATMEL_PWM
-  FILES:=$(LINUX_DIR)/drivers/misc/atmel_pwm.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/misc/atmel_pwm.ko
   AUTOLOAD:=$(call AutoLoad,51,atmel_pwm)
 endef
 
@@ -37,7 +37,7 @@  define KernelPackage/at91-adc
   TITLE:=ADC on atmel SoC
   DEPENDS:=@TARGET_at91 +kmod-iio-core +kmod-input-core
   KCONFIG:=CONFIG_AT91_ADC
-  FILES:=$(LINUX_DIR)/drivers/iio/adc/at91_adc.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/iio/adc/at91_adc.ko
   AUTOLOAD:=$(call AutoLoad,40,at91_adc)
 endef
 
@@ -52,10 +52,10 @@  define KernelPackage/at91-udc
   TITLE:=USB Device Controller on atmel SoC
   DEPENDS:=@TARGET_at91 +kmod-usb-gadget +kmod-regmap-core
   KCONFIG:=CONFIG_USB_AT91
-ifneq ($(wildcard $(LINUX_DIR)/drivers/usb/gadget/udc/at91_udc.ko),)
-  FILES:=$(LINUX_DIR)/drivers/usb/gadget/udc/at91_udc.ko
+ifneq ($(wildcard $(LINUX_OBJ_DIR)/drivers/usb/gadget/udc/at91_udc.ko),)
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/gadget/udc/at91_udc.ko
 else
-  FILES:=$(LINUX_DIR)/drivers/usb/gadget/at91_udc.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/gadget/at91_udc.ko
 endif
   AUTOLOAD:=$(call AutoLoad,51,at91_udc)
 endef
@@ -71,10 +71,10 @@  define KernelPackage/atmel-usba-udc
   TITLE:=High-speed USB Device Controller on atmel SoC
   DEPENDS:=@TARGET_at91 +kmod-usb-gadget
   KCONFIG:=CONFIG_USB_ATMEL_USBA
-ifneq ($(wildcard $(LINUX_DIR)/drivers/usb/gadget/udc/atmel_usba_udc.ko),)
-  FILES:=$(LINUX_DIR)/drivers/usb/gadget/udc/atmel_usba_udc.ko
+ifneq ($(wildcard $(LINUX_OBJ_DIR)/drivers/usb/gadget/udc/atmel_usba_udc.ko),)
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/gadget/udc/atmel_usba_udc.ko
 else
-  FILES:=$(LINUX_DIR)/drivers/usb/gadget/atmel_usba_udc.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/gadget/atmel_usba_udc.ko
 endif
   AUTOLOAD:=$(call AutoLoad,51,atmel_usba_udc)
 endef
diff --git a/target/linux/ath79/modules.mk b/target/linux/ath79/modules.mk
index 946440dd61..e2819feda1 100644
--- a/target/linux/ath79/modules.mk
+++ b/target/linux/ath79/modules.mk
@@ -5,7 +5,7 @@  define KernelPackage/leds-reset
   TITLE:=reset controller LED support
   DEPENDS:= @TARGET_ath79
   KCONFIG:=CONFIG_LEDS_RESET=m
-  FILES:=$(LINUX_DIR)/drivers/leds/leds-reset.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/leds/leds-reset.ko
   AUTOLOAD:=$(call AutoLoad,60,leds-reset,1)
 endef
 
diff --git a/target/linux/bcm27xx/modules/hwmon.mk b/target/linux/bcm27xx/modules/hwmon.mk
index 0f1547cd4f..7a9002d12f 100644
--- a/target/linux/bcm27xx/modules/hwmon.mk
+++ b/target/linux/bcm27xx/modules/hwmon.mk
@@ -5,7 +5,7 @@ 
 define KernelPackage/hwmon-raspberrypi
   TITLE:=Raspberry Pi voltage monitor
   KCONFIG:=CONFIG_SENSORS_RASPBERRYPI_HWMON
-  FILES:=$(LINUX_DIR)/drivers/hwmon/raspberrypi-hwmon.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/hwmon/raspberrypi-hwmon.ko
   AUTOLOAD:=$(call AutoLoad,60,raspberrypi-hwmon)
   $(call AddDepends/hwmon,@TARGET_bcm27xx)
 endef
diff --git a/target/linux/bcm27xx/modules/other.mk b/target/linux/bcm27xx/modules/other.mk
index 99b71d4d69..9b741f0536 100644
--- a/target/linux/bcm27xx/modules/other.mk
+++ b/target/linux/bcm27xx/modules/other.mk
@@ -8,7 +8,7 @@  define KernelPackage/pwm-raspberrypi-poe
   KCONFIG:= \
     CONFIG_PWM=y \
     CONFIG_PWM_RASPBERRYPI_POE
-  FILES:=$(LINUX_DIR)/drivers/pwm/pwm-raspberrypi-poe.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/pwm/pwm-raspberrypi-poe.ko
   AUTOLOAD:=$(call AutoLoad,20,pwm-raspberrypi-poe)
   DEPENDS:=@TARGET_bcm27xx +kmod-hwmon-pwmfan
 endef
@@ -24,7 +24,7 @@  define KernelPackage/smi-bcm2835
   SUBMENU:=$(OTHER_MENU)
   TITLE:=BCM2835 SMI driver
   KCONFIG:=CONFIG_BCM2835_SMI
-  FILES:=$(LINUX_DIR)/drivers/misc/bcm2835_smi.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/misc/bcm2835_smi.ko
   AUTOLOAD:=$(call AutoLoad,20,bcm2835_smi)
   DEPENDS:=@TARGET_bcm27xx
 endef
@@ -41,7 +41,7 @@  define KernelPackage/smi-bcm2835-dev
   SUBMENU:=$(OTHER_MENU)
   TITLE:=BCM2835 SMI device driver
   KCONFIG:=CONFIG_BCM2835_SMI_DEV
-  FILES:=$(LINUX_DIR)/drivers/char/broadcom/bcm2835_smi_dev.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/char/broadcom/bcm2835_smi_dev.ko
   AUTOLOAD:=$(call AutoLoad,21,bcm2835_smi_dev)
   DEPENDS:=@TARGET_bcm27xx +kmod-smi-bcm2835
 endef
diff --git a/target/linux/bcm27xx/modules/sound.mk b/target/linux/bcm27xx/modules/sound.mk
index e61f07852b..326acef314 100644
--- a/target/linux/bcm27xx/modules/sound.mk
+++ b/target/linux/bcm27xx/modules/sound.mk
@@ -9,7 +9,7 @@  define KernelPackage/sound-arm-bcm2835
     CONFIG_SND_BCM2835 \
     CONFIG_SND_ARMAACI=n
   FILES:= \
-    $(LINUX_DIR)/drivers/staging/vc04_services/bcm2835-audio/snd-bcm2835.ko
+    $(LINUX_OBJ_DIR)/drivers/staging/vc04_services/bcm2835-audio/snd-bcm2835.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-bcm2835)
   DEPENDS:=@TARGET_bcm27xx
   $(call AddDepends/sound)
@@ -29,7 +29,7 @@  define KernelPackage/sound-soc-bcm2835-i2s
     CONFIG_SND_SOC_DMAENGINE_PCM=y \
     CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-bcm2835-i2s.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-bcm2835-i2s.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-bcm2835-i2s)
   DEPENDS:=@TARGET_bcm27xx +kmod-sound-soc-core
   $(call AddDepends/sound)
@@ -47,7 +47,7 @@  define KernelPackage/sound-soc-rpi-simple-soundcard
   KCONFIG:= \
     CONFIG_SND_RPI_SIMPLE_SOUNDCARD
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-rpi-simple-soundcard.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-rpi-simple-soundcard.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-rpi-simple-soundcard)
   DEPENDS:= \
     kmod-sound-soc-bcm2835-i2s
@@ -66,7 +66,7 @@  define KernelPackage/sound-soc-rpi-wm8804-soundcard
   KCONFIG:= \
     CONFIG_SND_RPI_WM8804_SOUNDCARD
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-rpi-wm8804-soundcard.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-rpi-wm8804-soundcard.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-rpi-wm8804-soundcard)
   DEPENDS:= \
     kmod-sound-soc-bcm2835-i2s
@@ -87,8 +87,8 @@  define KernelPackage/sound-soc-adau1977-adc
     CONFIG_SND_SOC_ADAU1977 \
     CONFIG_SND_SOC_ADAU1977_I2C
   FILES:= \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-adau1977.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-adau1977-i2c.ko
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-adau1977.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-adau1977-i2c.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-adau1977 snd-soc-adau1977-i2c)
   DEPENDS:= \
     kmod-sound-soc-bcm2835-i2s \
@@ -112,9 +112,9 @@  define KernelPackage/sound-soc-allo-boss-dac
     CONFIG_SND_SOC_PCM512x \
     CONFIG_SND_SOC_PCM512x_I2C
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-allo-boss-dac.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-allo-boss-dac.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm512x-i2c snd-soc-pcm512x \
     snd-soc-allo-boss-dac)
   DEPENDS:= \
@@ -137,7 +137,7 @@  define KernelPackage/sound-soc-allo-boss2-dac
     CONFIG_SND_AUDIO_GRAPH_CARD \
     CONFIG_SND_BCM2708_SOC_ALLO_BOSS2_DAC
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-allo-boss2-dac.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-allo-boss2-dac.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-allo-boss2-dac)
   DEPENDS:= \
     kmod-sound-soc-bcm2835-i2s \
@@ -160,8 +160,8 @@  define KernelPackage/sound-soc-allo-digione
     CONFIG_SND_SOC_WM8804 \
     CONFIG_SND_SOC_WM8804_I2C
   FILES:= \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8804.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8804-i2c.ko
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-wm8804.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-wm8804-i2c.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-wm8804-i2c snd-soc-wm8804 \
     snd-soc-allo-digione)
   DEPENDS:= \
@@ -186,9 +186,9 @@  define KernelPackage/sound-soc-allo-piano-dac
     CONFIG_SND_SOC_PCM512x \
     CONFIG_SND_SOC_PCM512x_I2C
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-allo-piano-dac.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-allo-piano-dac.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm512x-i2c snd-soc-pcm512x \
     snd-soc-allo-piano-dac)
   DEPENDS:= \
@@ -212,9 +212,9 @@  define KernelPackage/sound-soc-allo-piano-dac-plus
     CONFIG_SND_SOC_PCM512x \
     CONFIG_SND_SOC_PCM512x_I2C
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-allo-piano-dac-plus.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-allo-piano-dac-plus.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm512x-i2c snd-soc-pcm512x \
     snd-soc-allo-piano-dac-plus)
   DEPENDS:= \
@@ -238,9 +238,9 @@  define KernelPackage/sound-soc-audiosense-pi
     CONFIG_SND_SOC_TLV320AIC32X4 \
     CONFIG_SND_SOC_TLV320AIC32X4_I2C
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-audiosense-pi.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-tlv320aic32x4.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-tlv320aic32x4-i2c.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-audiosense-pi.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-tlv320aic32x4.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-tlv320aic32x4-i2c.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-tlv320aic32x4-i2c snd-soc-tlv320aic32x4 \
     snd-soc-audiosense-pi)
   DEPENDS:= \
@@ -266,9 +266,9 @@  define KernelPackage/sound-soc-allo-katana-codec
     CONFIG_SND_SOC_PCM512x_I2C \
     CONFIG_SND_SIMPLE_CARD_UTILS
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-allo-katana-codec.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-allo-katana-codec.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm512x-i2c snd-soc-pcm512x \
     snd-soc-allo-katana-codec)
   DEPENDS:= \
@@ -292,8 +292,8 @@  define KernelPackage/sound-soc-audioinjector-isolated-soundcard
     CONFIG_SND_SOC_CS4271 \
     CONFIG_SND_SOC_CS4271_I2C
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-audioinjector-isolated-soundcard.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8731.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-audioinjector-isolated-soundcard.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-wm8731.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-cs4271.o \
     snd-soc-cs4271-i2c \
     snd-soc-audioinjector-isolated-soundcard)
@@ -319,9 +319,9 @@  define KernelPackage/sound-soc-audioinjector-octo-soundcard
     CONFIG_SND_SOC_CS42XX8 \
     CONFIG_SND_SOC_CS42XX8_I2C
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-audioinjector-octo-soundcard.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-cs42xx8.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-cs42xx8-i2c.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-audioinjector-octo-soundcard.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-cs42xx8.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-cs42xx8-i2c.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc- \
     snd-soc-audioinjector-octo-soundcard)
   DEPENDS:= \
@@ -344,8 +344,8 @@  define KernelPackage/sound-soc-audioinjector-pi-soundcard
     CONFIG_SND_AUDIOINJECTOR_PI_SOUNDCARD \
     CONFIG_SND_SOC_WM8731
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-audioinjector-pi-soundcard.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8731.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-audioinjector-pi-soundcard.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-wm8731.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-wm8731 \
     snd-soc-audioinjector-pi-soundcard)
   DEPENDS:= \
@@ -368,7 +368,7 @@  define KernelPackage/sound-soc-chipdip-dac
   KCONFIG:= \
     CONFIG_SND_BCM2708_SOC_CHIPDIP_DAC
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-chipdip-dac.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-chipdip-dac.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-chipdip-dac)
   DEPENDS:= \
     kmod-sound-soc-bcm2835-i2s
@@ -388,8 +388,8 @@  define KernelPackage/sound-soc-dacberry-soundcard
     CONFIG_SND_DACBERRY400 \
     CONFIG_SND_SOC_TLV320AIC3X_I2C
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-dacberry400.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-tlv320aic3x.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-dacberry400.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-tlv320aic3x.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-tlv320aic3x-i2c snd-soc-dacberry400)
   DEPENDS:= \
     kmod-sound-soc-bcm2835-i2s \
@@ -413,10 +413,10 @@  define KernelPackage/sound-soc-digidac1-soundcard
     CONFIG_SND_SOC_WM8804 \
     CONFIG_SND_SOC_WM8804_I2C
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-digidac1-soundcard.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8741.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8804.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8804-i2c.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-digidac1-soundcard.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-wm8741.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-wm8804.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-wm8804-i2c.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-wm8741 \
     snd-soc-wm8804 snd-soc-wm8804-i2c \
     snd-soc-digidac1-soundcard)
@@ -441,8 +441,8 @@  define KernelPackage/sound-soc-dionaudio-loco
     CONFIG_SND_BCM2708_SOC_DIONAUDIO_LOCO \
     CONFIG_SND_SOC_PCM5102A
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-dionaudio-loco.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm5102a.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-dionaudio-loco.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm5102a.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm5102a \
     snd-soc-dionaudio-loco)
   DEPENDS:= \
@@ -464,9 +464,9 @@  define KernelPackage/sound-soc-dionaudio-loco-v2
     CONFIG_SND_SOC_PCM512x \
     CONFIG_SND_SOC_PCM512x_I2C
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-dionaudio-loco.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-dionaudio-loco.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm512x snd-soc-pcm512x-i2c \
     snd-soc-dionaudio-loco)
   DEPENDS:= \
@@ -488,8 +488,8 @@  define KernelPackage/sound-soc-fe-pi
     CONFIG_SND_BCM2708_SOC_FE_PI_AUDIO \
     CONFIG_SND_SOC_SGTL5000
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-fe-pi-audio.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-sgtl5000.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-fe-pi-audio.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-sgtl5000.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-sgtl5000 \
     snd-soc-fe-pi-audio)
   DEPENDS:= \
@@ -511,7 +511,7 @@  define KernelPackage/sound-soc-googlevoicehat
     CONFIG_SND_BCM2708_SOC_GOOGLEVOICEHAT_SOUNDCARD \
     CONFIG_SND_SOC_VOICEHAT
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-googlevoicehat-codec.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-googlevoicehat-codec.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-googlevoicehat-codec)
   DEPENDS:= \
     kmod-sound-soc-bcm2835-i2s \
@@ -532,7 +532,7 @@  define KernelPackage/sound-soc-hifiberry-dac
     CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC \
     CONFIG_SND_SOC_PCM5102A
   FILES:= \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm5102a.ko
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm5102a.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm5102a)
   DEPENDS:= \
     kmod-sound-soc-bcm2835-i2s \
@@ -555,10 +555,10 @@  define KernelPackage/sound-soc-hifiberry-dacplus
     CONFIG_SND_SOC_PCM512x \
     CONFIG_SND_SOC_PCM512x_I2C
   FILES:= \
-    $(LINUX_DIR)/drivers/clk/clk-hifiberry-dacpro.ko \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-hifiberry-dacplus.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
+    $(LINUX_OBJ_DIR)/drivers/clk/clk-hifiberry-dacpro.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-hifiberry-dacplus.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
   AUTOLOAD:=$(call AutoLoad,68,clk-hifiberry-dacpro snd-soc-pcm512x \
     snd-soc-pcm512x-i2c snd-soc-hifiberry-dacplus)
   DEPENDS:= \
@@ -582,10 +582,10 @@  define KernelPackage/sound-soc-hifiberry-dacplusadc
     CONFIG_SND_SOC_PCM512x \
     CONFIG_SND_SOC_DMIC
   FILES:= \
-    $(LINUX_DIR)/drivers/clk/clk-hifiberry-dacpro.ko \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-hifiberry-dacplusadc.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-dmic.ko
+    $(LINUX_OBJ_DIR)/drivers/clk/clk-hifiberry-dacpro.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-hifiberry-dacplusadc.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-dmic.ko
   AUTOLOAD:=$(call AutoLoad,68,clk-hifiberry-dacpro snd-soc-pcm512x \
     snd-soc-dmic snd-soc-hifiberry-dacplusadc)
   DEPENDS:= \
@@ -606,7 +606,7 @@  define KernelPackage/sound-soc-hifiberry-dacplusdsp
   KCONFIG:= \
     CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSDSP
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-hifiberry-dacplusdsp.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-hifiberry-dacplusdsp.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-hifiberry-dacplusdsp)
   DEPENDS:= \
     kmod-sound-soc-bcm2835-i2s \
@@ -628,10 +628,10 @@  define KernelPackage/sound-soc-hifiberry-dacplushd
     CONFIG_SND_SOC_PCM179X \
     CONFIG_SND_SOC_PCM179X_I2C
   FILES:= \
-    $(LINUX_DIR)/drivers/clk/clk-hifiberry-dachd.ko \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-hifiberry-dacplushd.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm179x-codec.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm179x-i2c.ko
+    $(LINUX_OBJ_DIR)/drivers/clk/clk-hifiberry-dachd.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-hifiberry-dacplushd.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm179x-codec.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm179x-i2c.ko
   AUTOLOAD:=$(call AutoLoad,68,clk-hifiberry-dachd snd-soc-pcm179x-codec \
     snd-soc-pcm179x-i2c snd-soc-hifiberry-dacplushd)
   DEPENDS:= \
@@ -657,11 +657,11 @@  define KernelPackage/sound-soc-hifiberry-dacplusadc-pro
     CONFIG_SND_SOC_PCM512x \
     CONFIG_SND_SOC_PCM512x_I2C
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-hifiberry-dacplusadcpro.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm186x.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm186x-i2c.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-hifiberry-dacplusadcpro.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm186x.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm186x-i2c.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm186x snd-soc-pcm186x-i2c \
     snd-soc-pcm512x snd-soc-pcm512x-i2c snd-soc-hifiberry-dacplusadcpro)
   DEPENDS:= \
@@ -685,8 +685,8 @@  define KernelPackage/sound-soc-hifiberry-digi
     CONFIG_SND_SOC_WM8804 \
     CONFIG_SND_SOC_WM8804_I2C
   FILES:= \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8804.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8804-i2c.ko
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-wm8804.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-wm8804-i2c.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-wm8804 snd-soc-wm8804-i2c)
   DEPENDS:= \
     kmod-sound-soc-bcm2835-i2s \
@@ -709,7 +709,7 @@  define KernelPackage/sound-soc-hifiberry-amp
     CONFIG_SND_BCM2708_SOC_HIFIBERRY_AMP \
     CONFIG_SND_SOC_TAS5713
   FILES:= \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-tas5713.ko
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-tas5713.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-tas5713)
   DEPENDS:= \
     kmod-sound-soc-bcm2835-i2s \
@@ -732,8 +732,8 @@  define KernelPackage/sound-soc-iqaudio-codec
     CONFIG_SND_BCM2708_SOC_IQAUDIO_CODEC \
     CONFIG_SND_SOC_DA7213
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-iqaudio-codec.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-da7213.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-iqaudio-codec.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-da7213.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-da7213 snd-soc-iqaudio-codec)
   DEPENDS:= \
     kmod-sound-soc-bcm2835-i2s \
@@ -756,9 +756,9 @@  define KernelPackage/sound-soc-iqaudio-dac
     CONFIG_SND_SOC_PCM512x \
     CONFIG_SND_SOC_PCM512x_I2C
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-iqaudio-dac.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-iqaudio-dac.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm512x snd-soc-pcm512x-i2c \
     snd-soc-iqaudio-dac)
   DEPENDS:= \
@@ -782,8 +782,8 @@  define KernelPackage/sound-soc-iqaudio-digi
     CONFIG_SND_SOC_WM8804 \
     CONFIG_SND_SOC_WM8804_I2C
   FILES:= \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8804.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8804-i2c.ko
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-wm8804.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-wm8804-i2c.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-wm8804 snd-soc-wm8804-i2c)
   DEPENDS:= \
     kmod-sound-soc-bcm2835-i2s \
@@ -806,8 +806,8 @@  define KernelPackage/sound-soc-i-sabe-q2m
     CONFIG_SND_BCM2708_SOC_I_SABRE_Q2M \
     CONFIG_SND_SOC_I_SABRE_CODEC
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-i-sabre-q2m.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-i-sabre-codec.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-i-sabre-q2m.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-i-sabre-codec.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-i-sabre-codec snd-soc-i-sabre-q2m)
   DEPENDS:= \
     kmod-sound-soc-bcm2835-i2s \
@@ -832,11 +832,11 @@  define KernelPackage/sound-soc-justboom-both
     CONFIG_SND_SOC_WM8804 \
     CONFIG_SND_SOC_WM8804_I2C
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-justboom-both.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8804.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8804-i2c.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-justboom-both.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-wm8804.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-wm8804-i2c.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm512x-i2c snd-soc-pcm512x \
     snd-soc-wm8804-i2c snd-soc-wm8804 \
     snd-soc-justboom-both)
@@ -862,9 +862,9 @@  define KernelPackage/sound-soc-justboom-dac
     CONFIG_SND_SOC_PCM512x \
     CONFIG_SND_SOC_PCM512x_I2C
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-justboom-dac.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-justboom-dac.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm512x.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm512x-i2c.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm512x-i2c snd-soc-pcm512x \
     snd-soc-justboom-dac)
   DEPENDS:= \
@@ -888,8 +888,8 @@  define KernelPackage/sound-soc-justboom-digi
     CONFIG_SND_SOC_WM8804 \
     CONFIG_SND_SOC_WM8804_I2C
   FILES:= \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8804.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8804-i2c.ko
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-wm8804.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-wm8804-i2c.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-wm8804-i2c snd-soc-wm8804)
   DEPENDS:= \
     kmod-sound-soc-bcm2835-i2s \
@@ -913,8 +913,8 @@  define KernelPackage/sound-soc-pifi-40-amp
     CONFIG_SND_PIFI_40 \
     CONFIG_SND_SOC_TAS571X
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-pifi-40.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-tas571x.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-pifi-40.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-tas571x.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-tas571x)
   DEPENDS:= \
     kmod-sound-soc-bcm2835-i2s
@@ -934,8 +934,8 @@  define KernelPackage/sound-soc-pisound
     CONFIG_SND_PISOUND \
     CONFIG_SND_SOC_PCM5102A
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-pisound.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm5102a.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-pisound.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm5102a.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm5102a snd-soc-pisound)
   DEPENDS:= \
     kmod-sound-soc-bcm2835-i2s
@@ -970,14 +970,14 @@  define KernelPackage/sound-soc-rpi-cirrus
     CONFIG_SND_SOC_WM8804 \
     CONFIG_SND_SOC_WM_ADSP
   FILES:= \
-    $(LINUX_DIR)/drivers/firmware/cirrus/cs_dsp.ko \
-    $(LINUX_DIR)/drivers/mfd/arizona.ko \
-    $(LINUX_DIR)/drivers/mfd/arizona-i2c.ko \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-rpi-cirrus.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-arizona.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm-adsp.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm5102.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8804.ko
+    $(LINUX_OBJ_DIR)/drivers/firmware/cirrus/cs_dsp.ko \
+    $(LINUX_OBJ_DIR)/drivers/mfd/arizona.ko \
+    $(LINUX_OBJ_DIR)/drivers/mfd/arizona-i2c.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-rpi-cirrus.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-arizona.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-wm-adsp.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-wm5102.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-wm8804.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-rpi-cirrus)
   DEPENDS:= \
     kmod-sound-soc-bcm2835-i2s \
@@ -999,7 +999,7 @@  define KernelPackage/sound-soc-rpi-dac
     CONFIG_SND_BCM2708_SOC_RPI_DAC \
     CONFIG_SND_SOC_PCM1794A
   FILES:= \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-pcm1794a.ko
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-pcm1794a.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-pcm1794a)
   DEPENDS:= \
     kmod-sound-soc-bcm2835-i2s \
@@ -1020,7 +1020,7 @@  define KernelPackage/sound-soc-merus-amp
   KCONFIG:= \
     CONFIG_SND_SOC_MA120X0P
   FILES:= \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-ma120x0p.ko
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-ma120x0p.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-ma120x0p)
   DEPENDS:= \
     kmod-sound-soc-bcm2835-i2s \
@@ -1043,8 +1043,8 @@  define KernelPackage/sound-soc-rpi-proto
     CONFIG_SND_BCM2708_SOC_RPI_PROTO \
     CONFIG_SND_SOC_WM8731
   FILES:= \
-    $(LINUX_DIR)/sound/soc/bcm/snd-soc-rpi-proto.ko \
-    $(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8731.ko
+    $(LINUX_OBJ_DIR)/sound/soc/bcm/snd-soc-rpi-proto.ko \
+    $(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-wm8731.ko
   AUTOLOAD:=$(call AutoLoad,68,snd-soc-wm8731 snd-soc-rpi-proto)
   DEPENDS:= \
     kmod-sound-soc-bcm2835-i2s \
diff --git a/target/linux/bcm27xx/modules/spi.mk b/target/linux/bcm27xx/modules/spi.mk
index 948978dd44..c33ddf812c 100644
--- a/target/linux/bcm27xx/modules/spi.mk
+++ b/target/linux/bcm27xx/modules/spi.mk
@@ -9,7 +9,7 @@  define KernelPackage/spi-bcm2835
     CONFIG_SPI=y \
     CONFIG_SPI_BCM2835 \
     CONFIG_SPI_MASTER=y
-  FILES:=$(LINUX_DIR)/drivers/spi/spi-bcm2835.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/spi/spi-bcm2835.ko
   AUTOLOAD:=$(call AutoLoad,89,spi-bcm2835)
   DEPENDS:=@TARGET_bcm27xx
 endef
@@ -28,7 +28,7 @@  define KernelPackage/spi-bcm2835-aux
     CONFIG_SPI=y \
     CONFIG_SPI_BCM2835AUX \
     CONFIG_SPI_MASTER=y
-  FILES:=$(LINUX_DIR)/drivers/spi/spi-bcm2835aux.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/spi/spi-bcm2835aux.ko
   AUTOLOAD:=$(call AutoLoad,89,spi-bcm2835aux)
   DEPENDS:=@TARGET_bcm27xx
 endef
diff --git a/target/linux/bcm27xx/modules/video.mk b/target/linux/bcm27xx/modules/video.mk
index 86fc44c0a4..9d538d61bc 100644
--- a/target/linux/bcm27xx/modules/video.mk
+++ b/target/linux/bcm27xx/modules/video.mk
@@ -15,7 +15,7 @@  define KernelPackage/camera-bcm2835
     CONFIG_VIDEO_IMX708=n \
     CONFIG_VIDEO_ISP_BCM2835=n
   FILES:= \
-    $(LINUX_DIR)/drivers/staging/vc04_services/bcm2835-camera/bcm2835-v4l2.ko
+    $(LINUX_OBJ_DIR)/drivers/staging/vc04_services/bcm2835-camera/bcm2835-v4l2.ko
   AUTOLOAD:=$(call AutoLoad,65,bcm2835-v4l2)
   $(call AddDepends/video,@TARGET_bcm27xx +kmod-vchiq-mmal-bcm2835 +kmod-video-videobuf2)
 endef
@@ -42,11 +42,11 @@  define KernelPackage/drm-vc4
     CONFIG_DRM_V3D=n \
     CONFIG_DRM_TVE200=n
   FILES:= \
-    $(LINUX_DIR)/drivers/gpu/drm/display/drm_display_helper.ko \
-    $(LINUX_DIR)/drivers/gpu/drm/drm_dma_helper.ko \
-    $(LINUX_DIR)/drivers/gpu/drm/vc4/vc4.ko \
-    $(LINUX_DIR)/drivers/gpu/drm/drm_kms_helper.ko \
-    $(LINUX_DIR)/drivers/media/cec/core/cec.ko
+    $(LINUX_OBJ_DIR)/drivers/gpu/drm/display/drm_display_helper.ko \
+    $(LINUX_OBJ_DIR)/drivers/gpu/drm/drm_dma_helper.ko \
+    $(LINUX_OBJ_DIR)/drivers/gpu/drm/vc4/vc4.ko \
+    $(LINUX_OBJ_DIR)/drivers/gpu/drm/drm_kms_helper.ko \
+    $(LINUX_OBJ_DIR)/drivers/media/cec/core/cec.ko
   AUTOLOAD:=$(call AutoProbe,vc4)
 endef
 
@@ -63,7 +63,7 @@  define KernelPackage/vc-sm-cma
   KCONFIG:= \
     CONFIG_BCM_VC_SM_CMA
   FILES:= \
-    $(LINUX_DIR)/drivers/staging/vc04_services/vc-sm-cma/vc-sm-cma.ko
+    $(LINUX_OBJ_DIR)/drivers/staging/vc04_services/vc-sm-cma/vc-sm-cma.ko
   $(call AddDepends/video,@TARGET_bcm27xx)
 endef
 
@@ -81,7 +81,7 @@  define KernelPackage/vchiq-mmal-bcm2835
     CONFIG_BCM2835_VCHIQ_MMAL \
     CONFIG_VIDEO_CODEC_BCM2835=n
   FILES:= \
-    $(LINUX_DIR)/drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq.ko
+    $(LINUX_OBJ_DIR)/drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq.ko
   $(call AddDepends/video,@TARGET_bcm27xx +kmod-vc-sm-cma)
 endef
 
diff --git a/target/linux/bcm47xx/modules.mk b/target/linux/bcm47xx/modules.mk
index 5924694a53..e6622ae6e5 100644
--- a/target/linux/bcm47xx/modules.mk
+++ b/target/linux/bcm47xx/modules.mk
@@ -8,9 +8,9 @@  define KernelPackage/bgmac
   DEPENDS:=@TARGET_bcm47xx @!TARGET_bcm47xx_legacy
   SUBMENU:=$(NETWORK_DEVICES_MENU)
   FILES:= \
-	$(LINUX_DIR)/drivers/net/ethernet/broadcom/bgmac-bcma.ko \
-	$(LINUX_DIR)/drivers/net/ethernet/broadcom/bgmac-bcma-mdio.ko \
-	$(LINUX_DIR)/drivers/net/ethernet/broadcom/bgmac.ko
+	$(LINUX_OBJ_DIR)/drivers/net/ethernet/broadcom/bgmac-bcma.ko \
+	$(LINUX_OBJ_DIR)/drivers/net/ethernet/broadcom/bgmac-bcma-mdio.ko \
+	$(LINUX_OBJ_DIR)/drivers/net/ethernet/broadcom/bgmac.ko
   AUTOLOAD:=$(call AutoProbe,bgmac-bcma)
 endef
 
diff --git a/target/linux/bcm53xx/modules.mk b/target/linux/bcm53xx/modules.mk
index 4b28923d8b..a946bf07ce 100644
--- a/target/linux/bcm53xx/modules.mk
+++ b/target/linux/bcm53xx/modules.mk
@@ -7,7 +7,7 @@  define KernelPackage/phy-bcm-ns-usb2
   KCONFIG:=CONFIG_PHY_BCM_NS_USB2
   DEPENDS:=@TARGET_bcm53xx
   SUBMENU:=$(USB_MENU)
-  FILES:=$(LINUX_DIR)/drivers/phy/broadcom/phy-bcm-ns-usb2.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/phy/broadcom/phy-bcm-ns-usb2.ko
   AUTOLOAD:=$(call AutoLoad,45,phy-bcm-ns-usb2,1)
 endef
 
@@ -23,7 +23,7 @@  define KernelPackage/phy-bcm-ns-usb3
   KCONFIG:=CONFIG_PHY_BCM_NS_USB3
   DEPENDS:=@TARGET_bcm53xx
   SUBMENU:=$(USB_MENU)
-  FILES:=$(LINUX_DIR)/drivers/phy/broadcom/phy-bcm-ns-usb3.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/phy/broadcom/phy-bcm-ns-usb3.ko
   AUTOLOAD:=$(call AutoLoad,45,phy-bcm-ns-usb3,1)
 endef
 
@@ -41,7 +41,7 @@  define KernelPackage/i2c-bcm-iproc
 	CONFIG_I2C_SLAVE_TESTUNIT=n
   DEPENDS:=@TARGET_bcm53xx +kmod-i2c-core
   SUBMENU:=$(I2C_MENU)
-  FILES:=$(LINUX_DIR)/drivers/i2c/busses/i2c-bcm-iproc.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/i2c/busses/i2c-bcm-iproc.ko
   AUTOLOAD:=$(call AutoLoad,59,i2c-bcm-iproc,1)
 endef
 
diff --git a/target/linux/bcm63xx/modules.mk b/target/linux/bcm63xx/modules.mk
index c329f3865a..f1de5d9efb 100644
--- a/target/linux/bcm63xx/modules.mk
+++ b/target/linux/bcm63xx/modules.mk
@@ -7,7 +7,7 @@  define KernelPackage/pcmcia-bcm63xx
   TITLE:=Broadcom BCM63xx PCMCIA support
   DEPENDS:=@TARGET_bcm63xx +kmod-pcmcia-rsrc
   KCONFIG:=CONFIG_PCMCIA_BCM63XX
-  FILES:=$(LINUX_DIR)/drivers/pcmcia/bcm63xx_pcmcia.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/pcmcia/bcm63xx_pcmcia.ko
   AUTOLOAD:=$(call AutoLoad,41,bcm63xx_pcmcia)
 endef
 
@@ -23,7 +23,7 @@  define KernelPackage/bcm63xx-udc
   DEPENDS:=@TARGET_bcm63xx +kmod-usb-gadget
   KCONFIG:=CONFIG_USB_BCM63XX_UDC
   FILES:= \
-	$(LINUX_DIR)/drivers/usb/gadget/udc/bcm63xx_udc.ko
+	$(LINUX_OBJ_DIR)/drivers/usb/gadget/udc/bcm63xx_udc.ko
   AUTOLOAD:=$(call AutoLoad,51,bcm63xx_udc)
   $(call AddDepends/usb)
 endef
diff --git a/target/linux/bmips/modules.mk b/target/linux/bmips/modules.mk
index 3032dab709..0ecd6ad798 100644
--- a/target/linux/bmips/modules.mk
+++ b/target/linux/bmips/modules.mk
@@ -4,7 +4,7 @@  define KernelPackage/leds-bcm6328
   SUBMENU:=$(LEDS_MENU)
   TITLE:=BCM6328 LED support
   KCONFIG:=CONFIG_LEDS_BCM6328
-  FILES:=$(LINUX_DIR)/drivers/leds/leds-bcm6328.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/leds/leds-bcm6328.ko
   DEPENDS:=@TARGET_bmips
   AUTOLOAD:=$(call AutoLoad,60,leds-bcm6328,1)
 endef
@@ -19,7 +19,7 @@  define KernelPackage/leds-bcm6358
   SUBMENU:=$(LEDS_MENU)
   TITLE:=BCM6358 LED support
   KCONFIG:=CONFIG_LEDS_BCM6358
-  FILES:=$(LINUX_DIR)/drivers/leds/leds-bcm6358.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/leds/leds-bcm6358.ko
   DEPENDS:=@TARGET_bmips
   AUTOLOAD:=$(call AutoLoad,60,leds-bcm6358,1)
 endef
@@ -34,7 +34,7 @@  define KernelPackage/leds-sercomm-msp430
   SUBMENU:=$(LEDS_MENU)
   TITLE:=Sercomm MSP430G2513 LED support
   KCONFIG:=CONFIG_LEDS_SERCOMM_MSP430
-  FILES:=$(LINUX_DIR)/drivers/leds/leds-sercomm-msp430.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/leds/leds-sercomm-msp430.ko
   DEPENDS:=@TARGET_bmips +kmod-ledtrig-pattern
   AUTOLOAD:=$(call AutoLoad,60,leds-sercomm-msp430,1)
 endef
diff --git a/target/linux/gemini/modules.mk b/target/linux/gemini/modules.mk
index 5f544d12c7..b0832d463d 100644
--- a/target/linux/gemini/modules.mk
+++ b/target/linux/gemini/modules.mk
@@ -5,7 +5,7 @@  define KernelPackage/usb-fotg210
   CONFIG_USB_FOTG210 \
   CONFIG_USB_FOTG210_HCD=y \
   CONFIG_USB_FOTG210_UDC=y
-  FILES:=$(LINUX_DIR)/drivers/usb/fotg210/fotg210.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/fotg210/fotg210.ko
   AUTOLOAD:=$(call AutoLoad,50,fotg210,1)
   $(call AddDepends/usb)
 endef
diff --git a/target/linux/ipq806x/modules.mk b/target/linux/ipq806x/modules.mk
index a2b844d0f0..1d7f283c51 100644
--- a/target/linux/ipq806x/modules.mk
+++ b/target/linux/ipq806x/modules.mk
@@ -3,7 +3,7 @@  define KernelPackage/phy-qcom-ipq806x-usb
   DEPENDS:=@TARGET_ipq806x
   KCONFIG:= CONFIG_PHY_QCOM_IPQ806X_USB
   FILES:= \
-    $(LINUX_DIR)/drivers/phy/qualcomm/phy-qcom-ipq806x-usb.ko
+    $(LINUX_OBJ_DIR)/drivers/phy/qualcomm/phy-qcom-ipq806x-usb.ko
   AUTOLOAD:=$(call AutoLoad,45,phy-qcom-ipq806x-usb,1)
   $(call AddDepends/usb)
 endef
@@ -26,12 +26,12 @@  define KernelPackage/sound-soc-ipq8064-storm
 	CONFIG_SND_SOC_APQ8016_SBC=n \
 	CONFIG_SND_SOC_SC7180=n
   FILES:=\
-	$(LINUX_DIR)/drivers/clk/qcom/lcc-ipq806x.ko \
-	$(LINUX_DIR)/sound/soc/codecs/snd-soc-max98357a.ko \
-	$(LINUX_DIR)/sound/soc/qcom/snd-soc-lpass-cpu.ko \
-	$(LINUX_DIR)/sound/soc/qcom/snd-soc-lpass-ipq806x.ko \
-	$(LINUX_DIR)/sound/soc/qcom/snd-soc-lpass-platform.ko \
-	$(LINUX_DIR)/sound/soc/qcom/snd-soc-storm.ko
+	$(LINUX_OBJ_DIR)/drivers/clk/qcom/lcc-ipq806x.ko \
+	$(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-max98357a.ko \
+	$(LINUX_OBJ_DIR)/sound/soc/qcom/snd-soc-lpass-cpu.ko \
+	$(LINUX_OBJ_DIR)/sound/soc/qcom/snd-soc-lpass-ipq806x.ko \
+	$(LINUX_OBJ_DIR)/sound/soc/qcom/snd-soc-lpass-platform.ko \
+	$(LINUX_OBJ_DIR)/sound/soc/qcom/snd-soc-storm.ko
   AUTOLOAD:=$(call AutoProbe,lcc-ipq806x \
 	snd-soc-max98357a snd-soc-lpass-ipq806x snd-soc-storm)
   $(call AddDepends/sound)
diff --git a/target/linux/kirkwood/modules.mk b/target/linux/kirkwood/modules.mk
index 1543098cd4..e4a8cb2f6c 100644
--- a/target/linux/kirkwood/modules.mk
+++ b/target/linux/kirkwood/modules.mk
@@ -2,7 +2,7 @@  define KernelPackage/ata-marvell-sata
   TITLE:=Marvell Serial ATA support
   DEPENDS:=@TARGET_kirkwood
   KCONFIG:=CONFIG_SATA_MV CONFIG_SATA_PMP=y
-  FILES:=$(LINUX_DIR)/drivers/ata/sata_mv.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/ata/sata_mv.ko
   AUTOLOAD:=$(call AutoLoad,41,sata_mv,1)
   $(call AddDepends/ata)
 endef
@@ -19,7 +19,7 @@  define KernelPackage/mvsdio
   DEPENDS:=+kmod-mmc @TARGET_kirkwood
   KCONFIG:= CONFIG_MMC_MVSDIO
   FILES:= \
-	$(LINUX_DIR)/drivers/mmc/host/mvsdio.ko
+	$(LINUX_OBJ_DIR)/drivers/mmc/host/mvsdio.ko
   AUTOLOAD:=$(call AutoProbe,mvsdio,1)
 endef
 
diff --git a/target/linux/layerscape/modules.mk b/target/linux/layerscape/modules.mk
index 9aa11e08fb..8de633ae9a 100644
--- a/target/linux/layerscape/modules.mk
+++ b/target/linux/layerscape/modules.mk
@@ -6,7 +6,7 @@  define KernelPackage/ahci-qoriq
   SUBMENU:=$(BLOCK_MENU)
   TITLE:=Freescale QorIQ AHCI SATA support
   KCONFIG:=CONFIG_AHCI_QORIQ
-  FILES:=$(LINUX_DIR)/drivers/ata/ahci_qoriq.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/ata/ahci_qoriq.ko
   AUTOLOAD:=$(call AutoLoad,40,ahci-qoriq,1)
   $(call AddDepends/ata,+kmod-ata-ahci-platform @TARGET_layerscape)
 endef
@@ -24,7 +24,7 @@  define KernelPackage/ppfe
   DEPENDS:=@TARGET_layerscape
   KCONFIG:=CONFIG_FSL_PPFE \
   	CONFIG_FSL_PPFE_UTIL_DISABLED=y
-  FILES:=$(LINUX_DIR)/drivers/staging/fsl_ppfe/pfe.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/staging/fsl_ppfe/pfe.ko
   AUTOLOAD:=$(call AutoLoad,35,pfe)
 endef
 
diff --git a/target/linux/mediatek/modules.mk b/target/linux/mediatek/modules.mk
index 8480123725..2f8c780fc8 100644
--- a/target/linux/mediatek/modules.mk
+++ b/target/linux/mediatek/modules.mk
@@ -2,8 +2,8 @@  define KernelPackage/ata-ahci-mtk
   TITLE:=Mediatek AHCI Serial ATA support
   KCONFIG:=CONFIG_AHCI_MTK
   FILES:= \
-	$(LINUX_DIR)/drivers/ata/ahci_mtk.ko \
-	$(LINUX_DIR)/drivers/ata/libahci_platform.ko
+	$(LINUX_OBJ_DIR)/drivers/ata/ahci_mtk.ko \
+	$(LINUX_OBJ_DIR)/drivers/ata/libahci_platform.ko
   AUTOLOAD:=$(call AutoLoad,40,libahci libahci_platform ahci_mtk,1)
   $(call AddDepends/ata)
   DEPENDS+=@(TARGET_mediatek_mt7622||TARGET_mediatek_mt7623)
@@ -21,7 +21,7 @@  define KernelPackage/btmtkuart
   DEPENDS:=@TARGET_mediatek_mt7622 +kmod-bluetooth +mt7622bt-firmware
   KCONFIG:=CONFIG_BT_MTKUART
   FILES:= \
-	$(LINUX_DIR)/drivers/bluetooth/btmtkuart.ko
+	$(LINUX_OBJ_DIR)/drivers/bluetooth/btmtkuart.ko
   AUTOLOAD:=$(call AutoProbe,btmtkuart)
 endef
 
@@ -32,7 +32,7 @@  define KernelPackage/iio-mt6577-auxadc
   DEPENDS:=@(TARGET_mediatek_mt7622||TARGET_mediatek_filogic)
   KCONFIG:=CONFIG_MEDIATEK_MT6577_AUXADC
   FILES:= \
-	$(LINUX_DIR)/drivers/iio/adc/mt6577_auxadc.ko
+	$(LINUX_OBJ_DIR)/drivers/iio/adc/mt6577_auxadc.ko
   AUTOLOAD:=$(call AutoProbe,mt6577_auxadc)
   $(call AddDepends/iio)
 endef
diff --git a/target/linux/mvebu/modules.mk b/target/linux/mvebu/modules.mk
index 311cc07c7f..7c22b32d34 100644
--- a/target/linux/mvebu/modules.mk
+++ b/target/linux/mvebu/modules.mk
@@ -3,7 +3,7 @@  define KernelPackage/linkstation-poweroff
   DEPENDS:=@TARGET_mvebu
   TITLE:=Buffalo LinkStation power off driver
   KCONFIG:=CONFIG_POWER_RESET_LINKSTATION
-  FILES:=$(LINUX_DIR)/drivers/power/reset/linkstation-poweroff.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/power/reset/linkstation-poweroff.ko
   AUTOLOAD:=$(call AutoLoad,31,linkstation-poweroff,1)
 endef
 
@@ -22,7 +22,7 @@  define KernelPackage/leds-turris-omnia
    TITLE:=LED support for CZ.NIC's Turris Omnia
    DEPENDS:=@TARGET_mvebu_cortexa9
    KCONFIG:=CONFIG_LEDS_TURRIS_OMNIA
-   FILES:=$(LINUX_DIR)/drivers/leds/leds-turris-omnia.ko
+   FILES:=$(LINUX_OBJ_DIR)/drivers/leds/leds-turris-omnia.ko
    AUTOLOAD:=$(call AutoLoad,60,leds-turris-omnia,1)
 endef
 
diff --git a/target/linux/oxnas/modules.mk b/target/linux/oxnas/modules.mk
index 35d03c5d61..b6a8f370fa 100644
--- a/target/linux/oxnas/modules.mk
+++ b/target/linux/oxnas/modules.mk
@@ -1,7 +1,7 @@ 
 define KernelPackage/ata-oxnas-sata
   TITLE:=oxnas Serial ATA support
   KCONFIG:=CONFIG_SATA_OXNAS
-  FILES:=$(LINUX_DIR)/drivers/ata/sata_oxnas.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/ata/sata_oxnas.ko
   AUTOLOAD:=$(call AutoLoad,41,sata_oxnas,1)
   $(call AddDepends/ata,@TARGET_oxnas)
 endef
@@ -16,7 +16,7 @@  $(eval $(call KernelPackage,ata-oxnas-sata))
 define KernelPackage/usb2-oxnas
   TITLE:=OX820 EHCI driver
   KCONFIG:=CONFIG_USB_EHCI_OXNAS
-  FILES:=$(LINUX_DIR)/drivers/usb/host/ehci-oxnas.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/usb/host/ehci-oxnas.ko
   AUTOLOAD:=$(call AutoLoad,55,ehci-oxnas,1)
   $(call AddDepends/usb,@TARGET_oxnas_ox820 +kmod-usb2)
 endef
diff --git a/target/linux/ramips/modules.mk b/target/linux/ramips/modules.mk
index 6f199c46a2..373b8a9aef 100644
--- a/target/linux/ramips/modules.mk
+++ b/target/linux/ramips/modules.mk
@@ -13,7 +13,7 @@  define KernelPackage/pwm-mediatek-ramips
 	CONFIG_PWM_MEDIATEK_RAMIPS \
 	CONFIG_PWM_SYSFS=y
   FILES:= \
-	$(LINUX_DIR)/drivers/pwm/pwm-mediatek-ramips.ko
+	$(LINUX_OBJ_DIR)/drivers/pwm/pwm-mediatek-ramips.ko
   AUTOLOAD:=$(call AutoProbe,pwm-mediatek-ramips)
 endef
 
@@ -32,7 +32,7 @@  define KernelPackage/sdhci-mt7620
 	CONFIG_MTK_AEE_KDUMP=n \
 	CONFIG_MTK_MMC_CD_POLL=n
   FILES:= \
-	$(LINUX_DIR)/drivers/mmc/host/mtk-mmc/mtk_sd.ko
+	$(LINUX_OBJ_DIR)/drivers/mmc/host/mtk-mmc/mtk_sd.ko
   AUTOLOAD:=$(call AutoProbe,mtk_sd,1)
 endef
 
@@ -80,8 +80,8 @@  define KernelPackage/dma-ralink
 	CONFIG_DW_DMAC_PCI=n \
 	CONFIG_DMA_RALINK
   FILES:= \
-	$(LINUX_DIR)/drivers/dma/virt-dma.ko \
-	$(LINUX_DIR)/drivers/staging/ralink-gdma/ralink-gdma.ko
+	$(LINUX_OBJ_DIR)/drivers/dma/virt-dma.ko \
+	$(LINUX_OBJ_DIR)/drivers/staging/ralink-gdma/ralink-gdma.ko
   AUTOLOAD:=$(call AutoLoad,52,ralink-gdma)
 endef
 
@@ -100,8 +100,8 @@  define KernelPackage/hsdma-mtk
 	CONFIG_DW_DMAC_PCI=n \
 	CONFIG_MTK_HSDMA
   FILES:= \
-	$(LINUX_DIR)/drivers/dma/virt-dma.ko \
-	$(LINUX_DIR)/drivers/staging/mt7621-dma/hsdma-mt7621.ko
+	$(LINUX_OBJ_DIR)/drivers/dma/virt-dma.ko \
+	$(LINUX_OBJ_DIR)/drivers/staging/mt7621-dma/hsdma-mt7621.ko
   AUTOLOAD:=$(call AutoLoad,53,hsdma-mt7621)
 endef
 
@@ -120,10 +120,10 @@  define KernelPackage/sound-mt7620
 	CONFIG_SND_SIMPLE_CARD_UTILS \
 	CONFIG_SND_SOC_WM8960
   FILES:= \
-	$(LINUX_DIR)/sound/soc/ralink/snd-soc-ralink-i2s.ko \
-	$(LINUX_DIR)/sound/soc/generic/snd-soc-simple-card.ko \
-	$(LINUX_DIR)/sound/soc/generic/snd-soc-simple-card-utils.ko \
-	$(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8960.ko
+	$(LINUX_OBJ_DIR)/sound/soc/ralink/snd-soc-ralink-i2s.ko \
+	$(LINUX_OBJ_DIR)/sound/soc/generic/snd-soc-simple-card.ko \
+	$(LINUX_OBJ_DIR)/sound/soc/generic/snd-soc-simple-card-utils.ko \
+	$(LINUX_OBJ_DIR)/sound/soc/codecs/snd-soc-wm8960.ko
   AUTOLOAD:=$(call AutoLoad,90,snd-soc-wm8960 snd-soc-ralink-i2s snd-soc-simple-card)
   $(call AddDepends/sound)
 endef
diff --git a/target/linux/sunxi/modules.mk b/target/linux/sunxi/modules.mk
index 28ed86ba4c..f04c756c63 100644
--- a/target/linux/sunxi/modules.mk
+++ b/target/linux/sunxi/modules.mk
@@ -8,7 +8,7 @@  define KernelPackage/mfd-ac100
     DEPENDS:=@TARGET_sunxi
     KCONFIG:= \
 	CONFIG_MFD_AC100
-    FILES:=$(LINUX_DIR)/drivers/mfd/ac100.ko
+    FILES:=$(LINUX_OBJ_DIR)/drivers/mfd/ac100.ko
     AUTOLOAD:=$(call AutoLoad,50,ac100)
 endef
 
@@ -26,7 +26,7 @@  define KernelPackage/rtc-ac100
     KCONFIG:= \
 	CONFIG_RTC_DRV_AC100 \
 	CONFIG_RTC_CLASS=y
-    FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ac100.ko
+    FILES:=$(LINUX_OBJ_DIR)/drivers/rtc/rtc-ac100.ko
     AUTOLOAD:=$(call AutoLoad,50,rtc-ac100)
 endef
 
@@ -43,7 +43,7 @@  define KernelPackage/rtc-sunxi
     KCONFIG:= \
 	CONFIG_RTC_DRV_SUNXI \
 	CONFIG_RTC_CLASS=y
-    FILES:=$(LINUX_DIR)/drivers/rtc/rtc-sunxi.ko
+    FILES:=$(LINUX_OBJ_DIR)/drivers/rtc/rtc-sunxi.ko
     AUTOLOAD:=$(call AutoLoad,50,rtc-sunxi)
 endef
 
@@ -63,7 +63,7 @@  define KernelPackage/sunxi-ir
 	CONFIG_RC_DEVICES=y \
 	CONFIG_RC_CORE=y \
 	CONFIG_IR_SUNXI
-    FILES:=$(LINUX_DIR)/drivers/media/rc/sunxi-cir.ko
+    FILES:=$(LINUX_OBJ_DIR)/drivers/media/rc/sunxi-cir.ko
     AUTOLOAD:=$(call AutoLoad,50,sunxi-cir)
 endef
 
@@ -78,7 +78,7 @@  define KernelPackage/ata-sunxi
     SUBMENU:=$(BLOCK_MENU)
     DEPENDS:=@TARGET_sunxi +kmod-ata-ahci-platform +kmod-scsi-core
     KCONFIG:=CONFIG_AHCI_SUNXI
-    FILES:=$(LINUX_DIR)/drivers/ata/ahci_sunxi.ko
+    FILES:=$(LINUX_OBJ_DIR)/drivers/ata/ahci_sunxi.ko
     AUTOLOAD:=$(call AutoLoad,41,ahci_sunxi,1)
 endef
 
@@ -93,7 +93,7 @@  define KernelPackage/sun4i-emac
   TITLE:=AllWinner EMAC Ethernet support
   DEPENDS:=@TARGET_sunxi +kmod-of-mdio +kmod-libphy
   KCONFIG:=CONFIG_SUN4I_EMAC
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/allwinner/sun4i-emac.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/allwinner/sun4i-emac.ko
   AUTOLOAD:=$(call AutoProbe,sun4i-emac)
 endef
 
@@ -102,7 +102,7 @@  $(eval $(call KernelPackage,sun4i-emac))
 define KernelPackage/sound-soc-sunxi
   TITLE:=AllWinner built-in SoC sound support
   KCONFIG:=CONFIG_SND_SUN4I_CODEC
-  FILES:=$(LINUX_DIR)/sound/soc/sunxi/sun4i-codec.ko
+  FILES:=$(LINUX_OBJ_DIR)/sound/soc/sunxi/sun4i-codec.ko
   AUTOLOAD:=$(call AutoLoad,65,sun4i-codec)
   DEPENDS:=@TARGET_sunxi +kmod-sound-soc-core
   $(call AddDepends/sound)
@@ -117,7 +117,7 @@  $(eval $(call KernelPackage,sound-soc-sunxi))
 define KernelPackage/sound-soc-sunxi-spdif
   TITLE:=Allwinner A10 SPDIF Support
   KCONFIG:=CONFIG_SND_SUN4I_SPDIF
-  FILES:=$(LINUX_DIR)/sound/soc/sunxi/sun4i-spdif.ko
+  FILES:=$(LINUX_OBJ_DIR)/sound/soc/sunxi/sun4i-spdif.ko
   AUTOLOAD:=$(call AutoLoad,65,sun4i-spdif)
   DEPENDS:=@TARGET_sunxi +kmod-sound-soc-spdif
   $(call AddDepends/sound)
diff --git a/target/linux/x86/modules.mk b/target/linux/x86/modules.mk
index f5f225d06f..d8b3f9003b 100644
--- a/target/linux/x86/modules.mk
+++ b/target/linux/x86/modules.mk
@@ -7,7 +7,7 @@  define KernelPackage/amd-xgbe
   TITLE:=AMD Ethernet on SoC support
   DEPENDS:=@PCI_SUPPORT @x86_64 +kmod-lib-crc32c +kmod-ptp +kmod-libphy +kmod-mdio-devres
   KCONFIG:=CONFIG_AMD_XGBE
-  FILES:=$(LINUX_DIR)/drivers/net/ethernet/amd/xgbe/amd-xgbe.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/net/ethernet/amd/xgbe/amd-xgbe.ko
   AUTOLOAD:=$(call AutoLoad,35,amd-xgbe)
 endef
 
@@ -25,7 +25,7 @@  define KernelPackage/f71808e-wdt
   KCONFIG:=\
 	CONFIG_F71808E_WDT \
 	CONFIG_WATCHDOG_CORE=y
-  FILES:=$(LINUX_DIR)/drivers/watchdog/f71808e_wdt.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/watchdog/f71808e_wdt.ko
   AUTOLOAD:=$(call AutoProbe,f71808e-wdt,1)
 endef
 
@@ -40,7 +40,7 @@  define KernelPackage/sound-cs5535audio
   TITLE:=CS5535/CS5536 Audio Controller
   DEPENDS:=@TARGET_x86_geode +kmod-ac97
   KCONFIG:=CONFIG_SND_CS5535AUDIO
-  FILES:=$(LINUX_DIR)/sound/pci/cs5535audio/snd-cs5535audio.ko
+  FILES:=$(LINUX_OBJ_DIR)/sound/pci/cs5535audio/snd-cs5535audio.ko
   AUTOLOAD:=$(call AutoLoad,36,snd-cs5535audio)
   $(call AddDepends/sound)
 endef
@@ -57,7 +57,7 @@  define KernelPackage/sp5100-tco
   TITLE:=SP5100 Watchdog Support
   DEPENDS:=@TARGET_x86
   KCONFIG:=CONFIG_SP5100_TCO
-  FILES:=$(LINUX_DIR)/drivers/watchdog/sp5100_tco.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/watchdog/sp5100_tco.ko
   AUTOLOAD:=$(call AutoLoad,50,sp5100_tco,1)
 endef
 
@@ -73,7 +73,7 @@  define KernelPackage/ib700-wdt
   TITLE:=IB700 SBC Watchdog Timer
   DEPENDS:=@TARGET_x86
   KCONFIG:=CONFIG_IB700_WDT
-  FILES:=$(LINUX_DIR)/drivers/watchdog/ib700wdt.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/watchdog/ib700wdt.ko
   AUTOLOAD:=$(call AutoLoad,50,ib700wdt,1)
 endef
 
@@ -90,7 +90,7 @@  define KernelPackage/it87-wdt
   TITLE:=ITE IT87 Watchdog Timer
   DEPENDS:=@TARGET_x86
   KCONFIG:=CONFIG_IT87_WDT
-  FILES:=$(LINUX_DIR)/drivers/watchdog/it87_wdt.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/watchdog/it87_wdt.ko
   AUTOLOAD:=$(call AutoLoad,50,it87-wdt,1)
   MODPARAMS.it87-wdt:= \
 	nogameport=1 \
@@ -112,8 +112,8 @@  define KernelPackage/itco-wdt
 	CONFIG_ITCO_WDT \
 	CONFIG_ITCO_VENDOR_SUPPORT=y \
 	CONFIG_WATCHDOG_CORE=y
-  FILES:=$(LINUX_DIR)/drivers/watchdog/iTCO_wdt.ko \
-         $(LINUX_DIR)/drivers/watchdog/iTCO_vendor_support.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/watchdog/iTCO_wdt.ko \
+         $(LINUX_OBJ_DIR)/drivers/watchdog/iTCO_vendor_support.ko
   AUTOLOAD:=$(call AutoLoad,50,iTCO_vendor_support iTCO_wdt,1)
 endef
 
@@ -129,7 +129,7 @@  define KernelPackage/pcengines-apuv2
   TITLE:=PC Engines APUv2/3 front button and LEDs driver
   DEPENDS:=@TARGET_x86 +kmod-gpio-amd-fch +kmod-leds-gpio
   KCONFIG:=CONFIG_PCENGINES_APU2
-  FILES:=$(LINUX_DIR)/drivers/platform/x86/pcengines-apuv2.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/platform/x86/pcengines-apuv2.ko
   AUTOLOAD:=$(call AutoLoad,60,pcengines-apuv2)
 endef
 
@@ -148,7 +148,7 @@  define KernelPackage/meraki-mx100
     +kmod-usb-ledtrig-usbport +PACKAGE_kmod-meraki-mx100:nu801 +kmod-itco-wdt \
     +kmod-leds-uleds
   KCONFIG:=CONFIG_MERAKI_MX100
-  FILES:=$(LINUX_DIR)/drivers/platform/x86/meraki-mx100.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/platform/x86/meraki-mx100.ko
   AUTOLOAD:=$(call AutoLoad,60,meraki-mx100,1)
 endef
 
@@ -168,7 +168,7 @@  define KernelPackage/w83627hf-wdt
   KCONFIG:=\
 	CONFIG_W83627HF_WDT \
 	CONFIG_WATCHDOG_CORE=y
-  FILES:=$(LINUX_DIR)/drivers/watchdog/w83627hf_wdt.ko
+  FILES:=$(LINUX_OBJ_DIR)/drivers/watchdog/w83627hf_wdt.ko
   AUTOLOAD:=$(call AutoLoad,50,w83627hf-wdt,1)
 endef