Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

    【FAQ】全志R329如何解决Tina删除内核根目录.config后一直编译失败的问题?

    其它全志芯片讨论区
    r329 r328 r818 faq 技术支持
    1
    1
    1196
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • q1215200171
      budbool LV 9 last edited by

      问题描述

      客户删除Tina内核根目录下的.config文件后,按照正常流程编译会失败,log如下,提示找不到内核根目录下的.config文件。

      make[4]: *** No rule to make target `/home/XXX/work/tina/out/rxxx-evb1/compile_dir/target/linux-rxxx-evb1/linux-x.x.x/.config', needed by `/home/XXX/work/tina/out/rxxx-evb1/compile_dir/target/linux-rxxx-evb1/linux-x.x.x/.modules'.  Stop.
      make[4]: Leaving directory `/home/XXX/work/tina/target/allwinner/rxxx-evb1'
      make[3]: *** [compile] Error 2
      make[3]: Leaving directory `/home/XXX/work/tina/target/allwinner'
      make[2]: *** [target/allwinner/compile] Error 2
      make[2]: Leaving directory `/home/XXX/work/tina'
      make[1]: *** [/home/XXX/work/tina/out/rxxx-evb1/staging_dir/target/stamp/.target_compile] Error 2
      make[1]: Leaving directory `/home/XXX/work/tina'
      Build failed - please re-run with -j1 to see the real error message
      

      客户尝试重新source/lunch、make kernel_menuconfig等操作,均编译失败,导致不能恢复。

      问题简述

      AW向客户提供longon、Tina等多套SDK,客户可能延续其他SDK的开发习惯,删除内核.config,其他SDK编译时会自动生成,目前Tina不会,因此导致上述问题。

      问题分析

      log提示找不到内核.config文件,Tina下生成内核.config操作位于tina/build/kernel-defaults.mk文件中的Kernel/Configure/Default定义下。

      其主要逻辑如下:

      • 根据tina的defconfig、内核的linux-x.x配置等一起在内核根目录下生成.config.set文件
      • 比较内核根目录下.config.set与.config.prev文件,如果相同,不进行任何操作;如果不同,将.config.set复制为.config,同时将.config.set复制为.config.prev

      如果重新source/lunch,不做任何改动,生成的.config.set与上次保存的配置.config.prev是一样的,因此不会重新生成.config文件。

      同理如果执行make kernel_menuconfig,不修改配置,生成的.config.set依旧与上次保存的.config.prev一致,也不会重新生成.config文件。

      解决办法

      根据.config的生成逻辑,可以有多种处理办法。

      • 方法一:删除内核根目录下的.config.prev。当然删除tina/out目录也行,其作用相当于删除.config.prev
      • 方法二:执行make kernel_menuconfig,修改一些配置,保存。目的是确保.config.set与.config.prev不同,重新生成.config
      • 方法三:使用附件补丁0001-kernel-defaults-cp-.config.set-to-.config-when-there.patch,该补丁作用是,如果.config不存在,将.config.set复制为.config
      1 Reply Last reply Reply Quote Share 0
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • 1 / 1
      • First post
        Last post

      Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

      行为准则 | 用户协议 | 隐私权政策