NDMS V2 + Entware

Используем пакеты, расширяющие возможности оборудования
Yura270972
Сообщения: 58
Зарегистрирован: 29 сен 2015, 15:21

Сообщение Yura270972 » 04 окт 2015, 23:30

Спасибо за проделанную работу. Установил xupnpd+udpxy работает.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1188
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 05 окт 2015, 07:50

Обновленный пакет начальной установки - http://keenetic.zyxmon.org/files/ndms/z ... pselsf.ipk

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1188
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 05 окт 2015, 10:56

Как и следовало ожидать, openvpn завелся на Экстре. Соединился, зашел в свою квартирную сеть. Веб-морда не очень tun интерфейс понимает, но соединение снаружи видит:
Openvpn_extra.jpg


Есть правда проблемы с автозапуском. Предполагаю, что слишком рано развертывается Entware.
PS Extra в режиме точки доступа.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя
Александр Рыжов
Сообщения: 296
Зарегистрирован: 12 авг 2015, 13:14
Откуда: Смоленск

Сообщение Александр Рыжов » 05 окт 2015, 13:03

Zyxmon писал(а):Источник цитаты О проблемах (решаемых).

Некоторые бинарники entware имеют внутри жестко прописанные пути на приложения в папках /bin или /sbin, которых в прошивке нет.
...
Решение вроде напрашивается.
1. Изменить Makefile и строки 63-66. Прописать там правильные пути, начинающиеся с /opt. Для некоторых приложений сделать патчи, меняющие захардкоденные пути. Вот пересобранный вариант openvpn - http://keenetic.zyxmon.org/files/ndms/o ... pselsf.ipk
Этот вариант запускается без проблем. Работу openvpn проверю на следующей неделе.
2. Запускать entware в chroot среде (не хотелось бы).
3. Уговорить разработчиков прошивки сделать символические ссылки в /bin и /sbin на бинарники в /opt/bin и /opt/sbin. Таких ссылок нужно немного. Пока найдены две на route и ifconfig. Часто используется /sbin/sendmail - но это уже лишнее. Сделали же разработчики ссылку: /lib/ld-uClibc.so.0 -> /opt/lib/ld-uClibc.so.0 (на мой взгляд абсолютно лишнюю).
В порядке убывания предпочтений: 1, 3, 2.
Первый вариант самый правильный, потому что надо стремиться к тому, чтобы не было никаких зависимостей от прошивки. Однако есть бинарники, сильно завязанные на текущее ядро, скажем, /usr/sbin/iptables. Есть смутное подозрение о том, что перечисленные ниже бинарники тоже могут быть в их числе:

Код: Выделить всё

	CONFIGURE_VARS += \
	IFCONFIG=/sbin/ifconfig \
	ROUTE=/sbin/route \
	IPROUTE=/usr/sbin/ip \
	NETSTAT=/sbin/netstat

Мы можем собрать в Entware свои, но они не будут работать с ядром другой версии или хуже того (как с iptables), работать будут, но глючно.

Кстати, это одна из причин того, что в нашем тулчейне до сих используется kernel 2.6.22.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1188
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 05 окт 2015, 22:40

Как я и предупреждал на известном сайте, принудительное задание LD_LIBRARY_PATH штука опасная. Именно некорректные переменные среды приводили к незапуску openvpn после загрузки. Хорошо еще, что /etc/profile не исполняется в интерактивном сеансе.


Тем, кто уже поставил Entware на NDMS следует в начале файла /opt/etc/init.d/rc.unslung добавить строку

Код: Выделить всё

LD_LIBRARY_PATH=""

На вский случай (на будущее) добавьте такую строку в начало скрытого файла /opt/root/.profile

Код: Выделить всё

export LD_LIBRARY_PATH=""

"Установщик" с этими изменениями сделаю позже.

Yura270972
Сообщения: 58
Зарегистрирован: 29 сен 2015, 15:21

Сообщение Yura270972 » 05 окт 2015, 23:58

вопрос по cron
установлен cron из entware, у меня разница с системным временем +7 часов, соответственно установлена с синхронизация с сервисом точного времени и выбран свой часовой пояс. Но проблема следующая, т.к cron синхронизирует время до того момента как отработает сервис времени, то в логе присутствуют два вида событий: одни системные с правильным временем вторые под root c временем -7 часов, соответственно все скрипы запускаемые по крону отрабатывают не вовремя. Если ставлю отложенный запуск cron sleep 180 , то entware не запускается ошибка: Opkg::Manager: /opt/etc/init.d/rc.unslung: timed out.
На прошивке V1.11 + entware отложенный запуск cron работал.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1188
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 06 окт 2015, 07:32

Они очень рано начинают инициализацию opkg:

Код: Выделить всё

[I] Oct  5 22:28:15 ndm: Opkg::Manager: /tmp/mnt/entware mounted to /tmp/mnt/entware. 
[I] Oct  5 22:28:15 ndm: Opkg::Manager: /tmp/mnt/entware mounted to /opt/. 
[I] Oct  5 22:28:15 ndm: Opkg::Manager: /tmp/mnt/entware initialized. 
[I] Oct  5 22:28:15 ndm: Network::Interface::Switch: switch link up at port 3 (Switch0). 
[I] Oct  5 22:28:15 ndm: Network::Interface::Switch: switch link up at port 2 (Switch0). 
[I] Oct  5 22:28:15 ndm: Network::Interface::Switch: switch link up at port 1 (Switch0). 
[I] Oct  5 19:28:15 dropbear[105]: Running in background
[I] Oct  5 19:28:15 root: Started dropbear from .
[I] Oct  5 19:28:15 root: Started openvpn from .
[I] Oct  5 22:28:15 telnetd: waiting for connections... 
[I] Oct  5 22:28:15 wmond: WifiMaster0/AccessPoint0: (RT2860) STA(6c:fa:a7:14:1f:fd) had associated successfully. 
[I] Oct  5 22:28:15 ndm: Core::Server: started a new session. 
[I] Oct  5 22:28:16 ndm: kernel: br0: port 2(ra0) entering forwarding state
[I] Oct  5 22:28:16 ag: HTTP::ServerApp: ready. 

Как видим службы Entware запускаются раньше их telnetd и cifs.
Могу ошибаться, но запуск initrc производится не в фоне, они ждут его окончания (проверю).
Попробуйте запускать cron из хука ndm/time.d (последний на https://github.com/ndmsystems/packages/ ... -Component )
Если используете rc.func - то смотрите:

Код: Выделить всё

$PREARGS $PROC $ARGS > /dev/null 2>&1 & 

Можно попробовать использовать скрипт обертку для cron и внутри нее поместить sleep. Sllep пойдет в фоне, и теоретически rc.unslung: timed out не должно быть.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1188
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 06 окт 2015, 07:57

Перезалил пакет начальной установки http://keenetic.zyxmon.org/files/ndms/z ... pselsf.ipk (исправление окружения: LD_LIBRARY_PATH при запуске сервисов).

Yura270972
Сообщения: 58
Зарегистрирован: 29 сен 2015, 15:21

Сообщение Yura270972 » 07 окт 2015, 10:22

Дальнейшие эксперименты с запуском cron привели к следующему:
Запуск cron через скрипт выдают ту же ошибку Opkg::Manager: /opt/etc/init.d/rc.unslung: timed out. Дальнейшие поиски привели к следующему: системное время не учитывает тайм-зону, поясняю к примеру в настройках роутера задана тайм зона +7 часов, в журнале роутера время, к примеру 13:58
вывод команды date

Код: Выделить всё

~ # date
Wed Oct  7 06:58:12 UTC 2015

Меняем дату через консоль на 4:00 в журнале роутера 11:00. Соответственно cron отрабатывает без учета тайм-зоны.
А вот вывод команды

Код: Выделить всё

~ # cat /etc/TZ
TZif▒jg▒^<bpBMTICTTZif2
▒▒▒▒V▒▒▒▒▒▒▒▒jg▒^<^<bLMTBMTICT
ICT-7

Возможно ли это как то исправить, задать правильную тайм-зону.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1188
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 07 окт 2015, 11:55

Yura270972 писал(а):Источник цитаты Запуск cron через скрипт выдают

Я не могу угадать какую из двух доступных в Entware версий cron и через какой скрипт и где расположенный Вы запускаете. Пока это вроде не важно.

Подозреваю, что имеется небольшая недоработка прошивки (раньше консоли не было, а морда показывала время правильно). Предлагаю cron перевести на UTC (время со сдвигом). Рекомендую написать о проблеме с временем на keenopt.ru.


Вернуться в «Entware/Qnapware/Optware/Zyxware - обсуждаем репозитории пакетов»

Кто сейчас на конференции

Всего 0 посетителей :: 0 зарегистрированных, 0 скрытых и 0 гостей (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (121) здесь было 18 май 2016, 18:19

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей