Buildroot文章翻译

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

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

Buildroot简介

话说OpenWRT Buildroot 之前,先说一下Buildroot是什么东西吧。Buildroot实际上是一个编译的脚本,它包括一组Makefiles文件和补丁文件,主要用于简单系统或嵌入式系统的编译,支持多种CPU的架构,其中包括x86ARMMIPSPowerPC等。它可以生成交叉编译的工具链,文件系统,内核镜像和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 LibcuClibc)。

它主要有两个特征:

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

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

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

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

OpenWRT Buildroot的真实身份

有同鞋讲,网上有一票gcc,和binutilsuClibc的源代码,我不能自己下载,然后自己编译么?答案是可以滴,但是~~如果你不怕麻烦的话(原文翻译,老外真是有水平啊哈,了解大家都怕麻烦的特点,然后拿出来放大)。前面我们提过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://www.mzph.cn/news/383480.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Buildroot简介

Buildroot的用法和文档由Thomas Petazzoni提供,文稿由Karsten Kruse、Ned Ludd、Martin Herren等整理。 最后修改时间:2007-09-19 02:08:10 -0700 (Wed, 19 Sep 2007) l 关于Buildroot l 获取Buildroot l 使用Buildroot l 定制目标文…

【kali】文件尺寸不符,您使用的镜像正在同步中

换源时候报错: vim /etc/apt/sources.list 进去后刚开始添加的阿里源 deb https://mirrors.aliyun.com/kali kali-rolling main non-free contrib deb-src https://mirrors.aliyun.com/kali kali-rolling main non-free contrib执行后报错 文件尺寸不符&#xff0c…

【kali】kali环境下安装dvwa

STEP1:从github下载dvwa git clone https://github.com/ethicalhack3r/DVWA Q:我要自己安装git吗? A:kali不用啦,一般都自带有,但是普通的ubuntu和debian上是没有的哦。 Q:可以换个github网址…

Linux下的C编程实战之文件系统编程

在Linux平台下对文件编程可以使用两类函数:(1)Linux操作系统文件API;(2)C语言I/O库函数。前者依赖于Linux系统调用,后者实际上与操作系统是独立的,因为在任何操作系统下,…

【kali】kali设置burpsuite抓包dvwa

kali自带burpsuite 配置代理 burpsuite是通过代理来抓包dvwa的 burpsuite:proxy—> options 里边监听的应该是127.0.0.1:8080 (端口ip如果撞车了都可以自己改) 火狐: preferences–>最下边的network settings点击settings —…

fopen函数简介

函数简介 函数功能&#xff1a;打开一个文件 函数原型&#xff1a;FILE * fopen(const char * path,const char * mode); 相关函数&#xff1a;open&#xff0c;fclose&#xff0c;fopen_s[1]&#xff0c;_wfopen 所需库&#xff1a;<stdio.h> 返回值&#xff1a;文件顺利…

【kali】kali换了root权限后无法打开firefox浏览器

从普通权限换成root权限后发现火狐进不去鸟&#xff01;&#xff01; 终端报错&#xff1a; Running firefox as root in a regular user’s sessin is not supported.($HOME is /home/miehahaha which is owned by uid 1000) 分析&#xff1a; 是的&#xff0c;原来普通权限m…

【win10】局域网内两台win10共享文件夹

https://jingyan.baidu.com/article/93f9803f3e9788e0e46f55c8.html

CentOS 7关闭firewalld启用iptables

在CentOS7中&#xff0c;有很多CentOS 6中的常用服务发生了变化。 其中iptables是其中比较大的一个。防火墙iptables被firewalld取代。 本文将介绍&#xff0c;如果采用systemctl关闭firewalld&#xff0c;开启iptables。 1.关闭firewalld [roothwcentos70-01 system]# systemc…

wpa_supplicant wifi密码错误检测

system("/usr/sbin/wpa_supplicant -Dnl80211 -iwlan0 -f /tmp/wpa_log -c/tmp/wpa_supplicant.conf -d -t -B &"); 在/tmp/wpa_log中查看是否有如下的字符串&#xff1a; 1. 针对WPA&#xff0f;WPA2加密方式 //1473218403.305655: wlan0: WPA: 4-Way Handsh…

CentOS 7 安装nginx

1.安装pcre pcre-devel yum install pcre pcre-devel -y rpm -qa pcre pcre-devel 2.安装openssl-devel yum install -y openssl-devel rpm -qa openssl-devel openssl 3.下载nginx cd /home/testuser/mkdir toolscd tools/wget -q http://nginx.org/download/nginx-1.9.9.…

MPEG4与.mp4

流媒体应用中TS和MP4格式分析应该是封包格式。不能简单理解成MPEG4的简称。要详细解释这个问题&#xff0c;需要提一下MPEG4和.mp4在概念上的区别。 一般来说&#xff0c;仅提“MPEG4”&#xff0c;是指一种视频压缩算法。可以把原始画面通过数学运算变换成一组二进制数据&…

MP4文件格式的解析,以及MP4文件的分割算法

mp4应该算是一种比较复杂的媒体格式了&#xff0c;起源于QuickTime。以前研究的时候就花了一番的功夫&#xff0c;尤其是如何把它完美的融入到视频点播应用中&#xff0c;更是费尽了心思&#xff0c;主要问题是处理mp4文件庞大的“媒体头”。当然&#xff0c;流媒体点播也可以采…

MP4文件格式详解

一、基本概念 1.mp4概述 MP4文件中的所有数据都装在box&#xff08;QuickTime中为atom&#xff09;中&#xff0c;也就是说MP4文件由若干个box组成&#xff0c;每个box有类型和长度&#xff0c;可以将box理解为一个数据对象块。box中可以包含另一个box&#xff0c;这种box称为c…

H264—MP4格式及在MP4文件中提取H264的SPS、PPS及码流

SkySeraph Apr 1st 2012 Email&#xff1a;skyseraph00163.com 一、MP4格式基本概念 MP4格式对应标准MPEG-4标准(ISO/IEC14496) 二、MP4封装格式核心概念 1 MP4封装格式对应标准为 ISO/IEC 14496-12&#xff08;信息技术 视听对象编码的第12部分: ISO 基本媒体文件格式/Info…

AAC音频格式分析

关于AAC音频格式基本情况&#xff0c;可参考维基百科http://en.wikipedia.org/wiki/Advanced_Audio_Coding AAC音频格式分析 AAC音频格式有ADIF和ADTS&#xff1a; ADIF&#xff1a;Audio Data Interchange Format 音频数据交换格式。这种格式的特征是可以确定的找到这个音频数…

tar压缩隐藏文件

如果想tar 压缩包含隐藏文件的目录&#xff0c;同时排除掉部分无用的目录 tar -czvf 20161009.tar.gz * .[!.]* --exclude .git 在Linux下打包tar文件时添加密码的方法 在当前目录下有一个pma目录的文件夹: 1、使用tar对文件压缩加密&#xff1a; 代码如下: # tar -zcvf - pma…

linux 怎么把^M去掉

在linux下&#xff0c;不可避免的会用VIM打开一些windows下编辑过的文本文件。我们会发现文件的每行结尾都会有一个^M符号&#xff0c;这是因为 DOS下的编辑器和Linux编辑器对文件行末的回车符处理不一致&#xff0c; 对于回车符的定义&#xff1a; windows&#xff1a;0D0A un…

关于cp命令中拷贝所有的写法

今天在编写一个脚本的时候&#xff0c;发现一个比较奇怪的问题&#xff1a;就是在使用cp拷贝当前目录下所有文件到目标目录的时候&#xff0c;源和目标大大不同。原来一直没有留意有这样的问题&#xff0c;后来查了些资料&#xff0c;才知道以前一直使用的格式有误&#xff0c;…

cp -r 和 cp -R 的区别

今天倒腾linux根文件系统的时候发现 cp -r /dev /dev_bak 时&#xff0c;竟然会 将磁盘设备中的数据进行一次拷贝&#xff0c;而不是仅仅建立设备文件。于是到网上搜了一把&#xff0c;收获不小。http://www.loveunix.net/html/200407/33920.html这里有人问同样的问题&#xff…