参考文档:http://bbs.myzr.com.cn/forum.php?mod=viewthread&tid=696&extra=page%3D2
编译器:gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux,编译器包在明远资料盘
,这里将编译器解压到:
/my-imx6/03_tools/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux
Buildroot版本:buildroot-2018.02.4.tar.bz2
Buildroot下载链接:https://buildroot.org/download.html
这里将buildroot解压到
/home/buildroot/buildroot-2018.02.4
进入buildroot主目录
cd: /home/buildroot/buildroot-2018.02.4
ls configs
可以看到支持的不同板子;
执行配置imx6命令
make imx6-sabresd_defconfig
开始配置
执行命令
make menuconfig
弹出如图所示的框框
配置Toochain
这张图片里面选中的选项不要漏选,不然会报错误;
由于开发板上内核的版本为3.0.35,所以这里将kernel headers series设置为3.0.x
但是这样设置后面编译的时候会报错误
错误提示如下:
Incorrect selection of kernel headers: expected 3.0.x, got 3.2.x
原因是编译器里默认匹配的内核版本并不是3.0.x
在
/my-imx6/03_tools/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/arm-linux-gnueabihf/libc/usr/include/linux/version.h文件里面有定义内核版本号
把内核版本号更改为196661,换成十六进制即0x30035,即3.00.35;再次编译,上述错误没有了;
继续配置内核System configuration:
更改自己想用的用户名
添加mdev支持
至此配置完毕
执行命令
make
错误来了
you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
解决方法
执行
export FORCE_UNSAFE_CONFIGURE=1 //或者以非root用户编译,我这里直接用root用户编译的
ln: failed to create symbolic link `
/home/buildroot/buildroot-2018.02.4/output/host/arm-buildroot-linux-gnueabihf/sysroot/lib
/arm-linux-gnueabihf’: No such file or directory
由于目录不存在而导致的创建什么链接失败,于是手动创建了不存在的目录,编译通过;此处有两处相同类型的错误,上述只列出一处,处理方式相同;
主要看看下面这个问题:
tar: can’t change directory to ‘/mnt/mmcblkxp2/home/root’: No such file or directory
提示没有这个目录,尝试新建了目录还是不行,最后在烧录工具的目录里面的ucl2.xml文件里面找到这句命令:
原来烧录过程中执行的命令在这里面定义的,看命令的意思是把demo解压到文件系统的目录下,那我不要demo应该不影响,于是把这四行删除了,重新烧录,ok;
编译完成
/home/buildroot/buildroot-2018.02.4/output/images
目录里面的rootfs.tar即为需要的根文件系统
下面步骤参照链接文档里面操作的,暂时没去管它什么意思,看命令应该是类似配置.bashrc文件里面那些东西了,应该是登陆之后的显示设置
打包的时候,假如跟文件系统的目录为/usr/local/rootfs
则一定要
cd /usr/local/rootfs
tar –cjf …/rootfs-buildroot.tar.bz2 *
这样来打包,即进入到rootfs目录后再打包,不然会报错;
烧录进去,根文件系统起来了