Запуск OpenWRT 14.07 на Mikrotik и пример сборки Аsterisk c дополнительным модулем

в 7:11, , рубрики: mikrotik openwrt asterisk, виртуализация, Настройка Linux, Разработка систем связи, метки:

Запуск OpenWRT 14.07 на Mikrotik и пример сборки Аsterisk c дополнительным модулем - 1
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspВ интернете много статей по запуску openwrt на устройствах Mikrotik через metarouter. Во всех них для сборки используется ревизия r29684 с официальным патчем, поддерживающим процессоры. Для более поздних версий данный патч уже не подходит. Из этого следует то, что все пакеты openwrt достаточно старые и собрать обновленное ПО почти нереально. А в новых версиях openwrt появилось много новых пакетов и библиотек.
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspПоискав в интернете, не получилось ли у кого запустить свежий openwrt под metarouter, наткнулся на нужную заметку. Данная статья как раз полностью копирует ее содержание, плюс маленький бонус по сборке пакетов. Приступим (пример для debianubuntu систем):

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

$ sudo apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc zip

Создадим директорию для сборки (нужно около 12 гигабайт свободного места):

 $ mkdir openwrt & cd openwrt

Скачаем патч для openwrt и сами исходники openwrt, и применим патч:

$ wget http://openwrt.naberius.de/barrier_breaker/mr-mips/openwrt_metarouter_1407.patch
$ git clone git://git.openwrt.org/14.07/openwrt.git barrier_breaker
$ cd barrier_breaker
$ patch -p1 -i ../openwrt_metarouter_1407.patch

Приступим к настройке образа:

$ make defconfig
$ make prereq
$ make menuconfig

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspДалее, нужно выбрать в пункте target system тип процессора Mikrotik MetaROUTER MIPS. Также можно пройтись по дополнительным пакетам, которые будут в образе, или исключить ненужные. Можно приступать к сборке и пойти погулять:

$ make -j $(nproc)

Если сборка удачна, то появится готовый образ barrier_breaker/bin/mr-mips/openwrt-mr-mips-rootfs.tar.gz

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspЗагружаем готовый образ на флешку (можно как на встроенную так и на внешнюю) mikrotik'a, заходим в web интерфейс mikrotik'a и во вкладке, metarouter выбираем Import Image, указываем наш только что созданный образ и нужное кол-во оперативной памяти. На этом все. Остается запустить виртуалку, зайти в консоль нашего образа и приступить к настройкам (более подробное описание настройки можно найти в интернет, поэтому не буду дублировать).

Сборка и запуск Openwrt

Запуск OpenWRT 14.07 на Mikrotik и пример сборки Аsterisk c дополнительным модулем - 2
Запуск OpenWRT 14.07 на Mikrotik и пример сборки Аsterisk c дополнительным модулем - 3
Запуск OpenWRT 14.07 на Mikrotik и пример сборки Аsterisk c дополнительным модулем - 4
Запуск OpenWRT 14.07 на Mikrotik и пример сборки Аsterisk c дополнительным модулем - 5

Основной образ готов и лежит в bin/mr-mips/, можно приступить к сборке дополнительных пакетов. Через меню конфигуратора выбираем нужное ПО, установим для примера, Asterisk11:

$ ./scripts/feeds update -a
$ ./scripts/feeds install -a
$ make menuconfig

Сборка доп.пакетов

Запуск OpenWRT 14.07 на Mikrotik и пример сборки Аsterisk c дополнительным модулем - 6
Запуск OpenWRT 14.07 на Mikrotik и пример сборки Аsterisk c дополнительным модулем - 7

Пакеты к установке готовы, можно попить чаю и запустить сборку (чтобы видеть ошибки и процесс сборки, запускаем с параметром V=s )

$ make -j $(nproc)

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspДополнительные пакеты появились в папке bin/mr-mips/packages/ — для установки скопируйте их в систему (например, через scp) и выполните opkg install name_paccket.ipk.
Данная процедура необязательна, так как можно установить пакеты из репозитария. Для чего же тогда нужно собирать пакеты? Ответ простой: если нужных пакетов нет в репозитарии или если нужны дополнительные модули к определенному пакету.
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspПопробуем собрать модуль для asterisk'a, которого нет в репозитарии. На форумах, где обсуждают asterisk, запущенный на openwrt, можно найти жалобы на то, что отсутствует модуль для очередей app-queue. Попробуем его собрать. Правильный вариант — прочитать мануал openwrt и собрать по нему. Я решил попробовать напролом и сразу залез в make-файл /barrier_breaker/package/feeds/telephony/asterisk-11.x/Makefile, в котором в конце нашел строки, отвечающие за сборку модулей.

$(eval $(call BuildAsterisk11Module,pbx-lua,Lua,provides Lua resources for Asterisk,+libpthread +libc +liblua,/etc/asterisk/extensions.lua,extensions.lua,pbx_lua,))

Комментарии к выбору собираемых модулей

# Params:
# 1 — Package subname
# 2 — Package title
# 3 — Module description
# 4 — Module dependencies
# 5 — Full path to multiple conffiles
# 6 — conf files
# 7 — module files
# 8 — sound files
# 9 — binary files

В комментариях дается описание каждой строчки. Для модуля app-queue нет сторонних зависимостей, поэтому строчка довольно компактна.

$(eval $(call BuildAsterisk11Module,app-queue,Distribution queue call to agent,Each dynamic agent in each queue is now stored in the astdb,,,,app_queue,))

Добавляем ее в make-файл к другим модулям и запускаем сборку нашего модуля.

$ make menuconfig
$ make -j $(nproc)

Включаем наш модуль в сборку

Запуск OpenWRT 14.07 на Mikrotik и пример сборки Аsterisk c дополнительным модулем - 8

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspЕсли все прошло удачно, то остается поставить только что собранный нами пакет. Готовые образы можно взять у автора патча. На этом все.

Автор: beho1der

Источник

Поделиться

* - обязательные к заполнению поля