打印
[活动]

【安防记录仪】第三篇 文件系统

[复制链接]
1552|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 白菜爱吃白菜 于 2016-10-21 14:58 编辑

前两篇** 【安防记录仪】第一篇 i.MX6的Uboot代码获取编译及烧写【安防记录仪】第二篇 Kernel代码获取和编译 分别介绍了Uboot和Kernel,这篇文档里面介绍的是文件系统的代码获取、编译及烧写。


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:其他配置



输出

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重新赋值,删除当前目录



顶0踩

顶0踩


相关帖子

沙发
HORSE7812| | 2016-10-20 13:47 | 只看该作者

使用特权

评论回复
板凳
Zhengpz17| | 2017-2-23 16:51 | 只看该作者
楼主你好,目前我用同样的方法编文件系统,用的工具链是飞思卡尔的gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12,编译一直未成功,失败的原因是cannot find crt1.o: No such file or directory,但用find命令却有此文件,希望楼主帮助,困扰很久,谢谢!

捕获.JPG (604.12 KB )

捕获.JPG

捕获1.JPG (555.29 KB )

捕获1.JPG

使用特权

评论回复
地板
白菜爱吃白菜|  楼主 | 2017-3-16 13:40 | 只看该作者
Zhengpz17 发表于 2017-2-23 16:51
楼主你好,目前我用同样的方法编文件系统,用的工具链是飞思卡尔的gcc-4.6.2-glibc-2.13-linaro-multilib-2 ...

不好意思,刚看到。
不知道你的问题解决了吗?

使用特权

评论回复
5
Zhengpz17| | 2017-3-27 21:24 | 只看该作者
白菜爱吃白菜 发表于 2017-3-16 13:40
不好意思,刚看到。
不知道你的问题解决了吗?

好久没上论坛,我还没解决,不知道楼主有没有什么解决的建议,或者能发给我一份你的交叉工具链,麻烦楼主解决一下,谢谢

使用特权

评论回复
6
白菜爱吃白菜|  楼主 | 2017-4-6 13:58 | 只看该作者
Zhengpz17 发表于 2017-3-27 21:24
好久没上论坛,我还没解决,不知道楼主有没有什么解决的建议,或者能发给我一份你的交叉工具链,麻烦楼主 ...

不好意思,当初写这份文档的时候没有写全。出现这个问题是buildroot制作交叉编译工具时没拷贝全,在/path/to/youridir/buildroot/buildroot-2016.05/output/host/usr/arm-buildroot-linux-gnueabi/sysroot下创建一个软连接default到本目录,参照我的:
[ 08:04:12 "24" ] sysroot$ ls -al
总用量 28
drwxr-xr-x 7 baicai baicai 4096  9月 15 09:50 .
drwxr-xr-x 3 baicai baicai 4096  9月 15 09:20 ..
drwxr-xr-x 2 baicai baicai 4096  9月 15 09:20 bin
lrwxrwxrwx 1 baicai baicai    1  9月 15 09:50 default -> .
drwxr-xr-x 3 baicai baicai 4096  9月 15 09:59 etc
drwxr-xr-x 3 baicai baicai 4096  9月 15 10:13 lib
lrwxrwxrwx 1 baicai baicai    3  9月 15 09:20 lib32 -> lib
drwxr-xr-x 2 baicai baicai 4096  5月 12  2015 sbin
drwxr-xr-x 8 baicai baicai 4096  5月 12  2015 usr


我建有一个QQ群 82642304 如果还有问题可以加这个群找我。

使用特权

评论回复
7
Zhengpz17| | 2017-4-21 15:22 | 只看该作者
白菜爱吃白菜 发表于 2017-4-6 13:58
不好意思,当初写这份文档的时候没有写全。出现这个问题是buildroot制作交叉编译工具时没拷贝全,在/path ...

好的,非常感谢,我先自己再试一试

使用特权

评论回复
8
Zhengpz17| | 2017-4-21 15:27 | 只看该作者
白菜爱吃白菜 发表于 2017-4-6 13:58
不好意思,当初写这份文档的时候没有写全。出现这个问题是buildroot制作交叉编译工具时没拷贝全,在/path ...

我用的是外部交叉编译工具,不是buildroot制作的交叉编译工具

使用特权

评论回复
9
lounnywu| | 2017-5-16 17:00 | 只看该作者
各位大咖,有用到硬件加密芯片,防止抄板的,可以联系我,QQ:937684930

使用特权

评论回复
10
白菜爱吃白菜|  楼主 | 2017-6-6 17:25 | 只看该作者
Zhengpz17 发表于 2017-4-21 15:27
我用的是外部交叉编译工具,不是buildroot制作的交叉编译工具

恩,我说的是外部的编译工具,buildroot会封装一下就是。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

61

帖子

3

粉丝