两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 后一修订版两侧同时换到之后的修订记录 |
digi:arm-embedded:linux:dey:dey-kernel-development [2022/03/16 08:57] – robin | digi:arm-embedded:linux:dey:dey-kernel-development [2022/03/16 21:52] – robin |
---|
====DEY 系统开发流程==== | ====DEY 系统开发流程==== |
认识一些目录,以cc6ul为例: | 认识一些目录,以cc6ul为例: |
| 通常,搭建好环境后,我们会先编译一下镜像,比如: |
| |
bitbake -c compile virtual/kernel\ | bitbake core-image-base |
编译的结果在\ | |
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开发都在这个目录这下。\ | 编译完成后,记录一下这些目录内容: |
| Linux总目录是这个tmp/work/ccimx6ulsbc-dey-linux-gnueabi/linux-dey/5.4-r0,注意,它是总目录,而非内核源码目录,事实上,它下面有一个git目录就是指向内核源码的链接。 |
| {{:digi:arm-embedded:linux:dey:pasted:20220316-213215.png}} |
| |
| Linux内核源码目录位于:tmp/work-shared/ccimx6ulsbc/kernel-source ,这个目录和https://github.com/digi-embedded/linux.git是一样的。 |
| |
| Linux内核编译的结果主要是在,在编译时自动生成的.config就是位于这里: |
| tmp/work/ccimx6ulsbc-dey-linux-gnueabi/linux-dey/5.4-r0/build |
| {{:digi:arm-embedded:linux:dey:pasted:20220316-215131.png}} |
| |
| |
| |
| |
| |
| |
| ************************** |
| |
| 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内核后, |
| |
和以往的版本不同,如果我们进入devshell,编译完Linux内核后,\ | |
ls -la ../build来查看一下编译结果的目录, | ls -la ../build来查看一下编译结果的目录, |
在tmp/work/ccimx6ulsbc-dey-linux-gnueabi/linux-dey/5.4-r0下,默认并没有.config,\ | |
因此,make dtbs会报错\ | 在tmp/work/ccimx6ulsbc-dey-linux-gnueabi/linux-dey/5.4-r0下,默认并没有.config, |
| |
| 因此,make dtbs会报错 |
| |
为了能正常编译设备树,需要指定平台架构,这实际上也是有好处的,毕竟我们只要自己要开发的平台,让编译器把所有x86和其它厂家相关的东西都编译一遍也是一种浪费。 | 为了能正常编译设备树,需要指定平台架构,这实际上也是有好处的,毕竟我们只要自己要开发的平台,让编译器把所有x86和其它厂家相关的东西都编译一遍也是一种浪费。 |
| |
要清空git区变化,用git clean -dfx | 要清空git区变化,用git clean -dfx |
| |
| |
| 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 |