差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
digi:arm-embedded:linux:dey:dey-kernel-development [2022/03/16 21:52] robindigi:arm-embedded:linux:dey:dey-kernel-development [2022/03/16 22:24] (当前版本) robin
行 7: 行 7:
 编译完成后,记录一下这些目录内容: 编译完成后,记录一下这些目录内容:
 Linux总目录是这个tmp/work/ccimx6ulsbc-dey-linux-gnueabi/linux-dey/5.4-r0,注意,它是总目录,而非内核源码目录,事实上,它下面有一个git目录就是指向内核源码的链接。 Linux总目录是这个tmp/work/ccimx6ulsbc-dey-linux-gnueabi/linux-dey/5.4-r0,注意,它是总目录,而非内核源码目录,事实上,它下面有一个git目录就是指向内核源码的链接。
 +
 {{:digi:arm-embedded:linux:dey:pasted:20220316-213215.png}} {{:digi:arm-embedded:linux:dey:pasted:20220316-213215.png}}
  
 Linux内核源码目录位于:tmp/work-shared/ccimx6ulsbc/kernel-source ,这个目录和https://github.com/digi-embedded/linux.git是一样的。 Linux内核源码目录位于:tmp/work-shared/ccimx6ulsbc/kernel-source ,这个目录和https://github.com/digi-embedded/linux.git是一样的。
 +{{:digi:arm-embedded:linux:dey:pasted:20220316-221806.png}}
  
 Linux内核编译的结果主要是在,在编译时自动生成的.config就是位于这里: Linux内核编译的结果主要是在,在编译时自动生成的.config就是位于这里:
行 15: 行 17:
 {{:digi:arm-embedded:linux:dey:pasted:20220316-215131.png}} {{:digi:arm-embedded:linux:dey:pasted:20220316-215131.png}}
  
 +注意,你需要先编译过镜像,再进入devshell进行内核或设备树修改等操作。进入devshell方法是:
 +bitbake -c devshell virtual/kernel
  
 +它会打开一个devshell,默认路径在内核源目录上:tmp/work-shared/ccimx6ulsbc/kernel-source#
  
 +如果我们进行make操作,实际上它会进入tmp/work/ccimx6ulsbc-dey-linux-gnueabi/linux-dey/5.4-r0/build 目录来编译,编译的结果也在这个目录下。
  
 +  - 编译设备树 
 +要修改和编译的设备树都在内核源码树下,我们需要在tmp/work-shared/ccimx6ulsbc/kernel-source/arch/arm/boot/dts/Makefile添加新建的设备树 
 +一般插在原来的位置上,比如 
 +<code> 
 +        imx6ul-ccimx6ulsbc-id136.dtb \ 
 +        imx6ul-ccimx6ulsbc-lvg.dtb \   //这里新添加一个设备树 
 +        imx6ul-ccimx6ulsbc-wb.dtb \ 
 +        imx6ul-ccimx6ulsbc-wb-mfg.dtb \  
 +</code> 
 +然后就可以直接make dtbs
  
 ************************** **************************
- +如果我们在进入devshell之前没有先编译好镜像也是可以进行开发的,
-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和其它厂家相关的东西都编译一遍也是一种浪费。 为了能正常编译设备树,需要指定平台架构,这实际上也是有好处的,毕竟我们只要自己要开发的平台,让编译器把所有x86和其它厂家相关的东西都编译一遍也是一种浪费。
  
行 66: 行 64:
  
  
-1.刚编译完内核时的linux目录: 
-{{:digi:arm-embedded:linux:dey:pasted:20220316-090052.png}} 
- 
-2. 刚编译完内核时的linux的build目录 
-{{:digi:arm-embedded:linux:dey:pasted:20220316-090218.png}} 
- 
-3. 进入devshell后的ls -la 
-{{:digi:arm-embedded:linux:dey:pasted:20220316-090529.png}} 
-{{:digi:arm-embedded:linux:dey:pasted:20220316-090621.png}} 
  
 更多参考:https://onedigi.atlassian.net/wiki/spaces/~descalon/pages/22461909723/Kernel+development 更多参考:https://onedigi.atlassian.net/wiki/spaces/~descalon/pages/22461909723/Kernel+development