这是本文档旧的修订版!


认识一些目录,以cc6ul为例: bitbake -c compile virtual/kernel 编译的结果在 tmp/work/ccimx6ulsbc-dey-linux-gnueabi/linux-dey/5.4-r0/build下

而如果我们用bitbake -c devshell virtual/kernel ,实际上在这个devshell的初始路径是映射在tmp/work/ccimx6ulsbc-dey-linux-gnueabi/linux-dey/5.4-r0/git目录。总的来说tmp/work/ccimx6ulsbc-dey-linux-gnueabi/linux-dey/5.4-r0/是linux相关的目录,任何内核或BSP开发都在这个目录这下。

和以往的版本不同,如果我们进入devshell,编译完Linux内核后,\ ls -la ../build来查看一下编译结果的目录, 在tmp/work/ccimx6ulsbc-dey-linux-gnueabi/linux-dey/5.4-r0下,默认并没有.config,\ 因此,make dtbs会报错\

为了能正常编译设备树,需要指定平台架构,这实际上也是有好处的,毕竟我们只要自己要开发的平台,让编译器把所有x86和其它厂家相关的东西都编译一遍也是一种浪费。

正常开发流程:

进入devshell
bitbake -c devshell virtual/kernel     
做一些修改 (下面是android,dey可能不一样或是更简)
make ARCH=arm64 CC=clang-10 LD=ld.lld-10 CROSS_COMPILE=aarch64-linux-gnu- ccimx8_android_defconfig
make ARCH=arm64 CC=clang-10 LD=ld.lld-10 CROSS_COMPILE=aarch64-linux-gnu- menuconfig
make ARCH=arm64 CC=clang-10 LD=ld.lld-10 CROSS_COMPILE=aarch64-linux-gnu- savedefconfig
或是cc6ul用
make ARCH=arm ccimx6ul_defconfig
make ARCH=arm menuconfig