i.mx6soloX开发 之 文件系统
来源:互联网 发布:java验证码工具类 编辑:程序博客网 时间:2024/06/06 08:26
写在前头
*.版权声明:本篇文章为原创,可随意转载,转载请注明出处,谢谢!另我创建一个QQ群82642304,欢迎加入!
*.备注:整个系列基于官方的i.MX6soloX sabresd开发板,只是对我所学进行总结,记录我认为是关键的点,另我能力有限,难免出现疏漏错误,如果读者有发现请多指正,以免我误导他人!
Buildroot
yocto系统里编译出来的镜像里已包含Uboot、Kernel和文件系统,所以不需要自己编译文件系统。对于我来说,需要自己编译一个文件系统。
使用Buildroot来编译一个文件系统是十分便利的事,只需要一些配置,Buildroot会自动去下载、编译和生成镜像文件。
下载
下载Buildroot可以从官网上下载,我下载的是buildroot-2016.05.tar.gz,下载后解压缩文件
配置
编译之前,需要配置一下,在目录下执行
make menuconfig
- 主界面:
- Target options:目标CPU配置,例如CPU结构,内核等配置
- Build options:编译选项,编译文件系统时的一些选项,可以不改动
- Toolchain:交叉编译工具链的配置,可以选择系统自带的或者客户定制的,对于我来说是选择飞思卡尔的交叉编译工具链gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12,同时在Target options中选择glibc
- System configuration:文件系统的一些配置,例如hostname、欢迎词、登录密码等
- Kernel:编译内核,对于我们是不需要
- Target packages:编译程序,可以选择你需要的应用程序编译进文件系统
- Filesystem images:编译输出的文件系统格式,我选择ext4
- Bootloaders:编译bootloader,对于我们不需要
- Host utilities:编译一些主机工具
- Legacy config options:其他配置
- Target options:目标CPU配置,例如CPU结构,内核等配置
输出
Buildroot的工作目录在output下,包含一下目录
- build:应用程序的编译目录
- host:主机工具目录,包括交叉编译工具链
- images:生成的文件系统,包含rootfs.ext4和rootfs.tar,其中rootfs.tar是文件系统的压缩包,解压缩需要root用户,因为只有root用户才能有权限创建设备
- target:文件系统根目录,但是该文件夹不能做文件系统,因为我们编译时是使用普通用户,无法创建设备文件。
出现的问题
1.包含当前目录问题
You seem to have the current working directory in your
PATH environment variable. This doesn’t work.
make: * [core-dependencies] 错误 1
原因:
由于我的环境变量PATH中包含当前目录
echo $PATH为xxx:.:yyy
解决方法:
重新export PATH,对PATH重新赋值,删除当前目录
2. 选用gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12交叉编译工具时提示:
/path/to/yourdir/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/../lib/gcc/arm-fsl-linux-gnueabi/4.6.2/../../../../arm-fsl-linux-gnueabi/bin/ld: cannot find crt1.o: No such file or directory
原因:buildroot制作交叉编译工具时拷贝不完全
解决方法:
进入/path/to/yourdir/buildroot-2016.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot目录下,软链接default到本目录
ln -s . default
不要make clean,直接执行make即可
- i.mx6soloX开发 之 文件系统
- i.mx6soloX开发 之 Uboot
- i.mx6soloX开发 之 Kernel
- i.mx6soloX开发 之 总结一
- php开发之文件系统
- linux文件系统之i节点详解
- linux文件系统之i节点详解
- IOS开发之文件系统NSFileManager
- ios开发之文件系统操作
- Linux文件系统分析之三(i节点区)
- 嵌入式系统开发之根文件系统
- Arm嵌入式开发之Flash文件系统建立
- 驱动开发之 文件系统识别器
- IOS开发之 ---- I…
- 典型分布式文件系统概述I
- I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之根文件系统挂载
- Linux文件系统分析之二(超级块,i节点位图和逻辑块位图)
- I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之根文件系统挂载
- 解决React Native的Image组件中不更新图片的问题
- 2016-09-02
- Android 摆动的球体
- uCOSIII学习笔记之OSCtrSW( )
- ubuntu下如何看我的显卡驱动是否装好了(转自 雪谦信的博客)
- i.mx6soloX开发 之 文件系统
- tjut 3560
- HTML+CSS学习笔记 (五)
- Http和Https的区别
- NYOJ 176 整数划分(二)
- 深入理解Redux:10个来自专家的Redux实践建议
- 深入理解HashMap(及hash函数的真正巧妙之处)
- MFC中的#ifndef afx_msg #define afx_msg // intentional placeholder #endif
- 【NOIP2016提高A组模拟9.2】单峰