使用buildroot来编译文件系统

2015-1-9

用buildroot来制作文件系统很方便,编译出来的文件系统是直接可用的,不用添加脚本等麻烦的工作,很多的库和app都可以

直接添加到文件系统里边,如常用的udhcpc,tftp等.本文以以ZYNQ 7010为例,制作一个ramdisk的文件系统,在z-turn开发

板上运行.

1. 到buildroot目录下执行make ARCH=arm menuconfig

Target options配置,这个根据CPU的手册来配置

2. toolchain设置,这里不使用buildroot编译出来的gcc, 使用外部的gcc来编译文件系统

主要注意External toolchain kernel headers series (3.0.x)这个选项的设置,选择编译工具的内核版本号,文件

Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/arm-xilinx-linux-gnueabi/libc/usr/include/linux/version.h

保存有版本号(每个编译工具都有这个文件的),是十进制的,把它转换成16进制就可以看出来版本号是多少,如我的version.h是这样

#define LINUX_VERSION_CODE 196609

#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))

196609版本的16进制是0x30001,那版本号就是3.00.01,就是3.0.1了,所以这里选3.0.x

3. System configration 的设置

/dev management选mdev,启动的时候自动创建/dev目录下的设备节点.

这个功能还需要内核的配合才行,内核需要配置:

Device Drivers->Generic Driver Options:选上下面这两项

[*] Maintain a devtmpfs filesystem to mount at /dev

[*] Automount devtmpfs at /dev, after the kernel mounted the rootfs

控制台的配置,也是在System configration下

[*] Run a getty (login prompt) after boot

getty options  --->

(ttyPS0) TTY port  --这里配置好串口号和速率

Baudrate (115200)  --->

(vt100) TERM environment variable

()  other options to pass to getty

4. 其他配置说明

只要这3项配置好了,编译出来的相当于一个最小的文件系统,如果需要添加其他的app,可以在

Target packages里边配置,其他选项可以不用动.

5. 编译

输入make,如果app是第一次编译,会自动从网上下载到dl目录下,下次编译就不会下载了.

编译出来的文件系统在output/image/rootfs.tar,用该文件来制作ramdisk

6. 制作ramdisk

制作ramdisk需要genext2fs, 该工具可以用buildroot来编译出来:

Host utilities

[*] host genext2fs 选上这个,编译出来的genext2fs在output/build/host-genext2fs-1.4.1目录下

到output/image目录下,解压文件系统到rootfs目录下

[email protected]:images$ mkdir rootfs

[email protected]:images$ sudo tar -xvf rootfs.tar -C rootfs

生成ramdisk文件

[email protected]:images$ sudo ./genext2fs -b 8192 -d rootfs ramdisk.image

[email protected]:images$ ls

genext2fs  ramdisk.image  rootfs  rootfs.tar

用 gzip 压缩  ramdisk.image,生成  ramdisk.image.gz

[email protected]:images$ gzip -9 ramdisk.image

[email protected]:images$ ls

genext2fs  ramdisk.image.gz  rootfs  rootfs.tar

用 mkimage 添加文件头,生成新的uramdisk.image.gz供u-boot使用

[email protected]:images$ mkimage -A arm -T ramdisk -C gzip -n Ramdisk -d ramdisk.image.gz uramdisk.image.gz

Image Name:   Ramdisk

Created:      Fri Jan  9 18:07:48 2015

Image Type:   ARM Linux RAMDisk Image (gzip compressed)

Data Size:    2376529 Bytes = 2320.83 kB = 2.27 MB

Load Address: 00000000

Entry Point:  00000000

将uramdisk.image.gz copy到SD卡上,从SD卡启动,设置内核参数挂载ramdisk文件系统即可.

时间: 2024-10-13 01:11:33

使用buildroot来编译文件系统的相关文章

sama5d3 xplained 编译文件系统(buildroot)添加nfs支持

{相关信息}在之前的日志<sama5d3 xplained 挂载NFS系统>中遇到了开发板不能挂载主机NFS系统问题.今天通过重新编译文件系统来解决此问题. {编译步骤}1. 获取源码并切换至最新分支 $ git clone git://github.com/linux4sam/buildroot-at91.git $ git checkout origin/buildroot-2013.11-at91 -b buildroot-2013.11-at91 2.  生成.config文件 $ m

hi3531 SDK已编译文件系统制作jffs2文件系统镜像并解决问题 .

一, 安装SDK 1.Hi3531 SDK包位置 在"Hi3531_V100R001***/01.software/board"目录下,您可以看到一个 Hi3531_SDK_Vx.x.x.x.tgz 的文件, 该文件就是Hi3531的软件开发包. 2.解压缩SDK包 在linux服务器上(或者一台装有linux的PC上,主流的linux发行版本均可以),使用命令:tar -zxf Hi3531_SDK_Vx.x.x.x.tgz , 解压缩该文件,可以得到一个Hi3531_SDK_Vx.

使用buildroot搭建linux文件系统

(文件系统搭建,强烈建议直接用buildroot,官网上有使用教程非常详细buildroot官网) 文件系统通常要包含很多第三方软件,比如busybox,tslib,qt,vim,交叉编译工具等,为了避免繁杂的移植工作.buildroot应运而生.通过menuconfig配置我们需要的功能,不需要的功能去掉,再执行make指令编译,buildroot就会自动从指定的服务器上下载源码包,自动编译,自动搭建成我们所需要的嵌入式根文件系统. 1:获取buildroot 我们可以从buildroot官网

buildroot 制作Linux文件系统初级使用教程

buildroot 下载地址:https://buildroot.org/download.html 放在Linux文件下解压出来. 使用make menuconfig 进行配置相关的东西. 在使用这条命令之前,首先要安装相关的东西. 运行如下命令进行安装相关的库文件,我的是在Ubuntu14.04的环境下进行的. sudo apt-get install libncurses5-dev 1. target options 这是相关的目标选项,有关architecture相关的配置在这里. 2.

使用buildroot搭建linux文件系统【转】

本文转载自:http://blog.csdn.net/metalseed/article/details/45423061 (文件系统搭建,强烈建议直接用buildroot,官网上有使用教程非常详细buildroot官网) 文件系统通常要包含很多第三方软件,比如busybox,tslib,qt,vim,交叉编译工具等,为了避免繁杂的移植工作.buildroot应运而生.通过menuconfig配置我们需要的功能,不需要的功能去掉,再执行make指令编译,buildroot就会自动从指定的服务器上

迅为iTop开发板使用buildroot构建opencv文件系统

这次我们来介绍使用buildroot构建opencv开发环境,buildroot 是 Linux平台上一个构建嵌入式Linux系统的框架.整个buildroot是由 Makefile脚本和Kconfig配置文件构成的.可以和编译Linux内核一样,通过 buildroot 配置,menuconfig 修改,编译出一个完整的可以直接烧写到机器上运行的Linux系统. 1.源码下载: buildroot官网获取源码包 http://buildroot.uclibc.org/download.html

OpenWrt Buildroot – About 编译过程

OpenWrt Buildroot is a set of Makefiles and patches that allows users to easily generate both a cross-compilation toolchain and a root filesystem for embedded systems. It is a heavily modified Buildroot. The cross-compilation toolchain uses uClibc, a

Buildroot构建指南——根文件系统(Rootfs)

Buildroot构建指南--根文件系统(Rootfs) Buildroot的Rootfs构建流程有一个大框架,有些部分是Buildroot系统做好的,有些细节需要自己来实现,Rootfs也是Buildroot中最为复杂的部分. Rootfs的构建流程概述 Rootfs的构建流程如图1所示.其中浅色框中为Buildroot实现的框架,深紫色框为用户实现的脚本. Figure 1 Buildroot系统的rootfs制作 需要归纳的几点如下: 1.      新版buildroot已经把rootf

Buildroot构建指南——根文件系统(Rootfs)【转】

本文转载自; 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] Buildroot构建指南——根文件系统(Rootfs) Buildroot的Rootfs构建流程有一个大框架,有些部分是Buildroot系统做好的,有些细节需要自己来实现,Rootfs也是Buildroot中最为复杂的部分. Rootfs的构建流程概述 Rootfs的构建流程如图1所示.其中浅色框中为Buildroot实现的框架,深紫色框为用户实现的脚本. Figure 1 Buildroot系统的root