1

Тема: Исходники, скрипты для ZyXEL Keenetic - делимся

Предлагаю в эту тему выкладывать ссылки на исходники, которые можно использовать при сборке приложений для Keenetic.
Небольшие по объему архивы буду перекладывать в http://keenetic.zyxmon.org/sources/

2

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

Начнем с самого необходимого: "Исходные коды GNU GPL для устройств серии Keenetic", файл zyxel_keenetics_gpl_v.1.00_2_D0.tar.bz2
Страница на которой выложена последняя исходников от ZyXEL
http://zyxel.ru/content/support/downloa … 6/firmware

3

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

Мой вариант скриптов для сборки тулчейна и компиляции приложений для кинетика.
Для сборки необходимо, чтобы в папке dl был файл linux-2.6.23-rt.tar.bz2 с исходниками ядра из тулчейна ZyXEL. Понятно, что лучше скопировать всю папку dl.

В основу взяты скрипты openwrt ревизии 23778 и файлы конфигурации и патчи официального тулчейна ZyXEL.
0. Ревизия 23778 взята за основу, как последняя, поддерживающая gcc 4.1.2 и uClibc 0.90.30.3
1. На мой взгляд скрипты openwrt работают "правильнее", чем скрипты ZyXEL. В основе скриптов ZyXEL лежат достаточно старые скрипты openwrt. В частности, скрипты ZyXEL неправильно собирают библиотеки libssp и libstdc++. Эти библиотеки в прошивку не входят, но могут понадобиться для сборки других приложений.
2. Полной бинарной эквивалентности собранных двумя вариантами тулчейна shared libraries нет, но у собираемых библиотек совпадают external symbols. При сборке предлагаемого тулчейна совпадают конфигурации uClibc, ядра с оригинальными конфигурациями тулчейна ZyXEL.
3. Пропатчен dropbear. Для авторизации можно использовать секретный пароль из пяти строчных букв, начинающийся с буквы z. Если в /media/DISK_A1/system/etc/ есть корректный файл passwd с хэшем пароля, то используется он. Работает авторизация по ключам, которые должны быть в файле /media/DISK_A1/system/etc/dropbear/authorization_keys. Сделаны патчи для других пакетов (busybox, opkg,...).
4. Для ускорения отключил компиляцию ядра и сборку файла прошивки. Модули ядра собираются, работоспособность модулей ядра не проверена.
5. Есть возможность собрать тулчейн с gcc 4.3.3 от CodeSourcery (см. папку configs) с оптимизацией под mips32r2. Следует учесть, что в этом случае в libgcc_s.so больше external symbols, чем в аналогичной библиотеке gcc 4.1.2. Приложения использующие "новые" функции из libgcc_s.so не запустятся. Проверил запуск пары приложений, собранных gcc 4.3.3 - работают с libgcc_s.so от gcc 4.1.2.
6. Спасибо всем, кто помогал, предоставлял нужную информацию

Это второй вариант набора скриптов. Отличия от предыдущего варианта незначительные.
Изменены файлы
include/package-defaults.mk - добавлена переменная ROOT_ZYX:=/media/DISK_A1/system, будет использоваться для сборки некоторых пакетов.
include/package-ipk.mk     - исправления, связанные с правками package/opkg/Makefile

Добавлены пакеты в папку package

ncurses - из ревизии 23778 openwrt (просто забыл его в положить в первый вариант)
slang2  - из транка openwrt (используется для сборки mc)
gawk    - в openwrt gawk не входит. Makefile взят из mailing листа openwrt

У других пакетов подправлены Makefile'ы, patch-файлы, добавлены некоторые новые патчи.

Добавлен файл target/linux/generic/patches-2.6.23/30-fix_conflicting_getline.patch
Он решает проблему ошибки сборки тулчейна в некоторых случаях.

Если Вы собирали тулчейн предыдущим вариантом скриптов, то достаточно заменить изменненные файлы. Пересобирать тулчейн нет необходимости.

PS Конфигурация busybox соответсвует ipk пакету, выложенному в настоящий момент.

Ссылка для скачивания - http://code.google.com/p/zyxel-keenetic … n=2&q=.

На всякий случай первый вариант скриптов - http://code.google.com/p/zyxel-keenetic … n=2&q= (если вдруг возникнет проблема с новым вариантом).

Внимание Третий вариант скриптов, в основу которого положен транк openwrt, можно взять из svn проекта http://code.google.com/p/zyxel-keenetic-packages/ (об этом - в следующих постах).

4

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

Набор Makefile'ов и патчей от vovic67 для сборки minidlna.
http://keenetic.zyxmon.org/sources/mini … ovic67.zip

Makefile'ы можно использовать как в тулчейне от ZyXEL, так и в тулчейнах openwrt, в том числе и из предыдущего поста.

5

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

Набор Makefile'ов и патчей для сборки mc-4.7.5.1 тулчейном из поста номер 3.
http://keenetic.zyxmon.org/sources/mc.tar.gz

6

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

Замечание для тех, кто собирается самостоятельно собирать пакеты для установки через opkg.
Перед сборкой пакетов рекомендую удалять из зависимостей (строки DEPENDS в Makefile) пакеты, которые уже есть в прошивке - libpthread, zlib и т.д.

7

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

При сборке пакета php5 главное изменение, которое надо сделать - изменить в PKG_CONFIGURE_OPTS строку:

        --with-config-file-path=$(ROOT_ZYX)/etc \

Еще (взято из транка) стоит добавить в следующую "секцию" пару строк (добавление зависимости от libsqlite3):

define Package/php5
  $(call Package/php5/Default)
  DEPENDS:=+libpcre
  ifneq ($(CONFIG_PHP5_LIBXML),)
    DEPENDS+= +libxml2
  endif
  ifneq ($(CONFIG_PACKAGE_php5-mod-sqlite3)$(CONFIG_PACKAGE_php5-mod-pdo-sqlite),)
    DEPENDS+= +libsqlite3
  endif
endef

8

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

Перезалил набор v.2 Makefile'ов и патчей для сборки MediaTomb v.0.12.1 UPnP MediaServer
http://rghost.ru/5801191      http://upwap.ru/1488722
Поправил Makefile для File (libmagic).

Отредактировано vovic67 (2011-05-10 16:18:48)

9

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

Готов очередной вариант тулчейна. На этот раз он основан на транке openwrt. Не стал его выкладывать в виде архива. Завел страничку на code.google.com и выложил его в svn репозитарий.
Адрес странички на codegoogle - http://code.google.com/p/zyxel-keenetic-packages/. Будут время - наполню информацией. Пока пишу тут.

Краткая инструкция, как этим пользоваться.
1. Берем исходники от ZyXEL (пост номер 2).
2. Берем все из транка svn :

svn checkout http://zyxel-keenetic-packages.googlecode.com/svn/trunk/   <любая директория, можно в текущую - поставить тут точку>

3. Копируем папку dl из исходников ZyXEL в директорию со скриптами.
4. Копируем из configs/keenetic.config в корень под именем .config
5. Запускаем "make menuconfig" (убедиться, что все правильно), потом "make V=99".
6. Эта сборка нужна, чтобы собрался тулчейн и библиотеки, входящие в прошивку. Когда закончится - удаляем все из bin/keenetic/packages !!!
7. Ставим пакеты из репозитария openwrt

./scripts/feeds update -a
./scripts/feeds install -a

8. Удаляем .config и вместо него записываем configs/packages.config. Если теперь запустить "make V=99", то соберуться пакеты из моего репозитария.
9. Пакеты, которые я собираю (Makefile, патчи и т.п.) лежат в package/built. По мере сборки я переношу в эту папку папки из feeds/ при этом удаляю симлинки из package/feeds.


PS vovic67 - Вы можете выкладывать свои Makefile'ы и патчи прямо в этот svn. Право на это естественно дам.

10

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

В последней бета версии прошивки выкинули библиотеки libreadline (и libheastory). Добавил в пакеты, вернул в Makefile для sqlite3.

11

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

Собрал в последнем варианте тулчейна модуль ядра tun.ko - работает. Пришлось опять слегка править "скрипты openwrt", выкидывать "лишнее".
После окончания проверок выложу бинарный пакет openvpn с модулем ядра.

Похоже пора менять прошивку в кинетике, сижу на достаточно древней, без поддержки INOTIFY в ядре. После этого нужно попробовать NFS сервер (ядерный) собрать.

12

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

Выложил openvpn в репозитарий пакетов на googlecode. У меня отлично openvpn работает по схеме из другого топика. Keenetic настроен точкой доступа.
Небольшие изменения внес в include/kernel.mk

13

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

Набор для сборки MediaTomb UPnP MediaServer (v. 0.12.1)
Конфигурация: mediatomb + sqlite3 + ffmpeg ( - mysql)
http://rghost.net/9001881
Кое-что есть в транке, положил на всякий случай.

14

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

Постараюсь найти время и в выходные собрать mediatomb и положить в виде пакета в репозитарий.

15

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

Zyxmon, Спасибо. В Makefile-е для mediatomb могут быть залепуньки вида - "не найден *.h файл", т.к. я со своими опытами наверняка загадил тулчейн, также забыл выкинуть лишнее из depends. Дополнительные Makefile-ы для сборки библиотек я не трогал. М.б. BigHercules попробует на чистом тулчейне. Дописываю инструкцию для MediaTomb + MySQL из @23778, скоро выложу. И чтобы закончить (с надоевшим, дальше некуда) MediaTomb попробую собрать ffmpegthumbnailer. Хочу сделать Makefile для сборки miniDLNA из транка, на офсайте много изменений с момента выхода последнего финала, есть интересные.

16

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

vovic67, я уже начал править Ваш Makefile
http://code.google.com/p/zyxel-keenetic … b/Makefile

Выкинул некоторые зависимости, вставил nls.mk. Но собирать еще не пробовал.

17

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

vovic67 :

В Makefile-е для mediatomb могут быть залепуньки вида - "не найден *.h файл"

Все нормально собирается, одну строку в предыдущем варианте Makefile исправил.
Осталось проверить работу (запуск) и подправить скрипт для init.d

# ./mediatomb --compile-info

MediaTomb UPnP Server version 0.12.1 - http://mediatomb.cc/

===============================================================================
Copyright 2005-2010 Gena Batsyan, Sergey Bostandzhyan, Leonhard Wimmer.
MediaTomb is free software, covered by the GNU General Public License version 2

Compile info:
-------------
        host:                   mipsel-openwrt-linux-gnu
        sqlite3:                yes
        mysql:                  disabled
        libjs:                  disabled
        libmagic:               yes
        inotify:                yes
        libexif:                yes
        id3lib:                 yes
        taglib:                 disabled
        ffmpeg                  yes
        libmp4v2:               disabled
        external transcoding:   disabled
        curl:                   no
        YouTube:                disabled
        libextractor            disabled
        db-autocreate:          yes
        debug log:              yes
        protocol info extension:yes
        ffmpegthumbnailer:      disabled
        lastfmlib:              disabled
        data directory:         /usr/share/mediatomb

18

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

Кто-нибудь собирал и запускал transmission 2.31 на кинетике? Работает устойчиво? Стоит обновить?

19

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

Набор для сборки mysql (v. 5.0.18)
+ заметки по конфигурации: mediatomb + ffmpeg + mysql (- sqlite3)
http://rghost.net/9242261

20

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

Zyxmon, немного модернизировал кусочек вашего скрипта (теперь стабильно echo выводит 10,9,8 и выход), с оригинальным у меня процесс не завершется.

stop_daemon() {
  #kill `cat $MPID`
  counter=10
  while [ $counter -gt 0 ]
  do
    #daemon_status || break
    kill `cat $MPID`
    RETVAL=$?
    if [ $RETVAL = 0 ] ; then
      #echo "------ $counter"
      let counter=counter-1
      sleep 1
    else
      rm -f ${MPID}
      exit #наверное, лучше break, чтобы всегда выполнялось, то что ниже
    fi
  done

  killall -9 mediatomb
  rm -f ${MPID}
}

21

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

Собран пакет inadyn (исходники из форка http://vmlinux.org/jocke/inadyn.shtml )
Это DynDNS клиент, поддерживаются службы

dyndns.org
freedns.afraid.org
www.zoneedit.com
www.no-ip.com
easydns.com
tzo.com
3322.org
dnsomatic.com
tunnelbroker.net
dynsip.org
sitelutions.com

Клиент может получать внешний ip через http запрос. Это несколько снижает надежность, но позволяет использовать inadyn на кинетике, настроенном точкой доступа или беспроводным мостом.
Внешний ip хранится на usb носителе и проверяется. Вероятность получить abuse минимальная, даже при перезагрузках роутера.
PS Конфигурационный файл /media/DISK_A1/system/etc/inadyn.conf, скрипт запуска /media/DISK_A1/system/etc/init.d/K11inadyn.

22

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

vovic67 я выложил обновленный mediatomb с js, используя Ваш последний архив.

23

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

Соберите пожалуйста VNC Repeater. Буду очень благодарен!
Исходники тут: http://koti.mbnet.fi/jtko/uvncrepeater/repeater014.zip

24

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

Собрал тот vncrepeater, что в репозитарии openwrt. Этот подходит?

Из Makefile

PKG_SOURCE_URL:=http://www.rit.edu/~reh5586/openwrt/packages/vncrepeater/src
....
  TITLE:=UltraVNC repeater for Linux
  URL:=http://www.uvnc.com/addons/repeater.html
....

define Package/vncrepeater/description
Viewer can be behind Nat router or directly connected to the internet
instead of forwarding serveral ports, you only need to forward 1 port.
If the PC that runs the Repeater has access to the local DNS server,
you can use your local DNS names instead of 10.10.10.12.
This could be handy when you have a dynamic DHCP server allocating
ip adresses for your PC.
endef

Проверяйте
http://keenetic.zyxmon.org/files/vncrep … enetic.ipk

PS Посмотрел исходники. Чтобы vncrepeater брал настройки из файла /media/DISK_A1/system/etc/vncrepeater.conf следует указать файл настроек в параметрах без ключа:

vncrepeater /media/DISK_A1/system/etc/vncrepeater.conf 

25

Re: Исходники, скрипты для ZyXEL Keenetic - делимся

Zyxmon, огромное спасибо!

Собрал тот vncrepeater, что в репозитарии openwrt. Этот подходит?

Подходит. Это сама младшая версия из той ссылки, что я приводил. Нужно глянуть в историю изменений, что менялось.

На первый взгляд все работает. Буду тестировать.  О результатах отпишусь

Кстати, это нормально что после установки пакета не добавился в автозагрузку?

P.S. Чтобы работал русский язык на уделенке, достаточно поменять язык на клиенте. На сервере должен оставаться английский!

Отредактировано Nick N. (2011-08-26 10:51:24)