Настраиваем wireguard на роутере mikrotik под управлением openwrt

Troubleshooting

First get more information on the problem using the make option “make V=99”.

Missing source code file, due to download problems.

First check if the URL path in the make file contains a trailing slash, then try with it removed (helped several times).
Otherwise try to download the source code manually and put it into “dl” directory

Compilation errors.

Try to update the main source and all the feeds (Warning! May result in other problems).
Check for a related bug in (TRAC), use the filters to find it.
Otherwise report the problem there, by mentioning the package, the target data (CPU, image, etc.) and the code revisions (main & package).
Compiling with make -j … sometimes gives random errors. Try compiling without -j first before reporting the problem.

Research platform

Many teams who are doing cutting-edge research into networking topics use OpenWrt as a stable platform for their work.
As their work moves from the experimental realm into practical, production-quality code, it is available in OpenWrt builds first.
Some teams using OpenWrt include:

  • Continuing development of the fq_codel and cake algorithms that decrease bufferbloat.
  • The Make Wi-Fi Fast team has been working to decrease queueing and latency in the wi-fi stack, and is testing out their airtime fairness code using OpenWrt.
  • Homenet provides implementation of zeroconf IPv6 (and IPv4) routing, prefix assignment and service discovery for a home network consisting of multiple routers connected to multiple service providers. There’s a hnet-full package for OpenWrt.

OpenWrt和LEDE宣布合并

2018年1月,OpenWrt和以前的LEDE项目同意以OpenWrt这一名称进行合并。

新的、统一的OpenWrt项目将按照 由前LEDE项目建立的章程 进行管理。以前的LEDE和OpenWrt项目的积极成员将继续在统一的OpenWrt上工作。

共创未来

LEDE分支合并到OpenWrt中将不会改变统一项目所采用的整体技术方向。我们将继续致力于提高稳定性和维护发行版本,同时仍会通过频繁的更新来解决重要的错误和安全问题,就像我们对LEDE 17.01及其之后的17.01.4的发布所做的一样。

旧的15.05以前版本的OpenWrt CC版本将不再受合并项目的支持,这些版本将不再有任何安全性或错误修复。OpenWrt CC 15.05发行版系列将获得有限的安全性和错误修复,但尚未完全集成到发行版自动化中,所以二进制发行版目前没有发布。

LEDE 17.01版本将继续获得对源代码和二进制版本的全面安全性和错误修复支持。
我们正规划在未来几个月内以新名称发行新的主要版本。

合并后的项目将使用基于以前的LEDE项目的代码库。OpenWrt特定的修补程序不会放在LEDE存储库中,但符合LEDE代码质量要求的已集成到新的项目树中。源代码将托管在git.openwrt.org,持续同步的镜像位于Github。原来的OpenWrt代码库已经在Github上存档供将来参考。

不再使用的OpenWrt项目由软件公共利益(SPI) — 美国501(c)(3) 非营利组织 管理我们的OpenWrt商标,处理我们的捐款,帮助我们解决法律问题。

以前在lede-project.org域下提供的基础设施大部分已转移到相应的openwrt.org子域,并将在适当的时候实施重定向。

Возможно, вам также будет интересно

Введение Широкое применение помехоустойчивого кодирования в современных цифровых системах связи обусловлено тем, что оно является эффективным средством приведения параметров системы к желаемому компромиссу между достоверностью передачи, необходимой мощностью и пропускной способностью. Обратимся к рис. 1. В передатчике кодер вносит в информационное сообщение избыточность в виде проверочных символов. Закодированные символы поступают на модулятор, который преобразует их

В первую очередь GPS-антенны следует разделить на пассивные и активные. Кроме того, существуют антенны внешние и для монтажа на плату. Эти две классификации антенн для GPS являются основными. Производители предлагают антенны различного типа. Не следует забывать, что антенны являются одной из самых важных составных частей беспроводных систем. Каким бы замечательным ни было оборудование, но если

Теперь, когда первые интеллектуальные устройства прописались в наших квартирах и домах, основное внимание уделяется не только сетям с подключением к Интернету, но и взаимодействию интеллектуальных IoT-устройств. Естественно, для этого оптимально подходят беспроводные технологии, и сейчас на рынке уже представлены самые разные по своим возможностям стандарты беспроводной связи, выбор которых зависит от потребностей пользователя.

构建镜像

为构建镜像,一切已就绪。现只需一条命令:

make

或者:

make world

该命令会触发一连串的活动。之前也说过,它将会:

  1. 编译工具链
  2. 然后用这个工具链交叉编译源文件
  3. 创建opkg软件包
  4. 创建可随时刷机的镜像。

可通过选项启用多个进程以加速构建过程:

make -j 3
  • 使用标准公式

  • 构建过程中若产生随机错误,尝试去掉选项重新构建

如果你想在构建时干别的,你可以让构建进程只使用闲置的CPU和I/O资源(双核CPU):

ionice -c 3 nice -n 20 make -j 2

构建单个包

为OpenWrt开发或打包软件时,可以方便地只构建关心的包(以包为例):

make package/cups/compile V=99

For the package , which is contained the feed packages it looks like this:

make package/feeds/packages/mc/compile v=99

高亮构建错误

如果构建不知怎么搞的出错了,亮出错误的最简单方式是:

make V=99 2>&1 | tee build.log | grep -i error

以上命令会保存一份详尽的编译输出(同时把stdout泵至stderr)到,并只在屏幕上输出错误。

另一个例子:

ionice -c 3 nice -n 20 make -j 2 V=99 CONFIG_DEBUG_SECTION_MISMATCH=y 2>&1 | tee build.log | egrep -i '(warn|error)'

再来一个例子:

somthing something screen

以上命令会保存一份详尽的编译输出(同时把stdout泵至stderr)到,并只在屏幕上输出警告和错误,且在双核CPU上只使用后台资源。

Mirrors

The contents of the download server are available on several mirrors as well.
Please refer to the list below for alternative locations.

Country HTTP HTTPS FTP RSYNC Sponsor
Austria HTTP HTTPS rsync://mirror.kumi.systems/openwrt/ Sponsored by Kumi Systems e.U.
Brazil HTTP HTTPS rsync://openwrt.c3sl.ufpr.br/openwrt/ Sponsored by Universidade Federal do Paraná
Bulgaria HTTP HTTPS rsync://mirrors.linux-bulgaria.org/lede/ Sponsored by SiteGround
Canada HTTP HTTPS rsync://freemirror.org/openwrt/ Sponsored by The Free Mirror Project
France HTTP HTTPS rsync://openwrt.tetaneutral.net/openwrt/ Sponsored by tetaneutral.net
France HTTP HTTPS rsync://rsync.cyberbits.eu/openwrt/ Sponsored by
Germany HTTP HTTPS Sponsored by A-M-Vpl
Netherlands HTTP FTP rsync://ftp.snt.utwente.nl/lede/ Sponsored by the SNT, University of Twente
Romania HTTP FTP rsync://mirrors.linux.ro/lede/downloads/ Sponsored by RCS&RDS
Singapore HTTP HTTPS FTP rsync://mirror.0x.sg/openwrt/ Sponsored by Andrew Yong
Switzerland HTTP HTTPS Sponsored by urown.net
Global CDN HTTP HTTPS Sponsored by A-M-Vpl
Tor Onion Service HTTP Sponsored by urown.net

How to mirror

Please use to obtain a copy of the download repository.

Syncing the downloads share every 12 to 24 hours hours is ideal.
Once a mirror has been set up, feel free to announce it at so that it can be published on this page.

The data volume of the snapshots is roughly 35GB, we expect it to grow by 30-40GB with each release.
Due to current bandwidth constraints we kindly ask you to use something like when initially pulling the data.

镜像配置

开始OpenWrt Buildroot基于ncurses的 文本配置界面:

make menuconfig
同配置Linux内核类似,几乎每一个设置都有三个选项:y / m / n,分别代表如下含义:
* « (按下`y`)这个包会被包含进固件镜像
* « (按下`m`)这个包会在生成刷新OpenWrt的镜像文件以后被编译,但是不会被包含进镜像文件
* « (按下`n`)这个包不会被编译
当你保存你的配置后,这个文件会按照你的配置被生成。
\\编译环境会提供一个这样的配置文件给OpenWrt ‘Backfire’ 10.03.1-RC5。 例如,for ar71xx.

这个菜单允许你选择目标平台,也就是你想要用来编译你要包含进固件镜像的软件包的工具链(toolchain)的版本。

在更新源码和源以后运行这个配置界面,确保你的配置中包含的软件包是最新的。

make defconfig

将会生成一个通用的编译系统配置,这个配置包含了一个对于编译环境的先决条件和依赖的检查,同时会安装缺失的组件并再次运行。

总体配置

拥有一个文本界面,它包括选择要处理的目标平台,要编译的软件包,要被包含进固件文件的软件包和一些内核设置等。

make menuconfig

这会自动更新你现在存在的配置的依赖,方便你你准备编译你更新过的镜像。

It has from the beginning on been the intention, with the development of ‘menuconfig’, to create a simple yet powerful environment for the configuration of individual OpenWrt images. Menuconfig is more or less self-explanatory, and even the most specialized configuration needs can be solved with its help. Depending on the the particular target platform, package requirements and kernel module needs, the standard process of configuration will include modifying:

  1. 目标系统
  2. 软件包设定
  3. 系统构建设定
  4. 内核模块

Target system is selected from the extensive list of supported platforms, with the numerous target profiles – ranging from specific devices to generic profiles, all depending on the particular device at hand. Package selection has the option of either ‘selecting all package’, which might be un-practical in certain situation, or relying on the default set of packages will be adequate or make an individual selection. It is here needed to mention that some package combinations might break the build process, so it can take some experimentation before the expected result is reached. Added to this, the OpenWrt developers are themselves only maintaining a smaller set of packages – which includes all default packages – but, the feeds-script makes it very simple to handle a locally maintained set of packages and integrate them in the build-process.

这儿有三种选项可选:

  • < > 该代码将不会被编译
  • <M> 该代码将被交叉编译,生成的ipk软件包将被放在 , 但该软件包不会放入固件中
  • <*> 该代码将被放入固件中 (on the SqashFS partition)

The final step before the process of compiling the intended image(s) is to exit ‘menuconfig’ – this also includes the option to save a specific configuration or load an already existing, and pre-configured, version.

Exit the TUI, and choose to your settings.

While you won’t typically need to do this, you can do it:

make kernel_menuconfig

See:

Source Mirrors

The ‘Build system settings’ include some efficient options for changing package locations which makes it easy to handle a local package set:

  1. Local mirror for source packages
  2. Download folder

In the case of the first option, you simply enter a full URL to the web or ftp server on which the package sources are hosted. Download folder would in the same way be the path to a local folder on the build system (or network). If you have a web/ftp-server hosting the tarballs, the OpenWrt build system will try this one before trying to download from the location(s) mentioned in the Makefiles . Similar if a local ‘download folder’, residing on the build system, has been specified.

The ‘Kernel modules’ option is required if you need specific (non-standard) drivers and so forth – this would typically be things like modules for USB or particular network interface drivers etc.

定制文件

在很多情况下,您可能需要使用自己准备好的配置去创建一个自己定制的固件,如果是这样,请把您的配置文件放在下面的路径:

<buildroot dir>/files/

举例:假如说您需要一个使用预配置文件来构建固件,那么把您的firewall配置文件文件放到下面的路径:

<buildroot dir>/files/etc/config

Установка OpenWrt

Алгоритм установки OpenWrt зависит от устройства. Детальные инструкции для каждой поддерживаемой модели оборудования можно найти на соответствующей странице сайта проекта . В общем виде существуют следующие способы установки OpenWrt:

  • С помощью функции обновления прошивки Firmware Upgrade. Данная функция обычно присутствует в веб-интерфейсе управления оригинального ПО устройства и позволяет заменить его на OpenWrt во flash-памяти.
  • С помощью загрузчика ПО (bootloader) и Ethernet-порта. Обычно загрузчик содержит необходимую функциональность для перезаписи flash-памяти по протоколу TFTP или FTP. Причем встроенное ПО в разных случаях может выступать в роли как сервера, так и клиента вышеуказанных протоколов. Для замены прошивки необходимо знать используемые загрузчиком сетевые параметры: IP-адрес устройства, протокол и роль (клиент/сервер), номер порта, имя пользователя и пароль. Требуется подключить соответствующий сетевой интерфейс устройства к компьютеру и установить на нем необходимые сетевые настройки и ПО, а затем активировать функцию восстановления ПО устройства, выполнив определенные специфические действия. Например, типичным способом активации режима восстановления является удержание кнопки сброса настроек на устройстве некоторое время при включении питания.
  • С помощью загрузчика ПО и последовательного порта. Для этого необходимо подключить компьютер к устройству с помощью последовательного порта и использовать программу-терминал для доступа к интерфейсу командной строки загрузчика. Передача файла прошивки во flash-память может осуществляться по одному из локальных протоколов (X-Modem, Z-Modem и т. д.), а также может быть использовано сетевое подключение (TFTP, FTP).
  • C помощью интерфейса JTAG (Joint Test Action Group). Интерфейс JTAG является универсальным средством теcтирования и программирования встраиваемых систем. В подавляющем большинстве случаев этот интерфейс поддерживается бюджетным сетевым оборудованием, и, как минимум, на плате устройства присутствует соответствующая разводка. Используя JTAG, также можно изменить содержимое flash-памяти устройства.
  • Загрузка прошивки непосредственно в оперативную память. В данном случае содержимое flash-карты устройства не изменяется, а ПО загружается в оперативную память с удаленного TFTP-сервера. Для активации данного режима обычно требуется подключение к интерфейсу командной строки устройства (локально или по сети).

Учитывая то, что OpenWrt поддерживает архитектуру Intel x86, для изучения его возможностей и тестирования функциональности без наличия соответствующего «реального» оборудования можно использовать ПО виртуализации, например Oracle/SUN VirtualBox , установленное на персональном компьютере или ноутбуке. Для запуска последней версии OpenWrt (10.03.1) в среде VirtualBox  нужно создать виртуальную машину Linux с ядром 2.6; подключить к ней как первичный IDE-мастер скачанный с официального сайта готовый виртуальный диск (vdi) с образом ПО для архитектуры x86; включить в настройках первый COM-порт. Чтобы получить доступ к интерфейсу управления установленного ПО, следует должным образом настроить виртуальную сеть VirtualBox.

Четыре пути

Существует четыре способа установки OpenWrt на ваше устройство:

1. Из-под оригинальной прошивки

Откройте в вашем браузере Web-интерфейс оригинальной прошивки и установите файл OpenWrt через опцию “Firmware Upgrade”. Готово.
Как правило, нужный файл прошивки OpenWRT содержит в названии подстроку “-factory”, например,

Иногда оригинальная прошивка проверяет, какой файл ей предлагают для “обновления”. В случае, если заводская прошивка решит, что предлагаемый ей файл не является приемлемым, вам не удастся установить OpenWrt одним кликом. Не отчаивайтесь, попробуйте один из оставшихся трех путей.

2. Через автозагрузчик и Ethernet порт

Чтобы провернуть такой вариант, а именно принудительно залить прошивку, можно воспользоваться тем, что большинство автозагрузчиков содержат встроенный функционал для таких целей. Некоторые содержат TFTP-client, другие — TFTP-server, третьи FTP-client, а некоторые даже FTP-server. Вам необходимо выяснить:

IP адрес автозагрузчика (это не обязательно тот же IP адрес, который устройство имеет по умолчанию для доступа через web-интерфейс!);

какие из вышеуказанных протоколов используются;

работает ли автозагрузчик как клиент или как сервер;

какой порт используется для подключения к автозагрузчику по умолчанию (Если не можете ответить на этот вопрос, попробуйте порт по умолчанию);

интерфейс к которому надо подключиться;

возможно, потребуется username и login (для доступа не к web-интерфейсу, а именно к автозагрузчику);

важно также узнать время после включения, в течение которого ваше устройство принимает входящие подключения к автозагрузчику. Это может быть, например, время в 2 секунды, начиная с 3-ой секунды после включения устройства в сеть.. Как только вы получили ответы на все эти вопросы, вы можете продолжать:

Как только вы получили ответы на все эти вопросы, вы можете продолжать:

  1. установите, по необходимости, недостающие программы на ваш PC для доступа к роутеру (так, если автозагрузчик содержит FTP-server, вам нужен FTP-client);
  2. прочитайте инструкции по использованию этих программ! например , , , , , или другую документацию;
  3. задайте статический IP адрес вашему PC внутри той же подсети, в которой находится автозагрузчик вашего роутера;
  4. соедините ваш PC с соответствующим портом;
  5. включите ваш роутер;
  6. установите соединение с роутером именно в тот момент, когда это позволяет сделать автозагрузчик;
  7. следуйте соответствующим процедурам по заливке файла OpenWrt на ваш роутер;
  8. Не изменяйте или переустанавливайте автозагрузчик если это не будет прямо оговорено!

Иногда даже автозагрузчик не позволяет записать файл прошивки на flash память устройства, например, в Inventel DV4210 (AKA Livebox).

Методы установки

  • Установка OpenWrt с помощью TFTP

  • → generic.flashing.ftp

  • → generic.flashing.xmodem

→ port.jtag

Спецификация оборудования

Версия v3 v5 v7 v8 v9 v10 v11
Платформа: AP81(ar71xx)
Архитектура: MIPS
Производитель: Atheros
Загрузчик: U-Boot
Системный чип: AR9130 AR7240 rev 2 AR7241-AH1A AR9341 QCA9533-AL3A QCA9533-BL3A ​ QCA9533-AL3A
Частота CPU: 400 МГц 400 МГц 400 МГц 535 МГц 550 МГц 650 МГц
BogoMIPS: 265.42 266.24 265.42 266.64 366.18 432.53
Flash-чип: ST 25P32V6P Неизвестно cFeon F32-100HIP/SPANSION FL032PIF Spansion FL032PIF Spansion FL032PIF Winbond 25Q32FVS1G ​ Spansion FL032PIF
Объем Flash: 4 Мб
Чип ОЗУ: Hynix HY5DU561622FTP-5 Неизвестно Zentel A3S56D40FTP-G5 ESMT M13S2561616A-5T Winbond W9425G6JH-5 Zentel A3S56D40GTP-50 ​ Zentel A3S56D40GTP-50L
Объем ОЗУ: 32 Мб
Радиочип: Atheros AR9100 Rev:7 Atheros AR9280 Rev:2 Atheros AR9287-BL1A 2.4GHz 802.11bgn AR9341 QCA9533-AL3A QCA9533-BL3A ​ QCA9533-AL3A
Свитч: Marvell 88E6060 Встроенный AR7240 Встроенный AR7241 Встроенный AR9341 Встроенный QCA9533-AL3A Встроенный QCA9533-BL3A Встроенный QCA9533-AL3A
Порт USB: Неизвестно Есть В процессе Отсутствует в SoC ?
Последовательный порт: Ещё ?
JTAG: Неизвестно Неизвестно ?

Configuration

Because OpenWrt is a true Linux-based system, you have full control over all functions of your router/device.

  • OpenWrt provides both command-line interface (via SSH) and a web-based user interface for configuration.
  • Configuration information is stored in plain-text files to ease the editing and/or copying.
  • OpenWrt Image Generator allows you to create your own firmware images for your device with any customizations (pre-defined password, WiFi, etc).
  • The LuCI WebUI allows you to select themes that suit your needs/tastes In addition, Localization of WebUI is available via packages in over 20 languages.
  • Configure the external LEDs and buttons/switches to suit your needs.

Latest Release

The general method for picking the right image is to visit the Table of Hardware, then search for your device. Supported devices will have a Details Page that gives instructions for installing the most recent stable firmware for your device.

If there isn’t a Details Page or a pre-built image for your device, follow the Building OpenWrt instructions to build a custom image.

Stable releases

If you are a newcomer to OpenWrt, you should install the current stable release. The history page lists all stable releases so far, and the Details Page for your router (check the Table of Hardware) should tell you which image to download and how to install.

The current stable release is Chaos Calmer 15.05.1 released in March 2016.

Bleeding Edge

The development branch can contain experimental code that is under active development and should not be used for production environments. Trunk images may support additional hardware; however, it is experimental, considered unstable, and sometimes won’t compile.

Bleeding edge can be built from sources:

Buildroot Sources (Recent Changes)

Snapshot Images

Prebuilt trunk images do not come with any web interface or GUI. You will need to be comfortable using a command line and remote shell to install one yourself: How to install LuCI

While the build process is automated and is mostly functioning, it’s highly advisable that you check the dates on the files before downloading them to prevent installing an outdated version.

If opkg is complaining that the packages list is too old, it is possible that the last few buildbot runs have failed for your platform and the packages are already a few days old.

Please visit the version history page for an overview of previous releases.

重启OpenWrt社区

在2016年,LEDE项目作为OpenWrt项目的副产品而诞生,与OpenWrt共享很多相同的目标。该项目旨在成为一个嵌入式Linux版本,能让开发者、系统管理员或其他Linux爱好者轻松的为嵌入式设备特别是无线路由器构建或定制软件。LEDE这一名称代表Linux Embedded Development Environment。

项目成员与OpenWrt社区活跃成员高度重合,他们计划通过建立一个高度透明、注重协作和去中心化的社区为嵌入式Linux的开发带来新生。

LEDE已公布的目标包括:

  • 构造一个的伟大的嵌入式Linux发行版,运行稳定且功能实用
  • 伴随社区设备测试反馈,形成定期、可预期的版本迭代
  • 通过广泛的社区参与和公开会议,建立透明的决策机制

LEDE项目的形成是为解决那些被OpenWrt项目或社区认为无法解决的长远问题

  1. 活跃核心开发者数量一直很低,而且无法吸引新面孔加入项目。
  2. 不可依赖的基础设施,内部不同意和单点故障阻碍了错误修复。
  3. 在OpenWrt项目中缺少沟通交流、透明度和协调, 无论是在核心团队内部还是在核心团队和其他团队之间。
  4. 没有足够拥有权限的人处理补丁来流,很少关注测试和定期版本。
  5. 不重视对稳定性和文档。

为解决这些问题,LEDE项目采用了与OpenWrt不同的组织架构:

  1. 所有交流频道均是公开的,对非成员只读的频道控制在一个很好的信噪比。
  2. 决策过程更公开,拥有投票权的开发者和重度用户数量接近50比50。
  3. 大大简化基础设施,确保减少我们的维护工作量。
  4. 更开明的合并政策,基于我们在处理Github上OpenWrt软件包反馈信息的经验。
  5. 高度重视与简化发布流程合并的自动化测试。

Package management cheatsheet

After you have flashed the OpenWrt firmware to your device, you can install additional software packages via WebUI or CLI.

Web interface

Log in the system using LuCI and manage packages via WebUI.

  1. Navigate to LuCI → System → Software.
  2. Click Update lists button to fetch a list of available packages.
  3. Fill in Filter field and click Find package button to search for a specific package.
  4. Switch to Available packages tab to show and install available packages.
  5. Switch to Installed packages tab to show and remove installed packages.

Search and install packages if you want to configure services via LuCI.

Command-line interface

Log in the system using SSH and manage packages with Opkg.

Command Description
Fetch a list of available packages from the OpenWrt package repository
Display a list of available packages and their descriptions
Filter the list by a search term in the package name or its description
Install a package
Uninstall a previously installed package

Wifi Выдает только 130МБит/c?

Изменение данной настройки в домах с большой плотностью wifi точек, может только ухудшить производительность вашего роутера вечером, когда соседские точки сильно загружены.

Суть в том, что по умолчанию в Openwrt соблюдаются законодательства разных стран и при присутствии других wifi роутеров, ваш роутер сбрасывает канал 40mhz до 20 mhz, дабы не загрязнять эфир и не ухудшать собственную производительность, хотя сообщает что умеет 300МБит/c и 40mhz, а так как у нас режим MIMO 2:2, то при 20mhz получаем 130 МБит/с по стандарту.

Как исправить:

Заходим по ssh(если вы еще не установили пароль, то по telnet) и вводим команды:

uci set wireless.radio0.htmode=HT40 /выставляем ширину канала 40mhz, можно и через веб интерфейс.
uci set wireless.radio0.noscan=1 /запрещаем роутеру сканировать окружение.
uci commit wireless /записываем наши команды в конфигурационный файл.
wifi /перезагружает wifi интерфейс с новыми настройками без перезагрузки роутера.

И получаем честные 300МБит/c

Редактируем файл

  1. Под config wifi-device ‘radio0’ добавляем

    option noscan '1'
  2. option ‘htmode’ выставляем значение HT40 (для билдов до BARRIER BREAKER(14.07) значение принимает HT40+ или HT40-)

    option htmode 'HT40'
  3. Перезагружаем wifi

    wifi

Устранение неполадок

В начале получите больше информации о проблеме используя параметр make — “make V=99”.

Missing source code file, due to download problems.

Сначала проверьте, если URL-путь в make-файле содержит обратный слэш, то поэкспериментируйте с его удаленем (помогло несколько раз).
В противном случае попробуйте загрузить исходный код вручную и поместить его в каталог “dl”

Compilation errors.

Не забудьте установить все необходимые пакеты для сборки:

В процессе компиляции возможно будет не доставать какого-то пакета. Ищите в выводе (make V=s) строку типа:

bash: неизвестная команда hg #например

Решение (ubuntu 12.04LTS):
Вводим в теминале команду hg (например).
Вывод терминала:

 Программа 'hg' на данный момент не установлена.  Вы можете установить её, выполнив:
sudo apt-get install mercurial 

Выполняем что просят: sudo apt-get install mercurial

Запускаем сборку (make) снова.

Проблема со сборкой cmus:

 checking for header <sys/soundcard.h>... no configure failed 

Решение (ubuntu 12.04LTS):

#от root
cd usrinclude
ln -s linuxsoundcard.h #возможно это лишнее
mkdir sys
cd sys
ln -s ..linuxsoundcard.h

Попробуйте обновить основной исходный код и все репозитории (Внимание! Может привести к другим проблемам).
Поищите похожие ошибки в (TRAC), используйте фильтры, чтобы найти их.
В противном случае сообщите об этой проблеме там, указав пакет, выходные данные (процессор, образ и т.п.) и код ревизии (main & package).
Компиляция с make -j … иногда дает случайные ошибки. Попробуйте компиляцию без -j прежде чем сообщать об ошибке.

  • Bad environment variables.

    • не должен иметь или другие параметры, влияющие на его вывод
    • не должен быть установлен. Если это так, запустите `unset SED` перед компиляцией. (Смотрите Ticket 10612.)

Сборка образа

Теперь все готово для сборки образа(ов), которая осуществляется с помощью одной команды:

make

или (то же самое)

make world

Эта простая команда вызовет последовательность событий. Как уже говорилось, произойдет:

  1. компиляция набора инструментов (toolchain)
  2. потом кросс-компиляция исходных кодов с этим инструментарием
  3. создание opkg-пакетов
  4. создание образа прошивки, готового к прошивке.

Последовательность работы make

Команда сама выполняет следующую последовательность команд:

Вы можете выполнить каждую из них отдельно. Например, если процесс компиляции какого-либо пакета прервался с ошибкой, после устранения ошибки можно продолжить сборку (без удаления уже сделанного):

Отладка

Параметр указывает уровень выдачи сообщений в процессе сборки.

Значением можно указать:

  • или — выводить путь к каталогу при входе в него и после выхода из него;
  • или — выводить полную информацию о сборке, обычные сообщения жёлтым, ошибки красным, отладочные чёрным.

Примеры:

make V=w

Трассировка каталогов (путей).

make V=s
make V=99

Трассировка с полной информацией о сборке.

make V=sw

Тоже полная трассировка. (Если указать два значения, работает более полный вывод.)

Сборка на многоядерном процессоре

Процесс сборки можно ускорить запустив несколько параллельных задания с использованием параметра :

make -j 3
  • Используйте стандартную формулу

  • Если это приводит к случайным ошибкам сборки запустите компиляцию еще раз, но без параметра

Фоновая сборка

Если вы собираетесь использовать вашу систему во время процесса сборки, вы можете выполнять сборку используя только простой ввода/вывода и мощности процессора, например так (двухъядерный процессор):

ionice -c 3 nice -n 20 make -j 2

Сборка одиночных пакетов

При разработке или создании пакетов для OpenWrt удобно иметь возможность сборки только нужного пакета (пример с пакетом ):

make packagecupscompile V=99

Обнаружение ошибок сборки

Если по какой-то причине сборка не удается, то самый простой способ определить ошибки это:

make V=99 2>&1 | tee build.log | grep -i error

Команда сохраняет полную подробную копию вывода сборки (с stdout переданный в stderr) в и показывает на экране только ошибки.

Другой пример:

ionice -c 3 nice -n 20 make -j 2 V=99 CONFIG_DEBUG_SECTION_MISMATCH=y 2>&1 | tee build.log | egrep -i '(warn|error)'

еще один:

somthing something screen

Команда сохраняет полную подробную копию вывода сборки (с stdout переданный в stderr) в build.log и показывает только предупреждения и ошибки в процессе сборки используя только фоновые ресурсы двухъядерного процессора.

Включение звуковых уведомлений

В зависимости от вашего процессора этот процесс займет некоторое время или дольше. Если вы хотите включить звуковые уведомления можете использовать ‘:

make V=99 ; echo -e '\a'
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector