Меню Рубрики

Установка entware на zyxel keenetic

Форумы Zyxmon`а

Entware-Keenetic

Сообщение TheBB » 17 апр 2016, 21:48

При содействии и помощи компании Zyxel и разработчиков Entware создан новый проект Entware-Keenetic для Keenetic`ов с прошивкой NDMSv2*
В отличии от стандартной версии Entware-ng — при сборке используется ядро кинетика, что улучшает совместимость бинарников с прошивкой.
Некоторые пакеты из стандартного Entware могли не работать или работать криво (напр., nginx)
Все бинарники находятся в одной репе, раньше использовался стандартный репозиторий Entware и дополнительный репозиторий для Кинетиков.

! Бинарная совместимость репозиториев не проверялась, систему нужно поставить с нуля !

Внимание! Официальная техническая поддержка ZyXEL не оказывает консультации по настройке и установке внешних пакетов.
Поддержка интернет-центров с установленными пакетами осуществляется только на этом форуме или на keenopt.ru.

Что такое entware и что такое keenopt?

И keenopt, и entware — системы пакетов, созданные на базе OpenWRT, расширяющие функционал маршрутизатора. Они довольно близки, но используют разную структуру папок.
Пакеты устанавливаются на внешний usb носитель (hdd или флешку). Вы в любой момент можете отключить носитель и вернуться к заводскому функционалу.

Преимущества и недостатки keenopt:
1. их просто нет, как и самого keenopt (проект закрыт)

Преимущества и недостатки entware:
1. (+) много пакетов (1800+ mips, mipsel), много пользователей (около 5000 установок в месяц). Большое комьюнити, много инструкций (часто на английском)
2. (-) нет модулей ядра (входят в состав прошивки, как компоненты OPKG)

Ниже перечислен минимальный набор действий для использования Entware-Keenetic.

ZyXEL Keenetic с USB-портом. Любой, кроме моделей 4GII/III.
Прошивка с компонентом OPKG.
USB носитель с разделом ext2/ext3 и меткой ( метка носителя любая, произвольная , в примере ниже метка keendev-dsl).

1. Подключите USB-носитель к кинетику,
2. Зайдите на носитель по ftp или cifs,
3. Cоздайте на разделе подготовленного USB-носителя папку install,
4. Скопируйте в папку install архив:
— для Keenetic DSL, LTE, VOX — mips
— для остальных Keenetic`ов — mipsel
5. Зайдите в веб-интерфейс кинетика и на странице «Приложения > OPKG» поставьте галку «Включить». Затем выберите из списка нужный USB-носитель и нажмите кн.«Применить». Для наглядности последовательности действий, см. картинку ( прим. количество вкладок, их порядок и описание — зависят от установленных компонентов прошивки и самого устройства )

Если все сделали правильно, то в системном журнале через некоторое время появится строчка «. Установка Entware-Keenetic завершена!»
Пример сообщений системного журнала

Всё! Можно зайти на кинетик по ssh, логин root, пароль zyxel.

Пароль entware никак не связан с паролем кинетика. Меняется он, если необходимо, стандартной командой passwd:

источник

Установка и настройка OPKG-пакета rTorrent

rTorrent — BitTorrent клиент, написанный на языке C++ для операционных систем Linux, на основе библиотек libTorrent. Легкий и нетребовательный к системным ресурсам BitTorrent-клиент.

1. Подготавливаем разделы жесткого диска:

В старом веб-интерфейсе (до версии KeeneticOS 2.11):

В новом веб-интерфейсе (с версии KeeneticOS 2.12):

NOTE: Важно! Данный способ возможен на моделях с USB-портами: Keenetic II, Keenetic III, Extra, Extra II, Giga II, Giga III, Omni, Omni II, Viva, Ultra, Ultra II, Omni (KN-1410), Extra (KN-1710), Giga (KN-1010), Ultra (KN-1810), Viva (KN-1910), DSL (KN-2010), Duo (KN-2110).

3. После установки компонентов потребуется установить репозиторий пакетов Entware.

Архив установки для Keenetic II, Keenetic III, Extra, Extra II, Giga II, Giga III, Omni, Omni II, Viva, Ultra, Ultra II, Omni (KN-1410), Extra (KN-1710), Giga (KN-1010), Ultra (KN-1810), Viva (KN-1910), DSL (KN-2010), Duo (KN-2110) (mipsel) — mipsel-installer.tar.gz

Архив установки для Keenetic DSL, LTE, VOX (mips) — mips-installer.tar.gz

4. В нашем примере рассмотрим установку архива mipsel.

В корне раздела жесткого диска c файловой системой EXT4 создаете директорию install, куда скачиваете файл mipsel-installer.tar.gz.

Читайте также:  Установка подъемника на скважине

Далее отключите жесткий диск от компьютера и подключите к роутеру.

5. Вариант в старом веб-интерфейсе (до версии KeeneticOS 2.11). Если у вас новый веб-интерфейс, тогда переходите к пункту 6 данной инструкции.

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

  • Включите менеджер пакетов OPKG
  • Использовать накопитель: OPKG (метка EXT4-раздела)
  • Сценарий initrc: /opt/etc/init.d/rc.unslung

Нажмите Применить.

6. Вариант в новом веб-интерфейсе (с версии KeeneticOS 2.12):

После перейдите на страницу OPKG и выполните настройки:

  • Накопитель: OPKG (метка EXT4-раздела)
  • Сценарий initrc: /opt/etc/init.d/rc.unslung

Нажмите Сохранить.

7. Перейдите в Системный журнал. В нем должны быть следующие записи:

[I] Mar 28 19:10:34 ndm: Opkg::Manager: /tmp/mnt/OPKG mounted to /tmp/mnt/OPKG.
[I] Mar 28 19:10:34 ndm: Opkg::Manager: /tmp/mnt/OPKG mounted to /opt/.
[I] Mar 28 19:10:34 npkg: inflating «mipsel-installer.tar.gz».
[I] Mar 28 19:10:35 ndm: Opkg::Manager: /tmp/mnt/OPKG initialized.
[I] Mar 28 19:10:35 ndm: Opkg::Manager: configured init script: «/opt/etc/init.d/rc.unslung».
[E] Mar 28 19:10:35 ndm: Opkg::Manager: invalid initrc «/opt/etc/init.d/rc.unslung»: no such file or directory, trying /opt/etc/init.d/.
[I] Mar 28 19:10:35 installer: Info: Раздел пригоден для установки.
[I] Mar 28 19:10:35 ndm: Core::ConfigurationSaver: saving configuration.
[I] Mar 28 19:10:35 installer: [1/5] Начало развёртывания системы Entware.
[I] Mar 28 19:10:35 installer: Info: Создание папок.
[I] Mar 28 19:10:35 installer: [2/5] Загрузка и установка базовых пакетов.
[I] Mar 28 19:10:36 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Downloading http://bin.entware.net/mipselsf-k3.4/Packages.gz.
[I] Mar 28 19:10:36 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Updated list of available packages in /opt/var/opkg-lists/entware.
[I] Mar 28 19:10:36 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Downloading http://bin.entware.net/mipselsf-k3.4/keenetic/Packages.gz.
[I] Mar 28 19:10:36 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Updated list of available packages in /opt/var/opkg-lists/keendev.
[I] Mar 28 19:10:36 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Installing opt-ndmsv2 (1.0-10a) to root.
[I] Mar 28 19:10:36 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Downloading http://bin.entware.net/mipselsf-k3.4/keenetic/opt-ndmsv2_1.0-10a_mipsel-3.4_kn.ipk.
[I] Mar 28 19:10:37 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Installing libc (2.27-8) to root.
[I] Mar 28 19:10:37 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Downloading http://bin.entware.net/mipselsf-k3.4/libc_2.27-8_mipsel-3.4.ipk.
[I] Mar 28 19:10:40 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Installing libgcc (7.3.0-8) to root.
[I] Mar 28 19:10:40 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Downloading http://bin.entware.net/mipselsf-k3.4/libgcc_7.3.0-8_mipsel-3.4.ipk.
[I] Mar 28 19:10:41 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Installing libssp (7.3.0-8) to root.
[I] Mar 28 19:10:41 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Downloading http://bin.entware.net/mipselsf-k3.4/libssp_7.3.0-8_mipsel-3.4.ipk.
[I] Mar 28 19:10:41 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Installing librt (2.27-8) to root.
[I] Mar 28 19:10:41 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Downloading http://bin.entware.net/mipselsf-k3.4/librt_2.27-8_mipsel-3.4.ipk.
[I] Mar 28 19:10:41 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Installing libpthread (2.27-8) to root.
[I] Mar 28 19:10:41 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Downloading http://bin.entware.net/mipselsf-k3.4/libpthread_2.27-8_mipsel-3.4.ipk.
[I] Mar 28 19:10:42 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Installing libstdcpp (7.3.0-8) to root.
[I] Mar 28 19:10:42 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Downloading http://bin.entware.net/mipselsf-k3.4/libstdcpp_7.3.0-8_mipsel-3.4.ipk.
[I] Mar 28 19:10:43 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Installing ldconfig (2.27-8) to root.
[I] Mar 28 19:10:43 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Downloading http://bin.entware.net/mipselsf-k3.4/ldconfig_2.27-8_mipsel-3.4.ipk.
[I] Mar 28 19:10:44 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Installing findutils (4.6.0-1) to root.
[I] Mar 28 19:10:44 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Downloading http://bin.entware.net/mipselsf-k3.4/findutils_4.6.0-1_mipsel-3.4.ipk.
[I] Mar 28 19:10:44 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Installing terminfo (6.1-1) to root.
[I] Mar 28 19:10:44 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Downloading http://bin.entware.net/mipselsf-k3.4/terminfo_6.1-1_mipsel-3.4.ipk.
[I] Mar 28 19:10:44 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Installing ndmq (1.0.2-3) to root.
[I] Mar 28 19:10:44 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Downloading http://bin.entware.net/mipselsf-k3.4/keenetic/ndmq_1.0.2-3_mipsel-3.4_kn.ipk.
[I] Mar 28 19:10:45 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Installing libndm (1.8.0-1) to root.
[I] Mar 28 19:10:45 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Downloading http://bin.entware.net/mipselsf-k3.4/keenetic/libndm_1.8.0-1_mipsel-3.4_kn.ipk.
[I] Mar 28 19:10:45 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Installing locales (2.27-8) to root.
[I] Mar 28 19:10:45 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Downloading http://bin.entware.net/mipselsf-k3.4/locales_2.27-8_mipsel-3.4.ipk.
[I] Mar 28 19:10:47 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Installing grep (2.26-1) to root.
[I] Mar 28 19:10:47 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Downloading http://bin.entware.net/mipselsf-k3.4/grep_2.26-1_mipsel-3.4.ipk.
[I] Mar 28 19:10:47 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Installing libpcre (8.41-2) to root.
[I] Mar 28 19:10:47 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Downloading http://bin.entware.net/mipselsf-k3.4/libpcre_8.41-2_mipsel-3.4.ipk.
[I] Mar 28 19:10:48 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Installing zoneinfo-asia (2018c-1) to root.
[I] Mar 28 19:10:48 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Downloading http://bin.entware.net/mipselsf-k3.4/zoneinfo-asia_2018c-1_mipsel-3.4.ipk.
[I] Mar 28 19:10:48 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Installing zoneinfo-europe (2018c-1) to root.
[I] Mar 28 19:10:48 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Downloading http://bin.entware.net/mipselsf-k3.4/zoneinfo-europe_2018c-1_mipsel-3.4.ipk.
[I] Mar 28 19:10:48 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Installing entware-release (1.0-2) to root.
[I] Mar 28 19:10:48 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Downloading http://bin.entware.net/mipselsf-k3.4/entware-release_1.0-2_all.ipk.
[I] Mar 28 19:10:48 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Installing opkg (2011-04-08-9c97d5ec-17b) to root.
[I] Mar 28 19:10:48 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Downloading http://bin.entware.net/mipselsf-k3.4/opkg_2011-04-08-9c97d5ec-17b_mipsel-3.4.ipk.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Installing dropbear (2017.75-5) to root.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Downloading http://bin.entware.net/mipselsf-k3.4/dropbear_2017.75-5_mipsel-3.4.ipk.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Entware uses separate locale-archive file independent from main system.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: You can download locale sources from http://pkg.entware.net/sources/i18n_glib227.tar.gz.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: You can add new locales to Entware using /opt/bin/localedef.new.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Updating /opt/etc/ld.so.cache. done.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Package ndmq (1.0.2-3) installed in root is up to date.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Configuring libgcc.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Configuring libc.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Configuring libssp.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Configuring libpthread.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Configuring librt.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Configuring terminfo.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Configuring ldconfig.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Configuring libpcre.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Configuring grep.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Configuring locales.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Configuring opkg.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Configuring zoneinfo-europe.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Configuring zoneinfo-asia.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Configuring libndm.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Configuring ndmq.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Configuring dropbear.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Configuring libstdcpp.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Configuring findutils.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Configuring entware-release.
[I] Mar 28 19:10:49 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Configuring opt-ndmsv2.
[I] Mar 28 19:10:59 installer: Info: Установка пакетов прошла успешно! Продолжаем.
[I] Mar 28 19:10:59 installer: [3/5] Генерация SSH-ключей.
[I] Mar 28 19:10:59 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: Generating key, this may take a while.
[I] Mar 28 19:11:01 installer: Info: Ключ ecdsa создан
[I] Mar 28 19:11:01 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: .Generating key, this may take a while.
[I] Mar 28 19:11:03 installer: Info: Ключ rsa создан
[I] Mar 28 19:11:03 installer: [4/5] Установка Entware завершена! Сохранение временной зоны и запуск dropbear.
[I] Mar 28 19:11:03 ndm: Core::Server: started Session /var/run/ndm.core.socket.
[I] Mar 28 19:11:04 ndm: Core::Server: client disconnected.
[I] Mar 28 19:11:04 dropbear[3222]: Running in background
[I] Mar 28 19:11:04 installer: [5/5] Настройка сценария запуска для прошивки NDMS.
[I] Mar 28 19:11:04 ndm: Core::Server: started Session /var/run/ndm.core.socket.
[I] Mar 28 19:11:04 ndm: Opkg::Manager: configured init script: «/opt/etc/init.d/rc.unslung».
[I] Mar 28 19:11:04 ndm: Core::Server: client disconnected.
[I] Mar 28 19:11:04 ndm: Core::Server: started Session /var/run/ndm.core.socket.
[I] Mar 28 19:11:04 ndm: Core::ConfigurationSaver: saving configuration.
[I] Mar 28 19:11:04 ndm: Core::Server: client disconnected.
[I] Mar 28 19:11:04 installer: Можно открыть SSH-сессию для соединения с устройством (ssh root:keenetic@my.keenetic.net -p 222).
[I] Mar 28 19:11:04 installer:
[I] Mar 28 19:11:04 installer: @@@@@@@@@@@@@@@@@@@@@@@
[I] Mar 28 19:11:04 installer: Не забудьте сменить пароль и номер порта!
[I] Mar 28 19:11:04 installer: @@@@@@@@@@@@@@@@@@@@@@@
[I] Mar 28 19:11:04 installer:
[I] Mar 28 19:11:04 ndm: Opkg::Manager: /opt/etc/init.d/doinstall: .
[I] Mar 28 19:11:08 ndm: Core::ConfigurationSaver: configuration saved.

8. Скачайте программу Putty для работы с протоколами SSH и Telnet.

Читайте также:  Установка линукса на планшеты

9. Запустите программу Putty. Выберите SSH, введите IP-адрес Home Vlan (Домашнего сегмента) 192.168.1.1, укажите 222-й порт, подтвердите добавление ключа в кэш Putty для продолжения установки соединения и перейдите в настройки роутера при помощи протокола Secure Shell.

При загрузке подтвердите вход, нажав ДА. Далее введите:

login as: root
root@192.168.111.1’s password: keenetic

Можно установить свой пароль. Вводим команду passwd:

New password: пишем свой пароль
Retype password: подтверждаем пароль

10. Вы зашли в BusyBox v1.27.2 () built-in shell (ash). Теперь нужно обновить opkg-пакет. Для этого введите команду opkg update:

11. После обновления OPKG-пакета, установите пакет rtorrent-easy-install.

Для этого выполните команду opkg install rtorrent-easy-install:

12. В момент установки пакета сразу будет предложено настроить базовые возможности.

Можете установить свой логин/пароль, порт, скорость загрузки/отдачи, путь для скачиваемых торрент-файлов:

Type «username:password» if you want to protect Web UI or hit Enter to leave password protection disabled []: устанавливаем свой логин:пароль, например myhome:mytorrent

Which port should be used by web interface? [81]: по умолчанию стоит 81 порт, можно установить любой свободный порт

Enter (maximal) download speed in KB/s [2048]: по умолчанию установлена скорость 2048, можно поставить свое значение

Enter (maximal) upload speed in KB/s [2048]: по умолчанию установлена скорость 2048, можно поставить свое значение

Enter folder name on USB drive where torrent content should be stored [/opt/torrents]: указываем путь, куда будут скачиваться торрент-файлы. Лучше устанавливать NTFS-раздел, к примеру у нас создан раздел с файловой системой NTFS, называется FILES, в нем мы создали директорию download, указываем путь: /tmp/mnt/FILES/download

#### Welcome to rtorrent easy installation script!
We assuming no lighttpd/rtorrent/rutorrent was installed before!
Please, answer a few question to configure torrent client.
Default aswers given in [brackets], just hit Enter to accept it.

Type «username:password» if you want to protect Web UI or hit Enter to leave password protection disabled []: test:test
Which port should be used by web interface? [81]:
Enter (maximal) download speed in KB/s [2048]:
Enter (maximal) upload speed in KB/s [2048]:
Enter folder name on USB drive where torrent content should be stored [/opt/torrents]:

Done! You may open 51411-51412 TCP/UDP ports on your router to
facilitate uploading/donwloading. It’s not necessary but recommended.
rutorrent web UI will be available at following URL:
:

Do you wish to start torrent client? [y]:

Starting lighttpd. done.
Starting rtorrent. done.

13. Если демон rtorrent не запустился, вы увидите ошибку:

14. Необходимо будет внести изменения в конфигурацию rtorrent. Для этого нужно будет установить пакет nano и отредактировать файл конфигурации rtorrent.conf

Устанавливаем пакет nano:

Редактируем файл конфигурации rtorrent.conf, в котором удаляем старую конфигурацию:

Выделяем все строки старого конфига, нажимаем клавиши Alt + A:

Удаляем все строки старого конфига, нажимаем клавиши Ctrl + K

Добавляем строки нового конфига, нажимаем клавиши Ctrl + V:

Нажимаем клавиши Ctrl + O , сохраняем конфигурацию.

Выходим из редактора nano Ctrl + X

15. Запускаем rtorrent:

16. Заходим в веб-интерфейс rTorrent по адресу http://192.168.1.1:81/rutorrent/, делаем настройку и проверяем работу:

NOTE: Важно! Поддержка пакета осуществляется в теме форума разработчиков — rTorrent — BitTorrent-клиент.

Пользователи, считающие этот материал полезным: 18 из 18

источник