解压了网盘下载后的压缩包后,找到了doc目录,但是在这个目录中,没有找到uboot与kernel的编译说明。后来再找才发现是在nand的doc子目录中。下面就说明一下,各个make过程中都做了点什么,方便大家对整个编译过程的理解。
内核与u-boot的编译
生成配置文件配置如下:
可以看到有里面有说他DRAM的宏定义
这些宏的定义位于boards.cfg中:
然后makefile会生成下面整个头文件:
可以看到整个头文件里面的各个宏就是前面boards.cfg中定义的。这里面有board位置,board的名字,因此这样子makefile就知道该去编译哪个board里面的文件了。
最后我们再make 即可生成:
SPL
u-boot.img
这两个文件,分别为第二阶段与第三阶段的bootloader,第一阶段的为ROM Code。
内核的编译
内核中直接make uImage即可。
repo的建立
板子自带的内核版本是3.2,没有试用device tree,但是但是完善。我们后面也会直接使用官方的uboot与kernel。
在后面我们会使用yocto来构建一个Rootfs,Yocto中要对kernel的代码的获取,一般都是git的方式。
因此我们需要建立一个本地的repo,用来后面的获取。当然也可以将代码放入到类似github这样的代码托管网站中,但如此的话,就需要开源了,在我们的实际项目中,一般我们需要再后面才可能会开源,所以建立本地repo比较合适。
选择
得益于open source以及各种community,我们要建立本地托管服务器的方式有很多中选择,其中包括:
Gitlab
Gogs
Gitblit
Gitbucket
如果需要本地建立Gitlab,那么可以参考我以前写的博客。我们这里就自己使用git自带的功能,不再安装这些Git服务器。
建立过程
进入到目录,直接
git init .
然后再直接
git add -A .
最后:
git commit -m "XXX"
即可。
然后我们可以测试一下:
git clone ssh:///PATH/To/Directory
然后可能会要求输入密码,那么为了避免这个问题,我们可以直接将known_host中添加自己即可:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
如果以前就有过,或者本地地址变了,那么需要去除掉:
然后测试clone的结果截图如下:
如果可以获取,那么就说明建立完成了。我们将在以后中用这些repo。