User Tools

Site Tools


ru:doc:howto:buildroot.exigence

OpenWrt Buildroot – Установка

OpenWrt Buildroot - наиболее предпочтительный набор инструментов для сборки OpenWrt. Рекомендуется использовать GNU/Linux Distribution, либо автономную установку или отдельную систему в виртуальной среде (VMware или Qemu). Cygwin вероятно, не корректно работает, и хотя возможно собрать образ OpenWrt на ~BSD или MacOSX системах, успех не гарантирован. Не стесняйтесь попробовать и поделиться результатами. Не забудьте прочитать Troubleshooting.

Требования к системе

  • 350 МБ места на жестком диске для загрузки исходных кодов;
  • 3-4 ГБ места на жестком диске для сборки (кросс-компиляции) OpenWrt.

Процедура

1. Все команды выполнять из под обычного пользователя (не root)!
2. Все команды OpenWrt Buildroot выполнять в директории <buildsystem root>, т.е. ~/openwrt/trunk/
3. Не собирать в директории имеющей в названии пути пробелы
  1. Установите subversion (коротко: svn), для загрузки исходного кода OpenWrt, и build tools для компиляции:
    sudo apt-get install subversion build-essential
  2. Загрузка исходного кода OpenWrt с помощью svn.
    mkdir ~/openwrt
    cd openwrt
    svn co svn://svn.openwrt.org/openwrt/trunk/
    cd trunk
    • эта команда создаст директорию 'trunk', которая является основной директорией OpenWrt
    • для trunk ревизии R27988, объем исходного кода составляет 14,382 файла, общим размером 150 МБ
    • включает в себя OpenWrt Buildroot system.
    • более подробно о процессе загрузки исходного кода Downloading Sources.
  3. Скачиваем и устанавливаем feeds используя feeds скрипты. (optional)
    ./scripts/feeds update -a
    ./scripts/feeds install -a
    • после этого, ревизия 7367, папка trunk содержит 26,650 файлов общим размером 302 МБ (установка отдельного пакета: ./scripts/feeds install НАЗВАНИЕПАКЕТА)
  4. Используйте следующие команды для проверки наличия необходимых пакетов:
    make defconfig
    make prereq
    make menuconfig
    • будет выведен список недостающих системных пакетов, необходимых для успешной сборки OpenWRT с помощью Buildroot.
  5. Установите недостающие пакеты с помощью команды менеджера пакетов. Смотрите примеры и таблицу ниже для более подробной информации.
  6. Продолжайте с build или Build OpenWrt on Mac OS X 10.7 Lion

:!: После конфигурации и работы make (как описано здесь), папка trunk содержит 244,451 файл общим размером 3.2ГБ!

Таблица известных 'предпосыллок' и соответствующие им пакеты

Таблица с именем пакета для каждой 'предпосылки' разделена для различных дистрибутивов Linux.

Предпосылка 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 zlib1g-dev zlib-devel ? ? ? ?

К сожалению, не все зависимости проверяются командой make config:

Пакет Предпосылка 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 11:

# yum install binutils bzip2 gawk gcc gcc-c++ gettext make ncurses-devel patch unzip wget zlib-devel flex git-core

openSuSE 11.1

# zypper install binutils bzip2 gawk gcc gcc-c++ gettext make ncurses-devel patch unzip wget zlib-devel flex git-core

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 64bit:

$ sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core gettext

Mac OS X (проверено на 64-bit Lion):

  1. Скачайте MacPorts .pkg Installer, и установите (горизонтальная прокрутка для всех команд):
  2. sudo port -v selfupdate
  3. sudo port install coreutils asciidoc bzip2 fastjar flex getopt gtk2 intltool jikes zlib openssl p5-extutils-makemaker python26 rsync ruby sdcc unzip gettext libxslt bison gawk autoconf wget gmake ncurses e2fsprogs osso-uuid
  4. Для 64-bit OS X: после, проведенной выше, проверки исходного дерева с помощью SVN, нам необходимо отредактировать trunk/tools/Makefile
  • на линии 17, стереть "e2fsprogs", но оставить остальные линии
  • закоментировать строки 22, 50, 52, 58 хэш-символом '#', поместив его в начале каждой строки. They are the lines that issue qemu to be built, followed by the build dependancies for mtd-utils (dep: e2fsprogs), qemu (dep: e2fsprogs), and e2fsprogs respectively.
  • Then copy the required headers and libraries to compile tools/mtd-utils
    cd trunk;
    mkdir -p staging_dir/host/include/e2fsprogs;
    cp -R /opt/local/include/ossp staging_dir/host/include/e2fsprogs/;
    cp /opt/local/lib/libuuid* staging_dir/host/lib 

See thread: [HOWTO] Build OpenWRT Trunk from svn on Mac OS X 10.7 Lion for more details

Notes:

  • In Debian or Ubuntu use
    apt-cache search ""
    to find prerequisite packages. Naming is sometimes different
  • In openSuSE some packages require additional repositories. Search on http://packages.opensuse-community.org and add repositories like that:
    zypper ar "http://download.opensuse.org/repositories/devel:/languages:/perl/openSUSE_11.1/devel:languages:perl.repo"
  • To build your images on a Mac OS X Machine all you need is the package "fileutils" from the fink project. (Tested on Leopard 10.5.3)

Загрузка исходных кодов

Short version: https://dev.openwrt.org/wiki/GetSource
You have two choices:

  • Download the latest stable release, or
  • Download the bleeding edge development snapshot (currently named "Attitude Adjustment", but often called "trunk").

The official repository is in svn but you can also choose to use git if you're building trunk. Refer to the GetSource for the URLs and amend the following commands appropriately.

Using Release Sources (stable)

As of this writing, the latest stable release is OpenWrt 10.03 "Backfire". There is a Backfire branch in SVN repository, which is still slowly being updated with verified patches. Using it will most likely produce a stable and working OpenWrt installation, but all the newest features and patches might not be there. As an example, this will check out the source code that the backfire release is built from (plus the latest backported fixes from trunk):

svn checkout svn://svn.openwrt.org/openwrt/branches/backfire

You could alternatively download a 'tagged' version of the backfire sources. For instance, if you insist on using the pristine release sources (no backported fixes applied after the last release), you could use:

svn checkout svn://svn.openwrt.org/openwrt/tags/backfire_10.03

You can check out a certain revision:

svn checkout --revision=24045 svn://svn.openwrt.org/openwrt/branches/backfire/ ./build_dir

As for the packages copy feeds.conf.default in ./build_dir to feeds.conf and add "@24045" at the end of the line that checks out the package feed:

src-svn packages svn://svn.openwrt.org/openwrt/packages@24045

Using Development Sources (bleeding edge)

The development branch (trunk) contains everything from documentation to experimental patches.

  • get latest
    svn checkout svn://svn.openwrt.org/openwrt/trunk/
  • get certain revision

Примечания

  • Beware of unusual environment variables such as
    • GREP_OPTIONS which should not have –initial-tab or other options affecting its output
    • SED should not be set. If it is, run `unset SED` before compiling. (See Ticket 10612.)
ru/doc/howto/buildroot.exigence.txt · Last modified: 2015/04/17 13:47 by Varkus