Chinaunix首页 | 论坛 | 博客
  • 博客访问: 850965
  • 博文数量: 290
  • 博客积分: 511
  • 博客等级: 下士
  • 技术积分: 1590
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-29 13:14
文章分类

全部博文(290)

文章存档

2018年(28)

2017年(19)

2016年(8)

2015年(1)

2014年(14)

2013年(12)

2012年(22)

2011年(186)

分类: 嵌入式

2018-01-24 16:25:33

原文地址:http://blog.chinaunix.net/uid-28492690-id-4313579.html

嵌入式开发最头疼的事莫过于对宿主机开发环境的配置了,有时候你能够正确的安装交叉编译器,但是你还会为环境变量里面各种各样的配置所伤透脑筋。

    OpenWRT所提供的交叉编译环境的创建是很easy的,不会出现各种不明原因,各种不知道如何是好的情况。但是你必须要能够联网来download各种patch来实现你的device的编译。
    Building Image
    OpenWRT是这么来产生image的:什么东西都是现编的,包括交叉编译器。这样做的原因是使一切都来的傻瓜式。只要配置一块模板,连上网,你需要做的就是等。。。。。
    举个例子,只要有最新的内核发布了,我们只要更新一下到最新的Makefile,最新的版本就会被下载下来,从而编译出最新的版本的内核了。OpenWRT就是这么做的。
    Download OpenWRT
    在你的开发主机上装svn,这个不会装去百度google,很多文档说明的。
    svn checkout svn://svn.openwrt.org/openwrt/trunk openwrt-trunk
    目录结构
    主要有四个目录:
    /tools
    /toolchain
    /package
    /target
    下面来说明一下各个目录的功能:
    tools和toolchain主要是公用的工具目录,用来安装编译器、或者C库之类的。当然你make之后还会出现三个新的目录:
        /build_dir/host(编译你目标板的一些独立工具的临时目录)
        /build_dir/toolchain-(编译特定版本的工具链的临时目录)
        /staging_dir/toolchain-(编译好的工具的安装目录)
    package顾名思义,就是用来放包的,各种包。
    target 给目标板来用的,里面放各种补丁,配置文件,记住,这些文件都是针对你的目标板的。
        /build_dir/(是编译过程中的一个临时目录)
        /dl(被编译工具下载来的东西统统都在这里面了)
    
    编译OpenWRT
    主机要安装的东西:
        apt-get install g++,
        apt-get install libncurses5-dev,
        apt-get install zlib1g-dev,
        apt-get install bison,
        apt-get install flex,
        apt-get install unzip,
        apt-get install autoconf,
        apt-get install gawk,
        apt-get install make,
        apt-get install gettext,
        apt-get install gcc,
        apt-get install binutils,
        apt-get install patch,
        apt-get install bzip2,
        apt-get install libz-dev,
        apt-get install asciidoc,
        apt-get install subversion.

    svn checkout svn://svn.openwrt.org/openwrt/trunk openwrt-trunk
    进入openwrt-trunk目录下
    ./scripts/feeds update -a
    ./scripts/feeds install -a
    
    make menuconfig    去选择你要编译的版本或者开发板吧。跟linux一样。
    要是你的网上不了外网的话,先设置个代理吧亲,你懂的。
    然后就是make这个make的过程会很漫长,因为这个Makefile会先下载工具代码,把工具编译出来再下载源码进行编译。
    如果你想在编译的时候打印更多的信息的话请用“make V=99”编译的过程中会下载所有的源到/dl目录下,在/build_dir/下面打补丁和编译,编译好的内容会放在/bin目录下面,/bin/packages放的是一些安装包。

阅读(815) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~