Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5634835
  • 博文数量: 922
  • 博客积分: 19333
  • 博客等级: 上将
  • 技术积分: 11226
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-27 14:33
文章分类

全部博文(922)

文章存档

2023年(1)

2020年(2)

2019年(1)

2017年(1)

2016年(3)

2015年(10)

2014年(17)

2013年(49)

2012年(291)

2011年(266)

2010年(95)

2009年(54)

2008年(132)

分类: 嵌入式

2013-10-11 09:12:30

原文地址:Buildroot使用简介1 作者:lz_fine

官方网址:
 
编译制作:
首先从官网下载buildroot,现最新版本发布日期为2010.8
 
下载后解压
执行make menuconfig
  (因为我是需要制作一个运行在较低配置的x86 PC上的Linux,故没有修改处理器类型,如果需要制作运行在ARM上的嵌入式系统,则需要选择处理器类型,并启用bootloader)
需要选择
  Target filesystem options->Compression method()->gzip
  Kernel->Linux kernel
然后执行make
 
过程中buildroot会自动下载需要的工具,内核,busybox等,但下载速度较慢,可以自行下载后放到dl目录下
 
编译时会出现一个错误,大意为在/arch/x86/config目录下找不到.config_defconfig
解决办法:buildroot/output/build/linux-2.6.34.1/arch/x86/config/i386_defconfig复制成.config_defconfig
 
编译完成后内核和文件系统文件放在output/images目录下
此时可对它们进行测试,测试方法:
将生成的两个文件bzImage,rootfs.ext2.gz拷贝到/boot目录
重启系统,进入grub的时候进入命令模式(按c键),依此输入
    kernel /bzImage
    initrd /rootfs.ext2.gz
    boot
如能进入shell,表示制作成功。
 
首次编译无法进入shell
执行make linux26-menuconfig,然后对内核进行配置,选中以下选项:
    General setup->Initial RAM filesystem and RAM disk(initramfs/initrd)support
    File system->Second extended fs support
    File system->Miscellaneous filesystems->ROM file system support
退出时保存,然后重新make,并将新生成的bzImage复制到/boot目录下,
用该新内核和文件系统文件启动即可
      
制作基于uClibc的程序:
  首先将基于uClibc的编译器的路径添加到PATH中,比如编译器为
/home/buildroot/buildroot-2010.08/output/staging/usr/bin/i686-unknown-linux-uclibc-gcc
则修改/etc/profile,添加下面一行:
export PATH=$PATH:/home/buildroot/buildroot-2010.08/output/staging/usr/bin/
然后执行source /etc/profile
编写一个简单的c程序,如hello world,文件名为hello.c,执行:
    i686-unknown-linux-uclibc-gcc hello.c -o hello
成功后生成一个可执行文件hello,将该文件复制到/home/buildroot/buildroot-2010.08/output/target/bin目录下,在buildroot目录顶层执行make,然后将生成的文件系统复制到/boot目录,重启并使用制作好的内核和文件系统启动,进入shell后执行hello,如果打印出hello world则表示成功
 
文件系统放在output/target目录下,如果需要修改文件系统,则在该目录修改后再在顶层目录下执行make即可。
阅读(3317) | 评论(0) | 转发(0) |
0

上一篇:多线程与fork

下一篇:程序员说胡话

给主人留下些什么吧!~~