Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4802139
  • 博文数量: 1145
  • 博客积分: 12961
  • 博客等级: 上将
  • 技术积分: 13761
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-09 11:25
  • 认证徽章:
个人简介

偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.

文章分类

全部博文(1145)

文章存档

2019年(121)

2018年(81)

2017年(80)

2016年(70)

2015年(52)

2014年(41)

2013年(51)

2012年(85)

2011年(45)

2010年(231)

2009年(288)

分类: Android平台

2016-04-06 17:27:35

http://blog.csdn.net/luoqindong/article/details/42737789

用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目录下
   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:   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文件系统即可.
阅读(1097) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册