日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Buildroot文章翻译

發布時間:2023/11/30 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 ?? ? ?



總結

以上是生活随笔為你收集整理的Buildroot文章翻译的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。