User Tools

Site Tools


zh-tw:doc:howto:buildroot.exigence

OpenWrt 建置 – 安裝

OpenWrt Buildroot 偏好使用 toolchain 來建置OpenWrt。建議你使用一個 GNU/Linux Distribution,不論是獨立安裝的, 或是執行於虛擬環境的 (VMwareQemu)上。

Cygwin 無法正常的運作,也不保證可以成功的建置於 ~BSD 或 MacOSX 系統上。 你可以試試,並回報你的結果。不要忘了先閱讀 問題排除.

先前準備

  • 350 MB 的硬碟空間供下載原始碼
  • 3-4 GB 的硬碟空間供OpenWrt的建置

程序

1. 不要使用 root帳號
2. 所有的命令必須在 <buildroot dir> 目錄底下執行, 如 ~/openwrt/trunk/ 3. 不要在完整路徑名中有空白的資料夾下建置
  1. 安裝 subversion (short: svn), 來下載OpenWrt的原始碼較為便利,且安裝 build tools 來幫助編彙程序:
    sudo apt-get update
    sudo apt-get install subversion build-essential
  2. 使用svn下載OpenWrt的原始碼
    mkdir ~/openwrt
    cd ~/openwrt
    svn co svn://svn.openwrt.org/openwrt/trunk/
    cd trunk
    • 這會產生 'trunk'資料夾,為OpenWrt原始碼主要的資料夾。
    • 以版本 R27988來說,全部有14,382個檔案,總大小約 150 MiB
    • 包含OpenWrt Buildroot system.
  3. 使用feeds script下載並安裝 feeds。(選擇性)
    ./scripts/feeds update -a
    ./scripts/feeds install -a
    • 版本 7367之後,trunk資料夾已包含 26,650 個檔案,總大小約 302 MiB (如需安裝個別套件: ./scripts/feeds install PACKAGENAME)
  4. 使用以下其中一個命令,可以檢查是否你的建置OpenWrt的環境中有遺漏的套件:
    make defconfig
    make prereq
    make menuconfig
    • 這會列出需要建置OpenWrt的系統中遺漏的套件。
  5. 使用 package management commands安裝遺漏的套件。參照以下的範例表。

:!: 在設定並執行編譯後 (如 這裡所描述), trunk資料夾包含 244,451 個檔案,總大小為 3.2GiB!

已知的所需的環境和套件表

這個表格提供不同的Linux發行版所需的套件名稱。

Prerequisite Debian Suse Red Hat OS X (via MacPorts) Fedora NetBSD
asciidoc asciidoc asciidoc asciidoc asciidoc asciidoc ?
bash bash bash ? bash ? bash
binutils binutils binutils binutils binutils binutils ?
bzip2 bzip2 bzip2 bzip2 bzip2 bzip2 ?
fastjar fastjarfastjar libgcj fastjar libgcj ?
flex flexflex ? flex flex ?
git git-core git-core ? ? ? ?
g++ g++ gcc-c++ gcc-c++ ? gcc-c++ ?
gcc gcc gcc gcc ? gcc ?
getopt util-linux util-linux ? getopt ? getopt
GNU awk gawk gawk gawk gawk gawk ?
gtk2.0-dev libgtk2.0-dev ? gtk2-devel gtk2 gtk2-devel ?
intltool-update intltool intltool intltool intltool intltool ?
jikes jikes ? jikes ?
libz, libz-dev zlib1g-dev zlib-devel zlib-devel zlib zlib-devel ?
make make make ? gmake make gmake
ncurses libncurses5-dev ncurses-devel ncurses-devel ncurses ncurses-devel ?
openssl/ssl.h libssl-dev libopenssl-devel openssl-devel openssl openssl-devel ?
patch patch patch ? patchutils patch ?
perl-ExtUtils-MakeMaker perl-modules perl-ExtUtils-MakeMaker perl-ExtUtils-MakeMaker p5-extutils-makemaker perl-ExtUtils-MakeMaker ?
python2.6-dev python2.6-dev python-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 xsltproc libxslt ? libxslt libxslt ?
zlib, zlib-static zlib1g-dev zlib-devel ? ? ? ?

可惜的是並非所有的相依性都可以透過 make config來檢查:

Package Prerequisite Debian Suse Red Hat OS X Fedora NetBSD
intltool [Perl] XML::Parser libxml-parser-perl ? ? ? ? ?

範例

Debian 5.0 Lenny:

# aptitude install gawk ncurses-dev unzip zlib1g-dev

Debian 6.0 Squeeze:

# aptitude install libncurses5-dev zlib1g-dev gawk flex libssl-dev sdcc-nf

Fedora 17:

zh-tw/doc/howto/buildroot.exigence.txt · Last modified: 2012/10/25 08:43 (external edit)