美文网首页
[RaspberyPi] 驱动编译 - 缺少Module.sym

[RaspberyPi] 驱动编译 - 缺少Module.sym

作者: Cocoonshu | 来源:发表于2019-02-28 16:38 被阅读0次

    在树莓派上编译驱动时,可能会遇到缺失Module.symvers的Warning。如下所示,

    make -C /home/pi/Subversions/drivers/4.14.79/linux M=/home/pi/Subversions/driver                                                          s modules ARCH=arm
    make[1]: Entering directory '/home/pi/Subversions/drivers/4.14.79/linux'
    
      WARNING: Symbol version dump ./Module.symvers
               is missing; modules will have no dependencies and modversions.
    
      CC [M]  /home/pi/Subversions/drivers/dummy_driver.o
      Building modules, stage 2.
      MODPOST 1 modules
      CC      /home/pi/Subversions/drivers/dummy_driver.mod.o
      LD [M]  /home/pi/Subversions/drivers/dummy_driver.ko
    make[1]: Leaving directory '/home/pi/Subversions/drivers/4.14.79/linux'
    

    原因

    在编译驱动前,要先下载内核源码来编译内核树,编译的步骤通常是:

    • make menuconfig, 指定编译选项
    • make, 编译内核

    Module.symvers是在编译modules时才会生成的,仅仅make不会去编译modules。

    解决方法

    把编译步骤改为内核编译完成后在编译modules,既会在内核树的根目录下生成Module.symvers文件。编译步骤如下:

    • make menuconfig, 指定编译选项
    • make, 编译内核
    • make modules,编译模组
    • 拷贝内核树下的Module.symvers文件到驱动源码目录
    • 编译驱动

    编译结果不再出现缺失Module.symvers的Warning:

    make -C /home/pi/Subversions/drivers/4.14.79/linux M=/home/pi/Subversions/drivers modules ARCH=arm
    make[1]: Entering directory '/home/pi/Subversions/drivers/4.14.79/linux'
      Building modules, stage 2.
      MODPOST 1 modules
    make[1]: Leaving directory '/home/pi/Subversions/drivers/4.14.79/linux'
    

    相关文章

      网友评论

          本文标题:[RaspberyPi] 驱动编译 - 缺少Module.sym

          本文链接:https://www.haomeiwen.com/subject/eqhkuqtx.html