一、buildroot-2014.08编译根文件系统(nfs挂载)

buildroot(Making Embedded Linux Easy)编译环境它其实就是一个脚本和补丁的集合,简单来讲就是辅助编译嵌入式系统中的boot、kernel、rootfs、cross compiler等。

本篇主要讲如何使用buildroot编译根文件系统并且使用开发板用nfs方式挂载:

宿主机环境:虚拟机+ubuntu14.04 x86 

交叉编译器: arm-linux-gcc 4.5.1

目标机环境:tiny4412

1、在http://git.buildroot.net/buildroot/下选择版本,在此选择buildroot-2014.08,

zxl@zxl:/work$ sudo wget http://git.buildroot.net/buildroot/snapshot/buildroot-2014.08.tar.gz
zxl@zxl:/work$ sudo tar xjf buildroot-2014.08.tar.bz2 -C ./tools/
zxl@zxl:/work/tools/buildroot-2014.08$ sudo make menuconfig

3、配置buildroot编译根文件系统

3.1、配置目标板:使用的是arm的cortex-a9,小端模式的


3.2、配置工具链:选择外部工具链的方式(也就是已经安装好的工具链),工具链的路径:/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/


3.3、配置根文件系统


配置完毕,开始编译。

4、编译

root@zxl:/work/tools/buildroot-2014.08# make

buildroot编译过程:在配置完成后,buildroot编译过程中会根据开发者选中的功能,自动上网download源码到buildroot目录下的dl目录,并且解压到output/build/中进行编译。

在output目录下有四个文件夹:

root@zxl:/work/buildroot-2014.08/output# ls
build  host  images  staging  target

build目录:所有源码的编译路径

host目录:存放交叉编译器,如果指定是外部编译器,会把外部编译器拷贝到此处。buildroot编译生成的也是存放在此。

images目录:存放根文件系统的打包好的各个格式,比如:ext,yaffs等.....

target目录:编译出来的根文件系统存放的路径(也就是待会生成根文件系统的路径,用nfs挂载即可)

5、使用buildroot制作出来的根文件系统

root@zxl:/work/tools/buildroot-2014.08/output/target# ls
bin  etc   lib    linuxrc  mnt  proc  run   sys                               tmp  var
dev  home  lib32  media    opt  root  sbin  THIS_IS_NOT_YOUR_ROOT_FILESYSTEM  usr
root@zxl:/work/tools/buildroot-2014.08/output/target# 
6、使用开发板挂载根文件系统

6.1、在挂载根文件系统前,buildroot生成的在dev目录下的设备节点有问题,如下:

root@zxl:/work/tools/buildroot-2014.08/output/target/dev# ls -l
总用量 4
-rw--w--w- 1 root root    0  8月 27 10:12 console
lrwxrwxrwx 1 root root   10  9月  1  2014 log -> ../tmp/log
drwxrwxr-x 2 root root 4096  9月  1  2014 pts
root@zxl:/work/tools/buildroot-2014.08/output/target/dev# 
生成的console并不是一个设备节点,而是一个普通文件(本人就在此处被坑了一把,通过看log信息才知道打开终端一直失败才找到,有兴趣的可以自行查看)

在一个根文件系统中,需要两个设备节点,console和null设备节点,那么咱们直接仿照ubuntu的来创建

root@zxl:/work/tools/buildroot-2014.08/output/target/dev# ls /dev/console -l
crw------- 1 root root 5, 1  8月 26 10:24 /dev/console
root@zxl:/work/tools/buildroot-2014.08/output/target/dev# ls /dev/null -l
crw-rw-rw- 1 root root 1, 3  8月 25 16:11 /dev/null
root@zxl:/work/tools/buildroot-2014.08/output/target/dev# 
root@zxl:/work/tools/buildroot-2014.08/output/target/dev# mknod console c 5 1
<span style="background-color: rgb(255, 0, 0);">mknod: "console": 文件已存在</span>
root@zxl:/work/tools/buildroot-2014.08/output/target/dev# rm console 
root@zxl:/work/tools/buildroot-2014.08/output/target/dev# mknod console c 5 1
root@zxl:/work/tools/buildroot-2014.08/output/target/dev# mknod null c 1 3
root@zxl:/work/tools/buildroot-2014.08/output/target/dev# ls -l
总用量 4
<span style="background-color: rgb(51, 51, 255);">crw-r--r-- 1 root root 5, 1  8月 27 10:21 console</span>
lrwxrwxrwx 1 root root   10  9月  1  2014 log -> ../tmp/log
<span style="background-color: rgb(51, 51, 255);">crw-r--r-- 1 root root 1, 3  8月 27 10:21 null</span>
drwxrwxr-x 2 root root 4096  9月  1  2014 pts
root@zxl:/work/tools/buildroot-2014.08/output/target/dev#

6.2、使用开发板来挂载buildroot编译出来的根文件系统即可。




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值