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.pswp.cn/news/383480.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/383480.shtml
英文地址,請注明出處:http://en.pswp.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…