buildroot构建根文件系统

参考文档: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_linuxphp

Buildroot版本:buildroot-2018.02.4.tar.bz2
Buildroot下载连接:https://buildroot.org/download.html
这里将buildroot解压到
/home/buildroot/buildroot-2018.02.4html

进入buildroot主目录
cd: /home/buildroot/buildroot-2018.02.4
ls configs
在这里插入图片描述能够看到支持的不一样板子;
执行配置imx6命令
make imx6-sabresd_defconfiglinux

开始配置
执行命令
make menuconfig
弹出如图所示的框框
在这里插入图片描述
配置Toochain
在这里插入图片描述这张图片里面选中的选项不要漏选,否则会报错误;web

因为开发板上内核的版本为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;再次编译,上述错误没有了;bash

继续配置内核System configuration:
更改本身想用的用户名
在这里插入图片描述svg

添加mdev支持
在这里插入图片描述工具

设置串口即波特率
在这里插入图片描述ui

配置Kernel
在这里插入图片描述
选择不编译内核this

配置Bootloaders
在这里插入图片描述选择不编译u-bootxml

至此配置完毕

执行命令
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目录后再打包,否则会报错; 烧录进去,根文件系统起来了