1

Тема: "Полноценный" linux + dropbear + система установки opkg на Keenetic

На мой взгляд не все понимают написанное в этом и соседнем топиках. Ни о каких модифицированных прошивках речь не идет. Родная прошивка никак не затрагивается. Официальные прошивки позволяют расширить свой функционал за счет дополнительных программ и скриптов, расположенных на usb hdd или флешке.



Посты в топике сохранены для истории. В настоящий момент все инструкции опубликованы в wiki на googlecode. Читаем http://code.google.com/p/zyxel-keenetic … ki/Welcome


Неплохая статья на 3dnews об установке пакетов: Расширяем функциональность ZyXel Keenetic

В этом топике будет публиковаться информация о новых пакетах. Можно тут задавать вопросы по готовым пакетам.
-------------------------------------------------------------------------------------------------------------------------
Далее идут старые посты, сохранены для истории.

Начну с того, что все нижеизложенное основано на одном заброшенном проекте, автор которого не я.

Итак.
1. Берем носитель с файловой системой ext2 или ext3 и помещаем в папку DISK_A1/system/bin исполняемый файл
ext_init.sh из архива (пост номер 21 - далее в этом топике).
Файл должен иметь атрибут исполнения. Можно этот файл поместить на носитель, подключенный к кинетику.

2. Перемонтируем носитель (если был подключен к кинетику) или просто подключаем к usb кинетика и ждем минуту-другую, пока в логе не появится

root    Downloading busybox
root    Unpacking busybox
root    Downloading system
root    Unpacking system
root    Generating rsa/dss keys for dropbear
root    Starting dropbear
dropbear[4261]    Running in background 

3. Подключаемся к кинетику по ssh. Логин root, пароль из пяти букв, начинающийся на z.
Выполняем к консоли
finish_install.sh
и ждем пока все завершится (создастся swap файл):

/media/DISK_A1/system/root # finish_install.sh
Creating swap file. Please wait...
128+0 records in
128+0 records out
Setting up swapspace version 1, size = 134213633 bytes 

4. Скачиваем список уже собранных пакетов командой "opkg update" и смотрим список "opkg list".

5. Устанавливаем то, что нужно. Например mc:
opkg install mc

Я думаю те, кто сами умеют собирать пакеты, разберутся, как ставить свои.

2

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

Пакеты я собирал тулчейном из поста - http://forum.zyxmon.org/post510.html#p510
Немного модифицировал Makefile'ы в папке package. Окончательный вариант выложу позже.

Как будет время соберу:
transmission - 2.13
minidlna - вариант от vovic67 из поста http://forum.zyxmon.org/post509.html#p509
busybox с командой passwd. Пока пароль можно сменить руками поменяв хэш в файле /media/DISK_A1/etc/passwd. Наличие этого файла не является обязательным. Установленный dropbear работает и с ключами авторизации, если их записать в /media/DISK_A1/etc/dropbear/authorization_keys

Предложения по пакетам принимаются.

PS C удовольствием передам дальнейшее развитие этого "мини проекта" другому. Времени на него нет.

3

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

Zyxmon
Спасибо, до этого места все получилось, но здесь засада: ipkg install mc
в ответ получаю:  ipkg: not found, м.б. надо opkg install mc?

4

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

vovic67 :

.... м.б. надо opkg install mc?

Очепятка. Конечно opkg. Это в optware ipkg. Спасибо за замечание - исправил.

5

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

Если не выходит, отписываемся.

В терминальном клиенте (putty) не забываем выставить кодировку UTF-8 для нормального отображения файлов и папок на русском.

Как настроить подключение с ключами авторизации (с паролем или без) - читаем тут
http://wl500g.info/showthread.php?t=12357
(со скриншотами)

6

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

Собрал minidlna по рецепту vovic67 из поста http://forum.zyxmon.org/post519.html#p519
Можно пробовать. После установки отредактируйте файл system/etc/minidlna.conf
Первый запуск после установки делаем так

/media/DISK_A1/system/etc/init.d/S50minidlna start

Останавливаем, если minidlna не нужен

/media/DISK_A1/system/etc/init.d/S50minidlna stop

PS Все скрипты, удовлетворяющие маске S??* запускаются автоматом при монтировании флешки или включении роутера. Останавливаются скриппты в обратном порядке при размонтировании флешки. swapon/swapoff в этих же скриптах. Если считаете, что swap не нужен, переименовывайте S01swap в, например, K01swap.

7

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

Добавил в репозитарий пакетов пропатченный busybox - теперь можно поменять пароль рута.
Делаем
opkg update
opkg install busybox

После этого командой passwd меняем пароль. Пароль web конфигуратора не зависит, от задаваемого командой passwd пароля рута для ssh соединения.

8

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

Обновил пакет mc - выкинул vfs-fish и vfs-smb. Размер стал немного меньше.
Для обновления
opkg update
opkg upgrade mc.

Список пакетов, которые можно обновить после "opkg update" можно посмотреть командой "opkg list-upgradable".

Если dropbear (по логам кинетика) после выполнения начального скрипта ext_init.sh не запустился, то удаляем ext_init.sh и копируем на его место ext_init_final.sh (через ББ). После этого перемонтируем носитель.

9

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

1. Обновление busybox (касается планировщика cron). В system/etc/init.d устанавливается скрипт запуска. Временно он называется K02cron. После настройки cron переименуйте в S02cron.
В фале system/etc/crontabs/root пример задания, выполняющегося каждую минуту (от рута). Удалите это задание и добавьте свои нужные.
2. Добавлен пакет opkg. Теперь обновление программ делается для всех. Вызывать "opkg upgrade" теперь нужно без параметров (имени пакета).

Как всегда сначала вызываем:
opkg update
Потом ставим обновленный пакет opkg:
opkg install opkg
Наконец вызываем
opkg upgrade

Все пакеты (программы) обновятся. В том числе и busybox, если busybox был установлен ранее с помощью opkg.

10

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

Выложен пакет transmission 2.13.
Как всегда делаем opkg update. После этого, если запустить

# opkg list | grep transmis
transmission-cli - 2.13-1 - CLI utilities for transmission.
transmission-daemon - 2.13-1 - Transmission is a simple BitTorrent client.
transmission-remote - 2.13-1 - CLI remote interface for transmission.
transmission-web - 2.13-1 - Webinterface resources for transmission.

То видим, что существуют четыре части, относящиеся к transmission.
Как минимум нужно установить

opkg install transmission-daemon

Для обновления "web морды" transmission нужно поставить пакет

opkg install transmission-web

Морда будет с бОльшими возможностями, чем в штатной, за счет перехода на версию 2.13, но на английском языке.
Файл настроек transmission, который называется settings.json, будет находится в папке
/media/DISK_A1/system/var/transmission
Файл запуска transmission K90transmissiond находится, как обычно, в /media/DISK_A1/etc/init.d/
Для автоматического запуска его следует переименовать в S90transmissiond.

Редактируем K90transmissiond и settings.json под свои нужды. Если пакет transmission-web не устанавливался, то удаляем строку с TRANSMISSION_WEB_HOME. Не забываем про проброс портов (как для демона, так и для RPC).

S90transmissiond с параметрами start/stop/restart понятно что делает.
S90transmissiond reload - перечитывает отредактированный файл settings.json (не нужно останавливать transmission для редактирования настроек руками).
S90transmissiond status - выдает статус (запущенн или нет демон).

PS Никаких искуственных ограничений по скорости у этого transmission нет, но не думаю, что будет работать устойчиво, если задать скорость (up и down) значительно больше 1МБайт/c.

11

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

Собраны и выложены пакеты lighttpd с модулями и php 5.3.1 с модулями

opkg list | grep lighttpd
lighttpd - 1.4.26-3 - A flexible and lightweight web server
lighttpd-mod-access - 1.4.26-3 - Access restrictions module
lighttpd-mod-accesslog - 1.4.26-3 - Access logging module
lighttpd-mod-cgi - 1.4.26-3 - CGI module
lighttpd-mod-fastcgi - 1.4.26-3 - FastCGI module

opkg list | grep php5
php5 - 5.3.1-4 - PHP is a widely-used general-purpose scripting language that is especially
php5-cgi - 5.3.1-4 - As FastCGI support is now a core feature the php5-fastcgi package now depends
 on the php5-cgi package, containing just the startup script.
php5-cli - 5.3.1-4 - PHP is a widely-used general-purpose scripting language that is especially
php5-fastcgi - 5.3.1-4 - FastCGI startup script
php5-mod-gd - 5.3.1-4 - GD graphics shared module
php5-mod-mbstring - 5.3.1-4 - MBString shared module
php5-mod-pdo - 5.3.1-4 - PHP Data Objects shared module
php5-mod-pdo-sqlite - 5.3.1-4 - PDO driver for SQLite (3.x)
php5-mod-sqlite3 - 5.3.1-4 - SQLite3 shared module (3.x)

Настройки php.ini в файле system/etc/php.ini
Для подключения установленных модулей расширений следует в этом файле убрать комментарии из строк
;extension=xxx.so
Настройки lighttpd в файле
system/etc/lighttpd/lighttpd.conf

Запускалки php-fcgi и lighttpd в файлах system/etc/init.d/K29php и system/etc/init.d/K30lighttpd
Запускаем/останавливаем демонов как всегда с помощью start/stop. Для автоматического запуска - меняем первую букву K на S. Для работы php нужно поставить, как минимум модули

lighttpd-mod-cgi
lighttpd-mod-fastcgi
php5-fastcgi

После этого редактируем конфигурацию lighttpd.conf:
1. Добавляем модули lighttpd (у меня так):

server.modules = ( 
    "mod_access",
    "mod_cgi",
    "mod_fastcgi",
    "mod_accesslog"
)

2. Добавляем index.php в index-file.names

index-file.names = ( "index.html", "default.html", "index.htm", "default.htm", "index.php" )

3. Добавляем fastcgi module

#### fastcgi module
## read fastcgi.txt for more info
fastcgi.server = (
    ".php" => (
        "localhost" => (
            "min-procs" => 1,
            "max-procs" => 1,
            "max-load-per-proc" => 4,
            "socket" => "/tmp/php-fastcgi.socket",
            "bin-path" => "/media/DISK_A1/system/usr/bin/php-fcgi"
        )
    )
)

Перезапускаем K29php и K30lighttpd.

PS lighttpd слушает на 81 порту, корень в /media/DISK_A1/system/www (все настраивается в lighttpd.conf).
Работу с sqlite3 не проверял.

12

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

All "По просьбам трудящихся" добавлены новые модули php5.
Как всегда
1. opkg update (для того, чтобы перечитать набор пакетов в репозитарии).
2. Если раньше не сделали, как рекомендовано в 9 сообщении - opkg install opkg (для обновления системы установки). Второй раз делать не нужно.
3. opkg upgrade (для обновления всех ранее установленных пакетов).
4. opkg install package1, package2, .... - устанавливаем новые, нужные пакеты.

13

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

пришлось повозиться часов 5 . получилось,спасибо.

торрент доходит до максимума 2 мегабайта при этом роутер не грузит и все нормально работает. буду тестировать. удалите мои предыдудие сообщение

Отредактировано aseka (2011-05-07 05:12:40)

14

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

aseka :

удалите мои предыдущие сообщение

Некоторые стоило бы и оставить. Удаляю, вместе с моими ответами. Подведу итоги (вопросы и ответы).

а обязательно система должна Ext3?

Или ext2, или ext3. ext2 даже лучше. Может и с ntfs будет работать, но это не проверялось.

а как выставлять атрибут исполнения?

Проще всего скопировать ext_init.sh через сетевое окружение windows на флешку, подключенную к кинетику.
....
Да, установка идет только с первого диска (DISK_A1), все программы работают только с него.
...Может быть у Вас через usb хаб много устройств подключено. Тогда все отключите, оставьте только флешку.

15

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

Добавлю для новичков.

Если кидать файл ext_init.sh через фтп, то потом невозможно менять атрибут.

Команда:    CWD /DISK_A1/system/bin
Ответ:    250 Directory successfully changed.
Команда:    SITE CHMOD 755 ext_init.sh
Ответ:    500 Unknown SITE command.
Статус:    Отключен от сервера

Если форматировать систему в VFAT, то атрибуты уже менять не нужно, но почему-то скрипт запускается криво.

Connecting to keenetic.zyxmon.org (208.43.104.92:80)

busybox.bz2            0% |                               |     0  --:--:-- ETA
busybox.bz2          100% |*******************************|   128k 00:00:00 ETA
Connecting to keenetic.zyxmon.org (208.43.104.92:80)

system.tar.gz          0% |                               |     0  --:--:-- ETA
system.tar.gz         67% |********************           |   200k 00:00:00 ETA
system.tar.gz        100% |*******************************|   295k 00:00:00 ETA
/media/DISK_A1/system/bin/ext_init.sh: line 58: /media/DISK_A1/tmpinstall/tar: not found
/media/DISK_A1/system/bin/ext_init.sh: line 58: /media/DISK_A1/system/usr/bin/dropbearkey: not found
/media/DISK_A1/system/bin/ext_init.sh: line 58: /media/DISK_A1/system/usr/bin/dropbearkey: not found

Таким образом, самое главное, создавать/копировать папки и файлы только через самбу, т.е сетевое окружение видоус.
Ещё лучше форматнуть и скопировать паки/файлы в линуксе, если нет компа с линуксом, то можно воспользоваться LiveCD (ubuntu, fedora и т.д.), а затем выставить права 755 или 777 (chmod 755 -R *).

Подключать флэшку только в первый юсб порт и самое важное! при создании раздела/форматировании флэшки обязательно выбрать свойства раздела "Основной" система ext2

P.S. Сообщение написал Dr_Arut, тот кто помог aseka

16

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

aseka :

Если форматировать систему в VFAT, то атрибуты уже менять не нужно, но почему-то скрипт запускается криво.

с FAT почти ничего работать не будет. Чтобы все нормально устанавливалось и работало нужна файловая система с поддержкой символических ссылок. Это родные для linux ex2 и ext3. С выходом Висты и файловая система ntfs стала поддерживать символические ссылки.

aseka :

самое важное! при создании раздела/форматировании флэшки обязательно выбрать свойства раздела "Основной" система ext2

Теперь понятно, что за пятерка у Вас появлялась во вчерашних постах. Если раздел создан расширенный, то linux считает 1,2,3 - первичные разделы, 4 - extended partition, 5 - первый том на расширенном разделе.

17

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

Внимание, репозитарий пакетов перезжает на codegoogle. Для того, чтобы пользоваться новым репозитарием нужно!
1. Как всегда обновить список пакетов "opkg update".
2. Установить нормальный wget "opkg install wget". (wget из прошивки не качает с codegoogle).
3. Отредактировать файл /media/DISK_A1/system/etc/opkg.conf. В нем заменить строку

src/gz packages http://keenetic.zyxmon.org/packages

на строку

src/gz packages http://zyxel-keenetic-packages.googlecode.com/svn/binary-packages

.
4. После этого опять сделать "opkg update". Должен скачаться список пакетов из нового репозитария.

PS Какие пакеты лежат в новом репозитарии, можно посмотреть тут.
PPS Изменения в репозитарии можно смотреть на http://code.google.com/p/zyxel-keenetic-packages/
Следует зайти на страничку Source, далее Browse. Бинарные пакеты в ветке binary-packages.

18

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

Новые и обновленные пакеты в новом репозитарии:
php 5.3.6 с новыми модулями, lighttpd и т.д.
Теперь при установке модуля php не нужно редактировать php.ini. Кроме php.ini читаются ini файлы из папки ....etc/php5.

19

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

В новом наборе пакетов поменялось название пакета, содержащего библиотеку libiconv. Раньше пакет назывался libiconv, теперь называется libiconv-full. Поэтому при установке пакетов из нового репозитария некоторые получают такую ругань.

* check_data_file_clashes: Package libiconv-full wants to install file /media/DISK_A1/system/usr/lib/libiconv.so.2.4.0
But that file is already provided by package * libiconv

Лучше разрешить указанный конфликт в самом начале. Нужно сделать

opkg remove libiconv --force-depends
opkg install libiconv-full

После этого, для надежности, еще раз

opkg install libiconv-full --force-reinstall

20

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

Поменял конфигурацию opkg. Раньше система пакетов opkg хранила списки пакетов и установленных файлов в

/media/DISK_A1/system/media/DISK_A1/system/usr/lib/opkg/status
/media/DISK_A1/system/media/DISK_A1/system/usr/lib/opkg/info/

Теперь хранит в

/media/DISK_A1/system/var/opkg/status
/media/DISK_A1/system/var/opkg/info/

что гораздо естественнее. Поэтому перемещаем папку /media/DISK_A1/system/media/DISK_A1/system/usr/lib/opkg/ в /media/DISK_A1/system/var/opkg/
После этого opkg update и opkg upgrade.


Постараюсь сделать новую систему установки, которая учтет все последние поправки (репозитарий, busybox, opkg и т.д.

21

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

Выложен новый скрипт установки (в виде самораспаковывающегося архива linux).
Скачать можно по ссылке
1) http://code.google.com/p/zyxel-keenetic … n=2&q=
или
2) http://code.google.com/p/zyxel-keenetic … n=2&q=

Внутри архива файл ext_init.sh
Действовать по инструкции из первого поста.

Отличие от первого варианта.

  • Команда смены пароля для ssh passwd

  • Cron с примером

  • Полноценный wget (для работы с gogglecode)

  • Испавленный opkg (команда upgrade без параметра, репозитарий настроен на googlecode, исправлен путь хранения "библиотек")

22

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

All Рекомендую всем переустановить систему. Самый простой вариант - переименовываем папку system на носителе, создаем новую папку system. Помещаем распакованный ext_init.sh в новую папку system/bin.
После запуска dropbear (по журналу в web) заходим по ssh, заканчиваем установку finish_install.sh, меняем пароль, устанавливаем нужные пакеты. Все что нужно переносим из сохраненной старой папки system.

23

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

Спасибо. На HDD NTFS все встало как надо.

24

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

leogelo :

Спасибо. На HDD NTFS все встало как надо.

Спасибо за информацию, замечательно.
От себя добавлю, что драйвер tuxera для ntfs (он есть в некоторых бета версиях прошивок) символические ссылки на ntfs не поддерживает. С такими прошивками на ntfs система не установится.

25

Re: "Полноценный" linux + dropbear + система установки opkg на Keenetic

Zyxmon :

Спасибо за информацию, замечательно.
От себя добавлю, что драйвер tuxera для ntfs (он есть в некоторых бета версиях прошивок) символические ссылки на ntfs не поддерживает. С такими прошивками на ntfs система не установится.

Может что-то пропустил: файлы *.avi - видны на ТВ, a *.mkv - нет