OpenWRT文章翻译之(一)----OpenWRT Buildroot简介

原文地址:http://wiki.openwrt.org/about/toolchain

Buildroot简介

话说OpenWRT Buildroot 之前,先说一下Buildroot是什么东西吧。Buildroot实际上是一个编译的脚本,它包括一组Makefiles文件和补丁文件,主要用于简单系统或嵌入式系统的编译,支持多种CPU的架构,其中包括x86、ARM、MIPS和PowerPC等。它可以生成交叉编译的工具链,文件系统,内核镜像和bootloader镜像等。相关的内容可以到Buildroot的主页去查看http://www.buildroot.org

OpenWRT Buildroot简介

那么OpenWRT Buildroot又是什么玩儿呢?实际上也是一个Buildroot,只是它是专门为编译OpenWRT而移植过来的编译OpenWRT系统的脚本,而至于为什么它叫OpenWRT Buildroot,那是因为OpenWRT移植过来的时候,做了大量的修改!OpenWRT Buildroot的主要任务就是生成交叉编译链和文件系统。

交叉编译工具链

交叉编译链是一套交叉编译工具,它可以为你的目标系统编译源代码文件。那么为什么叫交叉编译工具链呢?因为大部分嵌入式或是微型的小系统,由于CPU或是Flash的限制,或是避免浪费,都不会把编译工具链放到系统里面去,当然X86的例外,嘿嘿。那我的代码怎么才能编译到嵌入式系统里面呢?我们通常都是在X86通用Linux系统上面使用特定的工具,编译生成目标系统可以执行的代码,再上传到目标系统。而这个编译平台和目标平台不同的特定的编译工具链即是前面所讲的交叉编译工具链。

一个交叉编译工具链主要包括三部分:编译器(gcc),二进制工具binutils(汇编器、链接器等)和标准的C函数库(GNU Libc或uClibc)。

它主要有两个特征:

1.可以运行在X86通用CPU架构之上;

2.可以编译生成特定CPU架构(ARM,MIPS等)的代码。

OpenWRT交叉编译工具链使用的标准C函数库是uClibc,一个专为嵌入系统设计的小型标准C函数库。所以即便的是使用ALIX.2D2的板子,这个也是X86的CPU,使用OpenWRT系统,你在X86架构Linux上编译的东西,也无法在OpenWRT上面运行。

好吧,我承认有点偏题了。。。

OpenWRT Buildroot的真实身份

有同鞋讲,网上有一票gcc,和binutils,uClibc的源代码,我不能自己下载,然后自己编译么?答案是可以滴,但是~~如果你不怕麻烦的话(原文翻译,老外真是有水平啊哈,了解大家都怕麻烦的特点,然后拿出来放大)。前面我们提过OpenWRT Buildroot是许多Makefiles文件和补丁文件的集合,它会为我们自动配置这个源代码,为每个版本打上已知的补丁,最后生成确实可用的交叉编译工具链。

除此之外,它还可以生成系统,这个篇幅比例不太合适啊,OpenWRT Buildroot两个主要任务的其中一个怎么介绍这么少呢?没有办法,原文就是酱紫的。。。

最后表达一下对OpenWRT Buildroot的景仰之情,虽然OpenWRT Buildroot主要是面向开发都的,但是一般没有专业技能基础的终端用户也可以使用它编译生成你自己的系统固件。

OpenWRT文章翻译之(二)----OpenWRT Buildroot安装

原文地址:http://wiki.openwrt.org/doc/howto/buildroot.exigence

简介

OpenWRT Buildroot是创建OpenWRT系统首选的工具链。OpenWRT Buildroot要求使用GNU Linux的发行版本,独立安装到PC机上,或是虚拟机里面都行。

但是Cygwin则可能会出错,而BSD或是MacOSX,有可能使用OpenWRT Buildroot成功生成目标系统镜像,但是这并不能保存生成的镜像的正确性,汗一个,看来大家还是使用原版的Linux吧,因为这个水有点深了,,,

系统需求

1. 350MB的空间用于下载源代码文件

2. 3~4GB空间用于生成交叉编译工具链和OpenWRT系统镜像.

安装过程

1. 安装svn,这个是用来获取服务器的OpenWRT源代码的

下面就按Ubuntu的来安装吧,其它版本的自己Google,百度一下吧

sudo apt-get update

sudo apt-get install subversion build-essential

build-essential好像是安装gcc之类的编译器跟环境,subversion,就是svn。

2. 通过svn下载OpenWRT的源代码

mkdir ~/openwrt

cd openwrt

svn co svn://svn.openwrt.org/openwrt/trunk/

cd trunk

包括OpenWRT Buildroot脚本的OpenWRT源代码会下载到trunk文件夹里面。

3. 下载安装feeds脚本

这一项是可选的,不过feeds也是很有用的一个工具,可以往OpenWRT里面添加软件包,安装方法如下:

./script/feeds update -a

./script/feeds install -a

4. 检查使用Buildroot编译OpenWRT源代码所需要安装的软件包,进入源代码根目录,运行下面三条语句中任意一条

make defconfig

make prereq

make menuconfig

检查之后,它会列出系统需要安装的软件包,根据这个列表来安装编译OpenWRT所需的软件。

下面仅列出Ubuntu所需要安装的包

Ubuntu:

$ sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk flex

Ubuntu 9.10,需要安装下列软件包(30-03-2011):

$ sudo apt-get install gcc-multilib bison autoconf screen gcc g++ binutils patch bzip2 flex make gettext unzip libc6 git-core

Ubuntu 11.10:

$ sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt

Ubuntu 12.04LTS:

$ sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl

Ubuntu 64bit:

$ sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core gettext

下面是各个Linux发行版本编译OpenWRT所需要安装的软件包列表

Prerequisite DebianSuse Red HatOS X (via MacPorts) FedoraNetBSD

asciidoc asciidocasciidoc asciidocasciidoc asciidoc?

bash bash bash ? bash ? bash

binutils binutilsbinutils binutilsbinutils binutils?

bzip2 bzip2 bzip2 bzip2 bzip2 bzip2 ?

fastjar fastjarfastjar libgcjfastjar libgcj?

flex flex flex ? flex flex ?

git git-core git-core ? ? ? ?

g++ g++ gcc-c++ gcc-c++? gcc-c++?

gcc gcc gcc gcc ? gcc ?

getopt util-linuxutil-linux ?getopt ?getopt

GNU awk gawk gawk gawk gawk gawk ?

gtk2.0-dev libgtk2.0-dev? gtk2-develgtk2 gtk2-devel?

intltool-update intltoolintltool intltoolintltool intltool?

jikes — jikes ? jikes — ?

libz, libz-dev zlib1g-devzlib-devel zlib-develzlib zlib-devel?

make make make ? gmake make gmake

ncurses libncurses5-devncurses-devel ncurses-develncurses ncurses-devel?

openssl/ssl.h libssl-devlibopenssl-devel openssl-developenssl openssl-devel?

patch patch patch ? patchutils patch?

perl-ExtUtils-MakeMaker perl-modulesperl-ExtUtils-MakeMaker perl-ExtUtils-MakeMakerp5-extutils-makemaker perl-ExtUtils-MakeMaker?

python2.6-dev python2.6-devpython-devel ?python26 ??

rsync rsync rsync ? rsync rsync ?

ruby ruby ruby ? ruby ruby ?

sdcc sdcc sdcc ? sdcc sdcc ?

unzip unzip unzip ? unzip unzip ?

wget wget wget wget wget wget ?

working-sdcc —? ? ? — ?

xgettext gettext? ? gettext gettext?

xsltproc xsltproclibxslt ?libxslt libxslt?

zlib, zlib-static zlib1g-devzlib-devel ?? ? ?

Buildroot文章翻译相关推荐

  1. 计算机专业英语文章翻译,计算机专业英语英汉双语文章翻译

    计算机专业英语英汉双语文章翻译 五项将改变世界的技术 It's a tall order: Over the next few decades, the world will need to wean ...

  2. 学术不端网查重靠谱吗_毕业论文查重把知网上的英文文章翻译成中文可以吗

    据说CNKI中国知网5.0就已经添加了中英文互译检测.简单百度一下发现学术不端网有关于:知网查重能否查英文论文呢?英语论文翻译过来查重能过吗?等等这样关于知网查重系统和英文文献的问题有很多.我现在用的 ...

  3. Android官方文章翻译之管理设备苏醒状态(Managing Device Awake State)(二)

    这是Managing Device Awake State的下半篇,上半篇请看:Android官方文章翻译之管理设备苏醒状态(Managing Device Awake State)(一) 在了解接下 ...

  4. 谈技术文章翻译的信雅达-上

    谈技术文章翻译的信雅达-上 Horin|贺勤         Email: horin153@msn.com         Blog: http://blog.csdn.net/horin153/ ...

  5. 火车头采集器文章翻译插件(文章标题内容中英双语对照|自动插入相关图片)

    火车头采集器文章翻译插件(文章标题内容中英双语对照|自动插入相关图片) 为了保护接口压力防止被封IP: 请把采集的间隔时间调整为10000~100000 火车头采集器文章翻译插件(文章标题内容中英双语 ...

  6. 谈技术文章翻译的信雅达-下

    谈技术文章翻译的信雅达-下 Horin|贺勤         Email: horin153@msn.com         Blog: http://blog.csdn.net/horin153/ ...

  7. 站群网站批量文章翻译发布插件

    站群网站多语言发布可以覆盖更多的用户,站群网站通过文章翻译插件可以将同一篇文章自动翻译成不同语言发布到不同站点,文章翻译插件支持将中文自动翻译成俄语.德语.日语.英语的那个多个语种,插件内容至SEO内 ...

  8. 在线长篇英语文章翻译工具

    在线长篇英语文章翻译,整篇英语文章保留段落格式自动翻译成中文.日文.德文等多语言,并且支持多篇英语文章批量导出,批量翻译导出本地,支持txt/excel/word/html等多种格式. 在线长篇英语文 ...

  9. AI在线文章翻译工具多翻译api接口对接集成工具

    AI在线文章翻译具有多语言的翻译,互译和回译选项,只需要简单的操作就可以对我们的批量文章进行在线翻译处理,生成我们需要的文种,对于翻译质量的把控,AI在线文章翻译工具对接谷歌等大厂的翻译接口,也具有自 ...

最新文章

  1. Oracle笔记 七、PL/SQL 异常处理
  2. arm-linux-g 找不到头文件,交叉编译错误“ arm-none-eabi-g ++找不到条目符号”
  3. 如何在站点静态文件下查找某关键字并修改文件名?
  4. MeasureSpec学习 - 转
  5. Protobuf编码指南
  6. Java学习笔记1.2.2 使用Java集成开发环境 - IntelliJ IDEA
  7. Echarts横坐标倾斜,顶部显示数字
  8. day 13 课后作业
  9. RabbitMQ下载与安装(window版) 自我总结
  10. 有意思的域名Hack网站
  11. SPSS课程学习思路及流程
  12. Ubuntu和windows共享文件,Windows和windows共享文件
  13. 几款永久免费内网穿透,好用且简单
  14. 数据仓库面试题-初级
  15. VS6中出现:由于找不到MSVCRTD.DLL,无法继续执行代码
  16. ROS1/2 C++ talker.cpp 对比案例
  17. 将网页保存为mht文件
  18. 三阶魔方还原程序心得
  19. 相位噪声基础及测试原理和方法
  20. 求平方根序列前N项和

热门文章

  1. IOS-C文件的创建于初始化函数.void init() write_file()
  2. 如何更改Visual Studio 2008中类文件引用的默认名称空间?
  3. Web Service 缓存
  4. vue.js java php_准吗?Java程序员喜欢AngularJS,PHP程序员喜欢Vue.js!
  5. onpagefinished等了很久才执行_今天自律了吗?停课不停锻炼 才是战疫正确姿势
  6. syslog可能引起得问题_牙齿经常有问题?可能是这4个坏习惯引起的,要改正
  7. ios html清除缓存图片,iOS,如何清理缓存的图片
  8. java实现红包要多少钱_java实现红包的分配算法
  9. java 1.6u29 下载_jdk1.6 64位下载|JDK 6(Java SE Development Kit)下载6u43 64位官方版_java运行环境 IT猫扑网...
  10. java foreach和for循环区别_java相关:老生常谈foreach(增强for循环)和for的区别