搭建openwrt编译环境

注意!!!

1. 请使用一个非root用户来完成这些工作!

2. 这里的所有命令都在OpenWrt编译系统的根目录下运行(例如~/openwrt/trunk/)

3. 编译系统的绝对路径中不能含有空格!

4. 如果你使用root用户下载了源码,请把你下载来的源码的所有者更改为一个非root用户。(sudo chown -R user:user /openwrt/)


获取源代码及基本条件

1.安装git以下载OpenWrt源码。安装编译工具以进行交叉编译:

sudo apt-get update
sudo apt-get install git-core build-essential libssl-dev libncurses5-dev unzip

feeds中的部分软件包可能只能通过subversion (缩写: svn)或者mercurial下载源代码。如果你需要安装这些软件包,你同时也应当安装svn和mercurial:

sudo apt-get install subversion mercurial

2.通过git来下载OpenWrt bleeding edge(trunk版本):(参见Downloading Sources以获得更多选择):

git clone git://git.openwrt.org/openwrt.git

这将会创建’openwrt’这个目录。这个目录将会是OpenWrt的编译主目录。
OpenWrt的交叉编译工具链也已经被包含在内。

3.(可选)下载并安装所有可用的”feeds”(参见OpenWrt Feeds以获取更多选择):

cd openwrt
./scripts/feeds update -a
./scripts/feeds install -a

4.运行下面的命令让OpenWrt编译系统检查你的编译环境中缺失的软件包:

make defconfig
make prereq
make menuconfig

在这里你讲可以选择你想要编译的软件包。

5.然后你就可以开始编译了。参见:build


 

安装编译所需的软件包

  • Arch Linux
pacman -S --needed subversion asciidoc bash bc binutils bzip2 fastjar flex git gcc util-linux gawk intltool zlib make cdrkit ncurses openssl patch perl-extutils-makemaker rsync sdcc unzip wget gettext libxslt boost libusb bin86 sharutils b43-fwcutter findutils
  • Debian 7 Wheezy:
apt-get install libncurses5-dev zlib1g-dev gawk
  • Fedora 22 – 64Bit:
dnf install -y subversion binutils bzip2 gcc gcc-c++ gawk gettext flex ncurses-devel zlib-devel zlib-static make patch unzip perl-ExtUtils-MakeMaker glibc glibc-devel glibc-static quilt sed sdcc intltool sharutils bison wget openssl-devel
  • openSUSE 13.2:
zypper install asciidoc bash bc binutils bzip2 fastjar flex git-core gcc-c++ gcc util-linux gawk gtk2-devel intltool jikes zlib-devel mercurial make genisoimage ncurses-devel libopenssl-devel patch perl-ExtUtils-MakeMaker python-devel rsync ruby sdcc unzip wget gettext-tools libxslt-tools zlib-devel subversion
  • 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 mercurial bzr ecj cvs unzip
  • Ubuntu 64bit:
sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core gettext libssl-dev
  • Centos x86-64:
yum install subversion binutils bzip2 gcc gcc-c++ gawk gettext flex ncurses-devel zlib-devel make patch unzip perl-ExtUtils-MakeMaker  glibc glibc-devel glibc-static quilt ncurses-lib sed sdcc intltool sharutils bison wget git-core openssl-devel xz
  • Gentoo:
$ echo \
    app-arch/{bzip2,fastjar,sharutils,unzip,zip} \
    app-text/asciidoc dev-java/{icedtea:7,jikes,oracle-jdk-bin} \
    dev-libs/{libusb-compat,libxslt,openssl} dev-util/intltool \
    dev-vcs/{git,mercurial} net-misc/{rsync,wget} \
    net-wireless/b43-fwcutter sys-apps/{gawk,util-linux} \
    sys-devel/{bc,bin86,binutils,dev86,flex,gcc[gcj],gettext} \
    sys-libs/{ncurses,zlib} virtual/{cdrtools,perl-ExtUtils-MakeMaker} \
    x11-libs/gtk+:2 \
        | sed 's/\s/\n/g' \
            | sort \
                | sudo tee /etc/portage/sets/openwrt-prerequisites \
                    && sudo emerge -DuvNa '@openwrt-prerequisites'
  •                     && sudo emerge -DuvNa '@openwrt-prerequisites'

已知的不能编译OpenWrt的Linux发行版

  • alpine linux使用musl作为libc的替代品。一些工具无法被编译通过。(例如mtd-utils, e2fsprogs)也许相关的检测代码需要被重写。(gcc -dumpmachine outputs a result where some scripts will fail – tools/sed)

 

各种版本的简介

GIT

使用以下命令之一可以通过git下载一份你想要的源码:

trunk (主开发分支)

开发版的源码 (trunk)包括了文档以及实验性的 补丁

从官方源下载
git clone git://git.openwrt.org/openwrt.git

更多额外的软件包在feeds中提供。(例如Luci, packages, routing, management等feed源)。请使用OpenWrt编译系统下载正确的feed源。

更多版本参考:https://dev.openwrt.org/wiki/GetSource

 

 

 

 

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注