我的客户将预制的内核输出目录发送给我(他们无法将内核源代码树发布给我们)。该输出目录如下(在/home/michael/Clients/android_p_Hzh/kernel/kernel/下):

  • 阻止
  • build-in.o
  • 证书
  • ...
  • .config
  • Makefile
  • Module.symvers
  • 源(到我的客户的文件系统中的本地源树的符号链接(symbolic link))

  • 是否可以使用此目录构建我的外部模块?

    /home/michael/Source/Linux/br_driver是我的驱动程序目录。我试图在以下目录下构建我的驱动程序,如下所示:make命令:



    它失败,输出如下:
    *** No rule to make target '/home/michael/Source/Linux/br_driver/common.o' needed by ...
    

    br_driver下的Makefile如下所示:
    brt-objs := $(BRTOFILES)
    obj-$(DRIVER_TYPE)   += brt.o
    
    all:
        @echo "$(MAKE) --no-print-directory -C $(KDIR) SUBDIRS=$(CURDIR) modules"
        @$(MAKE) --no-print-directory -C $(KDIR) SUBDIRS=$(CURDIR) modules
    
    clean:
        rm -rf *.o *.ko *.mod.c *~ .*.cmd *.o.cmd .*.o.cmd \
        Module.symvers modules.order .tmp_versions modules.builtin
    
    install:
        @$(MAKE) --no-print-directory -C $(KDIR) \
            SUBDIRS=$(CURDIR) modules_install
    

    最佳答案

    我已经解决了这个问题。我唯一需要的是.config和Modules.symvers。关键操作是make oldconfig modules_prepare

    10-04 11:17
    查看更多