Buildroot文章翻译
2016-09-04 09:47
323 查看
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
??
? ?
原文地址: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
??
? ?
相关文章推荐
- [翻译自MOS文章]警告:在rhel7 or OL(RHCK)7上安装GI 12.2.0.1时 root.sh fails并有报错"CLSRSC-400"
- Build a UI with Layout Editor(翻译文章)Android Studio 可视化界面编辑器
- 【翻译自mos文章】重置Oracle Linux 7中root的口令
- Build a UI with Layout Editor(翻译文章)Android Studio 可视化界面编辑器
- SQL Server 2005 默认实例和命名实例(这文章翻译得真绕嘴)
- 【翻译自mos文章】OGG支持oracle db 11g中的不可见索引吗?
- 【翻译自mos文章】Oracle Cluster failed to start with ASM instance getting ORA-00443 ---改动/etc/resolv.conf所致
- 【翻译自mos文章】多租户中的service管理
- 编译buildroot后要做的事
- 用buildroot打造自己的Linux Toolchain
- 【翻译自mos文章】在不停止Clusterware的情况下重新设置hangcheck Timer
- 【翻译自mos文章】检查$ORACLE_HOME是否是RAC的HOME的方法以及relink RAC的Oracle binary的方法
- ./build_native 时出现please define NDK_ROOT
- 【翻译自mos文章】将Oracle 12c数据库从标准版convert到企业版
- 【翻译自mos文章】得到正在运行job的 session id
- 拥抱失败(很棒的文章,计划有空翻译成中文)
- 【翻译自mos文章】在rac中,使用asmcmd命令从 文件系统 move system datafile 到asm磁盘组的方法
- 我想翻译一点关于编写控件的文章,不知道有没有人喜欢?
- 【翻译自mos文章】将expdp的dmp文件从asm磁盘组里边放到本地文件系统里边
- ./build/linux/install-arm-sysroot.py