logo资料库

buildroot生成文件系统.docx

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
使用 buildroot 回编译文件系统 www.MyException.Cn 网友分享于:2015-01-10 浏览:0 次 使用 buildroot 来编译文件系统 用 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/lin ux/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 -- 这 里 配 置 好 串 口 号 和 速 率 (115200) ---> variable () other options to pass to getty Baudrate (vt100) TERM environment 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 目录下 tom@v:images$ mkdir rootfs tom@v:images$ sudo tar -xvf rootfs.tar -C rootfs 生成 ramdisk 文件 tom@v:images$ sudo ./genext2fs -b 8192 -d rootfs ramdisk.image tom@v:images$ ls genext2fs ramdisk.image rootfs rootfs.tar 用 gzip 压缩 ramdisk.image,生成 ramdisk.image.gz tom@v:images$ gzip -9 ramdisk.image tom@v:images$ ls
genext2fs ramdisk.image.gz rootfs rootfs.tar 用 mkimage 添加文件头,生成新的 uramdisk.image.gz 供 u-boot 使用 tom@v:images$ mkimage -A arm -T ramdisk -C gzip -n Ramdisk -d ramdisk.image.gz uramdisk.image.gz Image Name: Created: Image Type: Data Size: Load Address: 00000000 Entry Point: 00000000 Fri Jan 9 18:07:48 2015 ARM Linux RAMDisk Image (gzip compressed) Ramdisk 2376529 Bytes = 2320.83 kB = 2.27 MB 将 uramdisk.image.gz copy 到 SD 卡上,从 SD 卡启动,设置内核参数挂载 ramdisk 文件系统即 可.
分享到:
收藏