Сборка Asterisk под OpenWRT
Модераторы: Admins, Модераторы
Сборка Asterisk под OpenWRT
Всем привет.
Собрал OpenWRT для Mikrotik RB450G, чудно залил. Теперь сижу думаю, как мне собрать на Ubuntu asterisk.
Ни как не могу найти доки, которые бы я понял, как собирать софт, в окружении, на одном железе для другого.
Можете поделиться опытом и рекомендациями?
Собрал OpenWRT для Mikrotik RB450G, чудно залил. Теперь сижу думаю, как мне собрать на Ubuntu asterisk.
Ни как не могу найти доки, которые бы я понял, как собирать софт, в окружении, на одном железе для другого.
Можете поделиться опытом и рекомендациями?
Поищите в гугле по ключевому слову: кросскомпиляция.
Например: http://paulus.ru/articles/crosscompile
Например: http://paulus.ru/articles/crosscompile
Как-как? Вытащить их из OpenWRT или собрать там же где и будет собиратся сам OpenWRT.
Added after 3 minutes:
На самом деле, вам нужно где-то скачать или собрать самому тулчейн под необходимый тип процессора.
Потом с помошью ключей gcc и некоторых переменных среды gcc указывается, что идет кросскомпиляция и нужно использовать
для получения правильных бинарей тулчейн из первого шага.
Но в любом случае, библиотеки, с которыми будет собиратся ваша программа для другой архитектуры должны быть уже собраны
под эту архитектуру и имется в наличии на хост-системе.
Ну или, как по ссылке выше, настроить соотвествующим образом chroot. И там пользоваться gcc как обычно. НО! Необходимы библиотеки
под данную архитектуру вам все равно придется либо собирать самому, в том же chroot-е, либо где-то брать готовые.
Added after 3 minutes:
На самом деле, вам нужно где-то скачать или собрать самому тулчейн под необходимый тип процессора.
Потом с помошью ключей gcc и некоторых переменных среды gcc указывается, что идет кросскомпиляция и нужно использовать
для получения правильных бинарей тулчейн из первого шага.
Но в любом случае, библиотеки, с которыми будет собиратся ваша программа для другой архитектуры должны быть уже собраны
под эту архитектуру и имется в наличии на хост-системе.
Ну или, как по ссылке выше, настроить соотвествующим образом chroot. И там пользоваться gcc как обычно. НО! Необходимы библиотеки
под данную архитектуру вам все равно придется либо собирать самому, в том же chroot-е, либо где-то брать готовые.
- Cache
- Модератор
- Сообщения: 688
- Зарегистрирован: 12 янв 2007, 11:39
- Откуда: Россия. Шатура
- Контактная информация:
первая ссылка в гугле
http://wiki.openwrt.org/doc/howto/voip.asterisk
http://wiki.openwrt.org/doc/howto/voip.asterisk
нанотехнолигии в области Asterisk
Toolchain лежит там же где и сам openwrt. Скачайте, разархивируйте и прочтите ридми идущий с архивом. Можно еще скачать .config файл оттудаже где и тулчайн заменить им оригинальный дефолтный. Не забыть сделать make oldconfig. Тогда у вас получится имннно на выходе то что выложено бинарем. Делаете make menuconfig, ничего менять в первый раз не нужно, просто выйти с сохранением и сделать make V=s. Если все соберется то можете уже менять конфигпод себя и пробовать пересобрать снова. Както так...
Это не сборка. Это инсталяха, и как бы мальца есть свои праблы, там есть пару пакетов, которые не ставяться через менюху, которая в самом начале в опенврт, типа взаимоисключаемых пакетов.
.Toolchain лежит там же где и сам openwrt
А его юзать нельзя? Просто я собирал OpenWRT, может и окружение уже готово практически?
Если сам собирал OpenWRT то у тебя все готово для кросссборки. Заюзай этоже окружение для сборки астериска.[url=http://asteriskforum.ru/viewtopic.php?p=66939#66939][img]http://asteriskforum.ru/images/quotebackarrow.gif[/img][/url] EXA @ Пт Ноя 16, 2012 14:49 писал(а):.
А его юзать нельзя? Просто я собирал OpenWRT, может и окружение уже готово практически?
Решил потренироваться наконец-то, на "кошках" ncurses-5.9, распаковал в /usr/src/OpenWrt-SDK-ar71xx-for-linux-i686-gcc-4.6-linaro_uClibc-0.9.33.2/staging_dir/ncurses-5.9
Руководствовался https://gnunet.org/mhd-on-openwrt , потому что из http://wiki.openwrt.org/doc/devel/crosscompile вообще не жизненоспособный для сборки
Код: Выделить всё
PATH=$PATH:/usr/src/OpenWrt-SDK-ar71xx-for-linux-i686-gcc-4.6-linaro_uClibc-0.9.33.2/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/bin
export PATH
STAGING_DIR=/usr/src/OpenWrt-SDK-ar71xx-for-linux-i686-gcc-4.6-linaro_uClibc-0.9.33.2/staging_dir
export STAGING_DIR
TOOLCHAIN_DIR=$STAGING_DIR/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2
export TOOLCHAIN_DIR
export LDCFLAGS=$TOOLCHAIN_DIR/usr/lib/
export LD_LIBRARY_PATH=$TOOLCHAIN_DIR/usr/lib/
./configure --prefix=$TOOLCHAIN_DIR --host=mips-openwrt-linux-uclibc
make clean
make CC=mips-openwrt-linux-uclibc-gcc LD=mips-openwrt-linux-uclibc-ld V=99
Код: Выделить всё
make CC=architecture-openwrt-linux-uclibc-gcc LD=architecture-openwrt-linux-uclibc-ld
- Вложения
-
- ncurse-log.txt
- Окончания лога вывода
- (47.4 КБ) 71 скачивание
мдяEXA писал(а): потому что из http://wiki.openwrt.org/doc/devel/crosscompile вообще не жизненоспособный для сборкиКод: Выделить всё
make CC=architecture-openwrt-linux-uclibc-gcc LD=architecture-openwrt-linux-uclibc-ld
architecture - это кто за вас должен менять? почтальон Печкин?

сразу видно что читали слишком мало документации - курите мануалы еще!
Да есть проблема, я не знаю, что конкретно читать, конгда нет конкретики, я вообще плыву и КПД 0.
Посмотрел сию ссылку
http://lab.mitty.jp/trac/lab/wiki/TipAn ... ossCompile
Выкинул только это
И скомпилилось, сейчас бодаюсь с zlib.
И пока что вот так, поставил autoconf-2.69, libtool-2.4.2, libiconv-1.14
Added after 11 minutes:
А где список сокращений можно взять "mips-openwrt-linux-gcc" - просто хотел бы я понять, какая у меня конкретно. Я на микротик собирал, там выбрать можно в конфигурационном меню, а как это в параметре написать не знаю.
Посмотрел сию ссылку
http://lab.mitty.jp/trac/lab/wiki/TipAn ... ossCompile
Выкинул только это
Код: Выделить всё
--with-terminfo-dirs=/usr/share/terminfo --with-default-terminfo-dir=/usr/share/terminfo
Код: Выделить всё
CC=mips-openwrt-linux-gcc AR=mips-openwrt-linux-ar RANLIB=mips-openwrt-linux-ranlib ./configure --prefix=$STAGING_DIR
Код: Выделить всё
Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf().
Checking for vsnprintf() in stdio.h... Yes.
Checking for return value of vsnprintf()... Yes.
Checking for attribute(visibility) support... Yes.
./ztest6251: 1: ./ztest6251: Syntax error: "(" unexpected
Looking for a four-byte integer type... Not found.
Added after 11 minutes:
А где список сокращений можно взять "mips-openwrt-linux-gcc" - просто хотел бы я понять, какая у меня конкретно. Я на микротик собирал, там выбрать можно в конфигурационном меню, а как это в параметре написать не знаю.
http://moozing.wordpress.com/2010/12/27 ... g-openwrt/
http://wiki.openwrt.org/doc/start
промотай до "Building OpenWrt"
http://wiki.openwrt.org/doc/start
промотай до "Building OpenWrt"
Не совсем понял, где-то глазами нашёл "Buildroot" это папка самого "/usr/src/trunk" откуда я в общем и делаю make menuconfig ? Туда сорсы разных программ распаковывать?
И ещё вопрос если я архитектуру для Mikrotik Rb450G использую AR71XX, то так же указывать в компиляции mips ? Потому что нет такого в параметрах как AR71, есть ARM но это вообще другое.
И ещё вопрос если я архитектуру для Mikrotik Rb450G использую AR71XX, то так же указывать в компиляции mips ? Потому что нет такого в параметрах как AR71, есть ARM но это вообще другое.
Вот доходчиво описано как собрать прошивку openwrt. Для asterisk нужно в make menuconfig выбрать этот пакет для компиляции.
В двух словах, я собираю Openwrt для своего роутера , а потом заливаю его на роутер, захожу, прописываю сеть с доступом в инет, и делаю
opkg install asterisk11
, и оно само скачает и поставит в систему с роутером?
Есть вопрос, как указать куда ставить, ибо на DIR-320 место крайне мало, хочу указать ставить пакеты именно на USB.
opkg install asterisk11
, и оно само скачает и поставит в систему с роутером?
Есть вопрос, как указать куда ставить, ибо на DIR-320 место крайне мало, хочу указать ставить пакеты именно на USB.
не забудьте перед установкой астериска сделать opkg update && opkg upgrade сперва. да и вообще всегда, сразу после свежей установки openwrt.
насчет usb флешки - не знаю есть ли какойто "стандартный" способ (уверен в гугле есть ответы), но как вариант - можно из init откуданить свой скрипт запускать, пусть после старта монтирует папку в которую он обычно пакеты устанавливает, пусть монтирует на флешку эту папку. ну и скопировать содержимое оригинальной папки туда же. так можно вообще весь корень системы на флеш перенести, я думаю. подсмотреть можно в live-cd дистрах которые поддерживают монтирование хоума юзера с флешки.
насчет usb флешки - не знаю есть ли какойто "стандартный" способ (уверен в гугле есть ответы), но как вариант - можно из init откуданить свой скрипт запускать, пусть после старта монтирует папку в которую он обычно пакеты устанавливает, пусть монтирует на флешку эту папку. ну и скопировать содержимое оригинальной папки туда же. так можно вообще весь корень системы на флеш перенести, я думаю. подсмотреть можно в live-cd дистрах которые поддерживают монтирование хоума юзера с флешки.
Usb: там же в optware все есть 
Астер собранный также. Так по опыту важно собирать нормальными тулзами.
Как вариант решения: есть Beaglebone black - 50$ платы, под них собирается нормально астер. Рвет по ценам и производительности.
Зы: у нас скоро на этой платформе будет решение с е1 - следите за анонсами;)

Астер собранный также. Так по опыту важно собирать нормальными тулзами.
Как вариант решения: есть Beaglebone black - 50$ платы, под них собирается нормально астер. Рвет по ценам и производительности.
Зы: у нас скоро на этой платформе будет решение с е1 - следите за анонсами;)
А вот смотрите, какая штука ./scripts/feeds search asterisk - находит пакеты только для 1.8не забудьте перед установкой астериска сделать opkg update && opkg upgrade сперва. да и вообще всегда, сразу после свежей установки openwrt.
брал вот это, т.к. самое новое svn co svn://svn.openwrt.org/openwrt/branches/attitude_adjustment
Т.к. широко известно, что OpenWRT поддерживает группа шаманистов, советую сразу купить бубн не менее 300мм в диаметре.
Свежак chan_dongle тут https://github.com/bg111/asterisk-chan-dongle/
Смена IMEI Huawei E1550 E173 E1752 K3765 http://www.e1550.mobi/ от $0,3042 за IMEI
Смена IMEI Huawei E1550 E173 E1752 K3765 http://www.e1550.mobi/ от $0,3042 за IMEI