Fenix如何编译差异化、定制化固件

fenix支持编译固件,但是如何自己修改u-boot和kernel代码之后再使用fenix编译呢?

make github fork
change any source
write your scripts -> for example this one just generate mainline uboot for any vim board

3 Likes

@gavin

  1. 编译fenix的时候,会从我们github上面克隆uboot和linux.uboot就是uboot,kernel在linux目录下。
  2. 修改完成以后,如果你要重新编译uboot和kernel,先要使用fenix选择好你需要的板子和版本source env/setenv.sh
  3. 重新编译uboot,make uboot
  4. 重新编译kernel, make kernel
  5. 重新编译所有deb包, make debs
    如果你只是直接重新make是不会更新你修改过的源码的。一定要先按照345步骤再make整个。或者编译以后替换你板子上的每个单独部分
2 Likes

HI Frank,了解,非常感谢:+1:

HI hyphop,明白了,非常感谢:+1:

HI Frank,如何使用“https://github.com/khadas/u-boot”生成VIM3的SD uboot呢

所以其实是无法用github上的u-boot或linux单独生成的吗

可以。但你需要手动执行很多步骤(如交叉工具链等等),除非你非常了解uboot和linux是如何编译的。Fenix帮你做了很多工作,你只需要简单的一条命令就可以编译。如果你想了解每一步是如何操作的你可以看这里:

@numbqq 有一个新问题,在fenix/build/linux-mainline-5.5-rc2/下执行“make menuconfig”增加MTD的支持之后,编译之后的系统却没有在proc/driver/下找到相关mtd文件,且回到fenix/build/linux-mainline-5.5-rc2/下执行“make menuconfig”发现之前保存的配置又回到了默认配置了,也尝试过上面Frank提到的“先按照345步骤再make整个”,还是没有生效,这是为什么呢


主线的你不能直接这样改的。你还是要看看SDK代码,搞清楚主线的内核是如何编译的。修改配置后你需要把新的.config拷贝到packages/linux-mainline/configs/VIM3.config,然后在编译。

将.config改名为VIM3.config吗

把修改后的.config拷贝到源码

cp build/linux-mainline-5.5-rc2/.config packages/linux-mainline/configs/VIM3.config

@numbqq
了解了,我现在去试一下,谢谢~

@numbqq hi numbqq,为了增加uart2的支持,这样修改对的吗

@numbqq 我修改替换了config,但是编译会出现很多选项,一直enter默认之后编译失败,这里的update是会使替换的config又被更新回去吗

失败报什么错?

不会,这个只是从远程仓库更新代码,你可以关闭,在fenix根目录昂创建如下文件

$ touch .ignore-update

@numbqq


这是在配置的时候,增加MTD支持也增加了MTD test模块之后,编译的时候会有很多选项需要选择,全部按enter默认之后,编译到最后出现的这个错误。

git diff看下你的修改,感觉你把一些必要的配置都拿掉了,就报错了。

@numbqq