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

一、buildroot-2014.08编译根文件系统(nfs挂载)buildroot Making Embedded Linux Easy 编译环境它其实就是一个脚本和补丁的集合 简单来讲就是辅助编译嵌入式系统中的 boot kernel rootfs cross compiler 等 本篇主要讲如何使用 buildroot 编译根文件系统并且使用开发板用 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编译出来的根文件系统即可。

小讯
上一篇 2025-01-17 13:11
下一篇 2025-01-09 17:10

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/71897.html