NMT-200 ЧаВо

Linux Term Utils v0.6

Статья Padavan от 16.12.2010
Редакция от 22.12.2010

Список изменений:

  • Добавлен патч TCP окна, устраняющий багчек в ядре (sheduling while atomic) при активных закачках торрентом;
  • Добавлен торрент клиент transmission-daemon 2.13, обновляющий NMT версию transmission 1.76;
  • Исправлен сброс SSH ключей при обновлении пакета.

Описание

  1. Введение
    Данный комплект включает в себя следующие утилиты:

    • busybox-1.17.3 (только дополнительные апплеты, которых нет в оригинальном busybox);
    • dropbear-0.52 (компактный ssh сервер);
    • mc-4.7.0.10 (мощный файловый менеджер Midnight Commander);
    • nano-2.2.5 (мощный текстовый редактор);
    • screen-4.0.3 (расширение терминала);
    • e2fsprogs-1.41.12 (утилиты для управления файловыми системами ext2/3);
    • transmission-daemon-2.13 (обновленная версия битторрент клиента для NMT);
    • util-linux-ng-2.17.2 (fdisk, blkid);
    • parted-2.3 (альтернативная утилита разметки дисков, с поддержкой GPT);
    • smartmontools-5.40 (контроль HDD по SMART’у);
    • hdparm-9.35 (управление параметрами HDD);
    • sdparm-1.05 (управление HDD дисками и CD/DVD/BD приводами);
    • usbutils-0.86 (апплет lsusb);
    • paragon ntfs/hfs tools (chkntfs, chkhfs).

    В пакете находится недостающий модуль PTY, который Syabas вырезала из ядра Linux для соблюдения лицензионных требований. Без PTY невозможна работа терминалов, таких как Telnet и SSH. Данный модуль был собран woj как загружаемый модуль ядра и позволяет запустить PTY без необходимости пересборки ядра. Данный модуль не требуется для последних версий прошивок плейера (он вновь был вернут в ядро), при этом скрипт автоматически проверяет наличие модуля в ядре и при надобности его загружает.

    Пакет был собран с помощью кросс-компилятора Sourcery mips-linux-gnu v4.3-154 из под Ubuntu Linux 10.10
    с использованием параметров компилятора:
    -march=74kf2_1 -mtune=74kf2_1 -mdspr2
    Это соответствует максимальной оптимизации кода для Sigma SMP864X.

  2. Установка и обновление
    Данный пакет имеет формат NMT CSI и устанавливается с помощью установщика NMT CSI (www.nmtinstaller.com). Если установщик NMT CSI еще не установлен на компьютере, то его необходимо скачать и установить. Установщик NMT CSI подключается к плееру через FTP протокол, поэтому необходимо на медиаплеере запустить Приложение NMT FTP сервер. Далее нужно запустить установщик NMT CSI и в меню Экстра выбрать Настройки FTP. В поле Оборудование нужно выбрать модель медиаплеера. Если Приложения NMT были установлены на USB флешку, нужно выбрать модель с типом USB. В поле Сервер/IP адрес нужно указать IP-адрес медиаплеера, например 192.168.0.200, имя пользователя и пароль указать такие, которые заданы в плеере для Приложений NMT, по умолчанию имя nmt, пароль 1234.
    Для установки пакета Linux Term Utils, необходимо выбрать в меню NMT CSI Файл > Установить из файла и указать путь на zip-архив с пакетом. После нажатия «Далее», пакет будет установлен на диск с Приложениями NMT по стандартному пути /share/Apps в директорию /share/Apps/LinuxUtils.При обновлении пакета не затирается пользовательский скрипт user.script.sh, а также сохраняются настройки из configure. Если в дальнейшем Вы переустановите системные Приложения NMT (с сохранением данных), то все существовавшие CSI пакеты будут видны в списке установленных, но ни одно CSI приложение не будет запускаться автоматически при старте. Это из-за того что системные Приложения NMT восстанавливают стартовый скрипт по умолчанию. Чтобы это исправить, нужно снять, а затем поставить галочку Начать по загрузке на любом из пакетов, при этом действии CSI установщик добавит запуск CSI приложений в стартовый системный скрипт NMT.
  3. Настройка
    При желании можно отредактировать файл конфигурации /share/Apps/LinuxUtils/configure и отключить ненужные утилиты или задать требуемые параметры.
    Внимание! Файл конфигурации имеет Unix формат и редактировать его нужно в редакторах, которые понимают окончание строки Unix, например редактором из Far Manager.Если в конфигурации активен параметр START_LOGGER=1, или 2, то запускается логгер, который пишет все системные события и события ядра в файл messages в /tmp, или (при START_LOGGER=2) в /share/Apps/LinuxUtils/log/, доступ к которому можно получить через SAMBA (Win), перейдя в эту директорию. В пакет включен скрипт для автоматической реконфигурации встроенного в NMT приложения Web сервера Apache, который Syabas не посчитала нужным подстроить под ограничения ресурсов медиаплеера. По умолчанию Apache запускает 6 процессов и плюс еще 6 при старте NMT приложения Сервер myiHome и ожидает до 150+150 подключений.
    Скрипт ограничивает кол-во процессов до 2 и уменьшает число доступных соединений до 5, что позволяет сэкономить ОЗУ и ресурсы ЦПУ. Новая конфигурация Apache будет применена после перезагрузки плеера.
    Данная реконфигурация может служить альтернативой сомнительной установки стороннего Web сервера lighttpd (который предлагают установить через CSI-инсталлер) вместо Apache, для уменьшения потребления ресурсов.
    Скрипт управляется параметром TUNE_APACHE=1 в конфигурации. Для автоматического запуска при старте плеера пользовательских команд предусмотрен скрипт /share/Apps/LinuxUtils/user.script.sh. При его редактировании также не забываем про Unix-формат перевода строки. После изменения конфигурации необходимо перезапустить приложение LinuxUtils через CSI установщик.
  4. Подключение терминала
    После запуска пакета, если установлен параметр TERMINAL_SERVER=1 в /share/Apps/LinuxUtils/configure, то медиаплеер ожидает подключения Telnet-клиента на стандартном порту 23. Для Telnet доступны максимум 4 терминальных сессии одновременно.
    Если параметр установлен как TERMINAL_SERVER=2, то медиаплеер ожидает подключения SSH-клиента на стандартном порту 22.Для доступа через Telnet можно воспользоваться клиентом Microsoft Telnet, но лучше всего использовать программу PuTTY, предварительно настроив ее на кодировку UTF-8.
    PuTTY также имеет SSH-клиент. SSH клиент рекомендуется для подключения извне через интернет, так как использует защищенное соединение. Также замечено что в SSH быстрее работает Midnight Commander.
    Чтобы обеспечить лучшую защиту SSH соединения, нужно сгенерировать свои уникальные rsa и dss ключи для SSH сервера. Для этого в терминале необходимо набрать команду

    dropbearkeynew

    при этом новые ключи перезапишутся в директории /Apps/LinuxUtils/ssh/etc/dropbear. Они и будут использоваться после следующей загрузки плеера.
    После подключения будет запрошен логин, нужно ввести root. Пароль для root задается параметром PASSWD_ROOT= и обязательно должен быть задан при использовании сервера SSH. Если до этого использовался Lundman Shell, то его можно удалить, так как при наличии полноценного терминала он более не нужен.

  5. Обновление битторента Transmission
    При установке данного пакета, он обновляет NMT версию битторента Transmission (1.76) до последней стабильной версии 2.13. Обновление происходит автоматически, при этом выполняется резервная копия оригинальных файлов, из которой оригинальная версия 1.76 будет восстановлена при удалении пакета. Обновленные файлы копируются по пути /nmt/apps, который размещен на первом скрытом разделе NMT приложений. Если переустановить системные NMT приложения, будет автоматически возвращена версия 1.76. Для того чтобы заново обновить Transmission без переустановки этого пакета, достаточно в терминале запустить скрипт:

    /share/Apps/LinuxUtils/appsetup.sh btupdate

    Чтобы вернуть версию 1.76 без удаления этого пакета, достаточно в терминале запустить скрипт:

    /share/Apps/LinuxUtils/appsetup.sh btrestore

    По умолчанию, оригинальный и обновленный NMT Transmission используют RPC порт 8077 для доступа из браузера или альтернативных remote-оболочек. Также оригинальный и обновленный NMT Transmission не используют RPC авторизацию. Эти два основных условия должны выполняться, если требуется доступ к Gaya оболочке из OSD меню попкорна (Web сервисы -> Apps -> Торрент). Если изменить порт или установить авторизацию, Gaya оболочка не будет работать (не будет видеть закачки). Если Gaya оболочка не нужна, можно изменять любые настройки в /share/.transmission/settings.json (только после остановки Transmission).
    Если до этого был установлен отдельный CSI пакет Transmission, при обновлении, из него будут автоматически скопированы все торренты и настройки (только один раз). Скрипт автоматически остановит Transmission, если он запущен. CSI пакет Transmission по умолчанию использует RPC порт 9091, поэтому после переноса настроек, если требуется рабочая Gaya оболочка, нужно вернуть порт 8077 в настройках /share/.transmission/settings.json («rpc-port») и отключить авторизацию по имени и паролю («rpc-authentication-required»).
    Все торренты и настройки CSI пакета Transmission находятся по пути:
    /share/Apps/Transmission/.transmission
    Все торренты и настройки оригинального, а также обновленного NMT Transmission находятся по пути:
    /share/.transmission
    После того как торренты и настройки будут перенесены, CSI пакет Transmission лучше удалить, поскольку его скрипты и скрипты CSI постоянно пишут во внутреннюю флеш память плейера при каждом запуске торрента и при каждой перезагрузке плейера.

  6. Обход ошибки ядра Linux при использовании закачек торрентом на высокой скорости
    Установлено, что версия ядра Linux 2.6.22.19 имеет ошибку (предположительно в модуле tango_enet), которая
    проявляется при использовании любого торрента (Transmission/BTPD) во время высокой скорости закачек с большого количества пиров. Происходит багчек ядра с кодом ошибки «sheduling while atomic», при этом ядро останавливается и плейер полностью зависает (аналог BSOD в Windows). При анализе стека ошибки было выяснено, что ошибка происходит в ядре Linux при динамической реаллокации буфера TCP окна в большую сторону. Данная ошибка проявляется только на прошивках «02-03-100821-21-POP-408-000″ и более поздних, поскольку до этого syabas использовала фиксированный зажатый размер TCP окна. При включенном параметре FIX_TCP_RMEM=1 данный пакет делает коррекцию TCP окна ядра, что позволяет обойти ошибку и пользоваться битторентом сколько угодно долго и на любых скоростях.
    К сожалению, коррекцию сделать не так просто, поскольку встроенный в прошивку скрипт /opt/sybhttpd/default/setups.cgi постоянно вызывается в фоне и сбрасывает параметры TCP окна. Чтобы это устранить, нужно пропатчить оригинальный setups.cgi в HEX редакторе, заменив строковый ресурс >/proc/sys/net/ipv4/tcp_rmem на >/dev/null. После этого нужно скопировать пропатченный setups.cgi в директорию ../tcp_rmem данного пакета. Скрипт запуска пакета автоматически привяжет пропатченный setups.cgi и параметры окна больше не будут сбрасываться. В данном пакете уже поставляется пропатченный setups.cgi от прошивки C-200 «02-04-101206-21-POP-408-000″, который при совпадении будет использован. Также в пакете можно найти и использовать уже пропатченный setups.cgi от прошивки A-200/A-210 «02-04-101106-21-POP-411-000″. Если установлена другая прошивка, нужно патчить /opt/sybhttpd/default/setups.cgi самостоятельно.
  7. Ограничения
    ВНИМАНИЕ! Перед установкой пакета НАСТОЯТЕЛЬНО рекомендуется удалить через NMT CSI следующие пакеты (если они были установлены):

    • busybox (Ger Teunis);
    • Telnet (Vaidyasr);

    и после удаления перезагрузить плеер.

    Данный пакет тестировался с прошивками плеера:
    C-200: версии 02-04-101206-21-POP-408, 02-04-101104-21-POP-408, 02-03-101006-21-POP-408 и 02-03-100821-21-POP-408;
    A-200/A-210: версии 02-04-101106-21-POP-411-000 и 02-03-100918-21-POP-411-000.
    Работа на более старых версиях прошивок не гарантируется. Пакет не записывает никаких изменений в NAND-Flash и после отключения или удаления и перезагрузки плеера не оставляет никаких следов в Linux root.

    ВНИМАНИЕ!
    Так как в пакете присутствует мощный файловый менеджер Midnight Commander, который позволяет получить визуальный доступ ко всей, в том числе и корневой файловой системе Linux медиаплеера, необходимо быть очень внимательным, чтобы случайно не удалить или не изменить важные системные файлы.
    Большинство файлов находятся в ramfs и их изменение будет актуально только до перезагрузки. Часть файлов доступны только для чтения. Однако в директории /opt присутствуют такие файлы, которые находятся под контролем pflash и если их изменить, они будут записаны во внутреннюю флеш память. Если вы не осознаете что делаете, не делайте этого!

    Если требуется произвести обслуживание раздела /share, на котором установлены LinuxUtils, такое как проверка раздела, форматирование, ручная разбивка диска, необходимо перед размонтированием раздела выполнить из терминала скрипт /share/Apps/LinuxUtils/copy_to_roofs.sh». При этом самые необходимые утилиты cкопируются в rootfs (в ОЗУ) и будут доступны после размонтирования раздела. После перезагрузки плейера содержимое rootfs всегда восстанавливается по умолчанию.

  8. История изменений
    v0.6 (16.12.2010):

    • Добавлен патч TCP окна, устраняющий багчек в ядре (sheduling while atomic) при активных закачках торрентом;
    • Добавлен торрент клиент transmission-daemon 2.13, обновляющий NMT версию transmission 1.76;
    • Исправлен сброс SSH ключей при обновлении пакета.

    v0.5 (09.12.2010):

    • Исправлена проблема совместимости с прошивкой C-200 «02-04-101206-21-POP-408-000″.

    v0.4 (30.11.2010):

    • Исправлен баг терминала в GNU screen;
    • SSH dropbear устанавливается в rootfs для работы SSH после отключения диска с приложениями;
    • Добавлена работа терминала из под пользователя nmt;
    • Добавлены утилиты для проверки (fsck) файловых систем FAT, FAT32, NTFS, HFS, HFS+;
    • Добавлена настройка выбора пути для системного лога;
    • Добавлен скрипт «copy_to_roofs.sh» для временного копирования утилит в rootfs;
    • Исправлен конфликт с OSD меню попкорна: При попытке сделать чистую установку NMT приложений происходила ошибка «Ошибка форматирования, возможно неисправен жесткий диск».

    v0.3 (18.11.2010):

    • Добавлен GNU screen v4.0.3;
    • Исправлен запуск скрипта dropbearkeynew из под telnet терминала;
    • Ускорена загрузка PTY модуля в 25 раз (ранее это занимало 8 секунд);
    • Пакет подготовлен по стандарту NMT CSI.

    v0.2 (12.11.2010):

    • Добавлен файловый менеджер Midnight Commander 4.7.0.10;
    • Добавлен логгер smartd из smartmontools;
    • Обновлен ssh сервер dropbear до v0.52, добавлен скрипт для обновления ключей;
    • Обновлен редактор nano до v2.2.5;
    • Пересобран lsusb без использования библиотеки libusb-0.1;
    • Доработан CSI скрипт запуска/остановки пакета;
    • Добавлен стартовый пользовательский скрипт user.script.sh.

    v0.1 (08.11.2010):

    • Первый релиз.

Padavan

16.12.2010


Загрузить Linux Term Utils v0.66

55 комментариев к этой записи

  • opium

    Padavan, я еще не ставил новый релиз, но уже есть есть вопрос:
    Раз уж ты опережаешь Ger Teunis в компиляции Transmission, то можно попросить тебя в следующую сборку скрипт перед запуском Transmission вживить — на проверку существования требуемых ему же разделов (с пропиской контроллируемых каталогов в том же общем для LU конфиге), со стартом только после того как маунт всего отработает.
    Что-то типа такого, но поприличнее. ;)

  • artart

    я ничего не понял но зависание при закачке на большой скорости хочетса удалить
    помогите пожалуйста

  • WildFlexy

    Поставил, сразу же словил непонятный глюк — после старта приложений Telnet уже появился (штатный или нет — не уверен) — успел dmesg посмотреть, а потом все порвалось и не смог сессию переконнектить никак. Только рестарт LTU через CSI помог.
    Еще раз ребутнул с пульта — вроде все ок.

    Да — раз уж Transmission есть — как ему проверку на наличие маунтов привесить — Padavan, подскажи где же его скрипт на старт ? в /nmt/apps/etc ?

    • Padavan

      1) Удалите из user.script.sh патч TCP окна (если добавляли руками). Он может помешать обновлению LTU из-за bind.
      2) Используйте сборку LTU 0.64, я недавно архив обновлял, ссылка обновлена. Ставить всегда нужно поверх, реализовано корректное обновление без затирания пользовательских скриптов и настроек.
      3) После установки можете спокойно снести CSI трансмишен. Он будет автоматически отключен из автозагрузки.
      4) Для решения проблемы позднего монтирования есть решение, я подробно его описывал здесь http://forum.ixbt.com/topic.cgi?id=62:17700-154#5059

      • WildFlexy

        Вот оно — on-stop и on-start. Здесь же в ньюсе эти итерации не описаны (как и в ридми пакета 0.64, который я и поставил). Форум я давненько не курил — времени 0. Надо бы вынести про это на сайт.
        А вариант с трансом на HDD не прокатит — у меня 4 HDD, 2 с них на USB — маунт просто хаотический :)

        • Padavan

          Первый вариант что я описывал прокатит всегда, потому что старт NMT приложений вызывается из mounter. Он это делает только после того как примонтирует /nmt и /share.

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

  • Евгений

    Found hardware type: Popcorn Hour C200

    Application Initializer version 1.12
    —————————————
    Checking for new version: up to date
    Checking Application Initializer profile: Valid
    cat: can’t open ‘/mnt/syb8634/server/php5server/httpd.conf’: No such file or directory
    cat: can’t open ‘/mnt/syb8634/etc/ftpserver.sh’: No such file or directory
    Configuring system to start all applications on boot: cat: can’t open ‘/mnt/syb8634/etc/ftpserver.sh’: No such file or directory
    /opt/sybhttpd/localhost.drives/SATA_DISK/Apps/AppInit/appinit.cgi: line 186: /mnt/syb8634/etc/ftpserver.sh: No such file or directory
    Done
    Installing application from file /share/LinuxUtils.tar: Done
    Starting LinuxUtils: Done

    папка mnt пустая. syb8634 есть в nmt . видимо что то нудно смонтировать, чтобы в mnt было. Подскажите.

  • sanya5791

    спасибо за Вашу работу. Все ставится и настраивается довольно легко.
    У меня почему-то не получается зайти через ssh. Захожу из под Linux Ubuntu 10.04. В шэлле пишет: root@10.0.0.100‘s password:
    Permission denied (publickey,password).
    А в логах на nmt пишет:
    Dec 19 17:56:11 NMT-popcorn authpriv.warn dropbear[2926]: user ‘root’ has blank password, rejected
    Dec 19 17:56:35 NMT-popcorn authpriv.warn dropbear[2926]: user ‘root’ has blank password, rejected
    Dec 19 17:56:54 NMT-popcorn authpriv.warn dropbear[2926]: user ‘root’ has blank password, rejected
    Dec 19 17:56:55 NMT-popcorn authpriv.info dropbear[2926]: exit before auth (user ‘root’, 3 fails): Exited normally
    ~
    подскажите в чем тут может быть дело?

    • Padavan

      Откройте файл /Apps/LinuxUtils/configure. Там задается пароль для рута. Он не должен быть пустым, иначе dropbear не пустит через SSH. После смены пароля нужно перезапустить LTU или перезагрузить попкорн.

      • sanya5791

        Пароль я сменил на свой сразу же: PASSWD_ROOT=»1234″. Проблема не в этом.

        • Padavan

          Так как пароли не могут храниться в rootfs по причине его нахождения в RAM, при каждом старте LTU в скрипте генерится пароль через passwd. Судя по всему у вас пароль не сгенерился по какой-то причине и остался пустой. SSH dropbear не разрешает пустые пароли, это нормально. Покажите что в файле /Apps/LinuxUtils/.daemonresult.

          • sanya5791

            Вот содержимое /Apps/LinuxUtils/.daemonresult:
            ln: /sbin/blkid: File exists
            ln: /sbin/findfs: File exists
            passwd: password for root is unchanged
            passwd: password for nmt is unchanged
            FIX_TCP_RMEM FAILED! File setups.cgi has mismatch size. Different firmware?

            • Padavan

              У вас какой плейер и какая версия прошивки? Патч TCP не сработал, поскольку нужно заменить setups.cgi от своей версии прошивки, читайте в описании.

              У меня такое ощущение что вы файл configure испортили DOS окончанием строки. Возьмите оригинальный файл из пакета, замените его и аккуратно отредактируйте его в нормальном редакторе, понимающем UNIX формат окончания строк. Затем перезагрузите попкорн и посмотрите что будет в .daemonresult

              • sanya5791

                У меня А-200. Прошивка: 02-04-101208-21-pop-411-000
                Версия NMT: 02-04-101104-21pop-411
                Патч TCP пока не ставил, т.к. не пользуюсь торрентами.
                Странно, но я в Вашем архиве «Linux Term Utils» я не нашел файлика «./LinuxUtils/configure».
                Для редактирования конфига я использовал gedit, или встроенный редактор в midnigh commnader. Так, что думаю, что проблема не в этом. Хотя я бы попробовал последовать Вашему совету,будь у меня оригинальный «config» — где его найти?

                • Padavan

                  configure генерится автоматически при установке пакета. Мождете конфиг взять отсюда http://nmt200.ru/wp-content/uploads/utils/configure.tar.gz.

                  • sanya5791

                    переконфигурировал новый конфиг файл. Ситуация не изменилась видимо проблема не в этом. Еще идеи?

                    • Padavan

                      Переключите терминал на telnetd, залогиньтесь и посмотрите, почему пароль не меняется у рута. Попробуйте руками сменить, сменится или нет. Посмотрите что в passwd и shadow. Вы первый, у кого скрипт не может сменить пароль.

  • Glass

    При загрузке девайса срабатывает user.script.sh
    Если я правильно понимаю ситуацию, то если, не выключая устройство, поменяю диск в кармане или добавлю через USB, то команда hdparm из скрипта не сработает. А можно что-нибудь придумать для того, чтобы после появления нового диска срабатывал дополнительный скрипт?

    • Padavan

      Да, не сработает. Динамически загружать параметры не получится, так как для этого в прошивке используется демон mounter, который срабатывает от PnP вызовов ядра через udev. mounter загружает автоматически во вновь установленные диски hdparm -S60, это спин-даун таймер на 5 минут бездействия.

  • WildFlexy

    Padavan, есть нарекания к стопу Transmission 2.13 через интерфейс Настройка->Приложения NMT. Дважды стопал его при активных закачках. Останавливается неожиданно быстро, но последующий запуск приводит к речекингу файлов.
    Ты уверен, что все ок со стопом демона?

    P.S. пре и пост скрипты (on start и on stop) еще не трогал

    • Padavan

      Покажите мне пожалуйста содержимое /nmt/apps/server/clutch.

      • WildFlexy
        #!/bin/sh
         
        APPPATH="/nmt/apps/bin"
        DLPATH="/share/Download"
        LTUPATH="/share/Apps/LinuxUtils"

        func_start()
        {
                echo -n "Start Transmission Damon: "
               
                killall -q btpd_monitor
               
                chmod 777 /tmp
               
                crontab /nmt/apps/etc/root.cron
                if [ -e /share/.transmission/btschlist ]; then
                        schnum=`cat /share/.transmission/btschnum`
                        cat /share/.transmission/btschlist >> /var/spool/cron/crontabs/root
                        sed -i '1c\\#-'${schnum} /var/spool/cron/crontabs/root
                        crontab /var/spool/cron/crontabs/root
                fi
               
                umask 0000
               
                # create default settings dir
                if [ ! -d /share/.transmission ] ; then
                        mkdir /share/.transmission
                else
                        chmod -R 777 /share/.transmission
                fi
               
                # create default settings.json
                if [ ! -f /share/.transmission/settings.json ] ; then
                        $APPPATH/transmission-daemon -a "127.0.0.1, *.*.*.*" -w "$DLPATH" -p 8077 -L 150 -l 30 -d 2>/share/.transmission/settings.json
                fi
               
                # create default download dir
                if [ ! -d "$DLPATH" ] ; then
                        mkdir -p -m 777 "$DLPATH"
                fi
               
                # call user script before start transmission
                if [ -f "$LTUPATH/transmission/on_start.sh" ] ; then
                        "$LTUPATH/transmission/on_start.sh"
                fi
               
                export HOME=/share
                export CLUTCH_HOME=/nmt/apps/clutch5
                export TRANSMISSION_WEB_HOME=/nmt/apps/clutch5
               
                # start transmission
                $APPPATH/transmission-daemon -g /share/.transmission
                if [ $? -eq 0 ] ; then
                        # save started state
                        if [ "$1" == "save" ] ; then
                                if [ "`pflash get btpdserv`" == "0" ] ; then
                                        pflash set btpdserv 1
                                fi
                        fi
                       
                        /opt/sybhttpd/default/webservices.cgi cmd=RelPG_0
                       
                        echo "[  OK  ]"
                else
                        echo "[FAILED]"
                fi
        }

        func_stop()
        {
                echo -n "Stop Transmission Daemon: "
               
                killall -q btpd_monitor
               
                if [ "$1" == "save" ] ; then
                        # save stopped state
                        if [ "`pflash get btpdserv`" == "1" ] ; then
                                pflash set btpdserv 0
                        fi
                fi
               
                crontab /etc/cron/root.cron
               
                if [ "$1" != "forcestop" ] && [ -e /share/.transmission/btschlist ] ; then
                        schnum=`cat /share/.transmission/btschnum`
                        cat /share/.transmission/btschlist >> /var/spool/cron/crontabs/root
                        sed -i '1c\\#-'${schnum} /var/spool/cron/crontabs/root
                        crontab /var/spool/cron/crontabs/root
                fi
               
                # stop transmission
                killall -q transmission-daemon
               
                # gracefully wait max 30 seconds while transmission stopped
                i=0
                while [ -n "`pidof transmission-daemon`" ] && [ $i -le 30 ] ; do
                        echo -n "."
                        i=$(( $i + 1 ))
                        sleep 1
                done
               
                [ $i -ne 0 ] && echo -n ". "
               
                trmd_pid=`pidof transmission-daemon`
                if [ -n "$trmd_pid" ] ; then
                        # force kill (hungup?)
                        kill -9 "$trmd_pid"
                        sleep 1
                        echo "[KILLED]"
                else
                        echo "[  OK  ]"
                fi
               
                rm -f /tmp/bt_data
               
                # open full access for settings.json
                if [ -f /share/.transmission/settings.json ] ; then
                        chmod 777 /share/.transmission/settings.json
                fi
               
                # call user script after stop transmission
                if [ -f "$LTUPATH/transmission/on_stop.sh" ] ; then
                        "$LTUPATH/transmission/on_stop.sh"
                fi
        }

        case "$1" in
        start)
                func_start
                ;;
        start-save)
                func_start save
                ;;
        stop)
                func_stop
                ;;
        forcestop)
                func_stop forcestop
                ;;
        stop-save)
                func_stop save
                ;;
        *)
                echo "Usage: $0 {start|stop|start-save|stop-save}"
                exit 1
        esac
         
        exit 0
        • Padavan

          Скрипт обновленный, все в норме. Я сам тестировал большое кол-во раз остановку и запуск через OSD меню, ни разу прокола не было. Точнее был такой прокол два раза из-за btpd_monitor, он киляет transmission-daemon после нескольких секунд ожидания. Он был в старом скрипте, я его перетащил с оригинального скрипта 1.76, оказалось что от него вред. Если запустить btpd_monitor, он через несколько секунд прибьет transmission-daemon через kill -9 (насильное прибиение процесса) и после этого все торренты будут перечекиваться.

        • Padavan

          Добавьте вот этот блок в начале func_start в /nmt/apps/server/clutch и /share/Apps/LinuxUtils/transmission/server/clutch

          func_start()
          {
                  # Make sure already running
                  if [ -n "`pidof transmission-daemon`" ] ; then
                          echo "Transmission already running!"
                          exit 0
                  fi
          ...

          Это предотвратит запуск второй копии, особенно если запускать через скрипт. Вторая копия может побить хеши, поскольку берет одну конфигурацию. Я обновлю в следующей минорной сборке.

  • pchuser

    Padavan, спасибо за проделанную работу. Уже несколько дней мой C200 c LTU v 0.63 работает как часы. Из положительных моментов по сравнению с поведением NMT c LTU v 0.5 + Transmission 2.12 + TCP window size bug fix от Padavan могу отметить:
    1. Почему-то ~ на 70% вырос объем раздачи (Transmission 2.13 из LTU), явно существенно возросла средняя скорость отдачи.
    2. Transmission настроен с preallocation:2 и в предыдущем варианте в момент выделения места под торрент C200 практически не реагировал на команды пульта ДУ, жутко тормозиа даже ssh (telnet) сессия.
    В нынешнем варианте Transmission 2.13 из LTU при выделении место под торрент тормозов практически нет,
    плеер бодро откликается на команды ДУ и ssh (telnet) сессия работает вообще без проблем.
    WildFlexy, только что остановил Transmission 2.13 через OSD меню плеера, подождал, проверил, что торрент точно остановлен, запустил. Раздачи возобновились без всякого речека.

    • Padavan

      В том то и дело, если пакет нормально обновился и /nmt/apps/server/clutch из сборки 0.63 и выше, никаких проблем с остановкой нет — демону кидается команда на выход и корректно ожидается выход демона в течении максимум 30 секунд. Обычно демон завершает работу в течении 3-8 секунд.

      • WildFlexy

        Да, так и есть — около 5 секунд. 2.12 CSI тупил на стоп подольше.
        Ну раз я один — значит где-то во мне порылась проблема.
        Я же еще конфиг транса слил с 2.12 — поэтому у меня порт старый 9091 — может я зря это сделал? :)

  • pchuser

    WildFlexy, добавил один большой торрент, дождался интенсивной закачки, еще раз проверил останов/запуск трансмишен через OSD меню: все работает нормально, речека незавершенных и завершенных торрентов нет. У меня
    NMT приложения и медиасетап на HDD 500Gb 2.5″, у Вас на флешке вроде бы. Может это как-то влияет.
    P.S. Вы в курсе, что на Вашем сайте если неправильно ответишь на контрольный вопрос, выводятся непонятные кракозяблики вместо информации об ошибке и сообщение безвозвратно пропадает, без возможности второй попытки ответить на вопрос.

    • WildFlexy

      Хорошо что у тебя все хорошо!
      Padavan’у, конечно, пожизненный респект — дропы на ап на сетевухе совсем ушли. Они раньше жить не мешали, но сейчас совсем не стало.

      Если бы Padavan еще и на почту отвечал…

      P.S. Сайт рассчитан на тех, кто в соcтоянии проделать простейшие математические вычисления — это отсеивает море спама. Пока более лучшего плагина не нашел, а свой писать некогда.
      Кракозяблов не наблюдал (у меня хром и опера).
      И еще — вроде как регистрированным и одобренным однажды пользователям не надо математику считать.

    • владимир

      привет! у меня такая же проблема диск на 2.5″wd640 постоянно зависает такой пример смотрю фильм ставлю на паузу кофейка налить прихожу висит,я сделал так hdd вытащил вставил его в корпус с usb от 3.5″ теперь у меня все летает не разу не завис, я только желею зачем я купил диск 2.5 640 знал-бы купил 2tb 3.5 за эти деньги, по моему опыту я понял для него нужен другой корпус побольше как у dune поставить на hdd отдельный вентилятор,а в А200 есть место для вентилятора но не куда воткнуть может кто знает как,а во стальном супер плеер, еще раз не купил его

  • evgeny

    Уважамый Padavan! А можно ли этот комплект установить в плееры HDI DUNE?

    • Padavan

      Вы читаете мои мысли. Комплект готов для дюны, скоро будет выложен. Осталась одна проблема, пока не могу поймать каллбэк от оболочки дюны, чтобы безопасно останавливать трансмишен. Каллбек от перезагрузки нормально прикрутил, а от выключения — пока нет. Если сейчас дуню выключить при качающем трансмишене, будет речекинг.

      • WildFlexy

        Padavan — а выкладывать файлы для Dune куда будешь?

        P.S. И на почту ты не отвечаешь… Тебя на контакт не вытащишь по приватным вопросам :(

        • Padavan

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

          • WildFlexy

            Ок — поместил страницу по LTU на почетное место.
            По статье — как всегда — жду с нетерпением :)
            А по почте — ты реагируй — там может быть много вкусного !

  • Юрий

    Не обновляется до transmission-daemon 2.13.
    Было установлено Linux Term Utils v0.5 и transmission 2.12.
    Удалил Linux Term Utils v0.5, через NMT остановил transmission 2.12, установил Linux Term Utils v0.6.

    Что делаю не так ?

    • WildFlexy

      2.12, скачанный и установленный через CSI и 2.13 из комплекта LTU — 2 разных приложения.
      Поставив LTU 0.6 ты заменил штатный из комплекта Приложений NMT Transmission v1.76 видимый частично в папке /share/.transmission на новый 2.13.
      Перенеси свой torrents и resume в /share/.transmission и запускай 2.13 через штатный OSD (на телеке)

      Если ты ему конфиг не правил — порт на коннект будет 8077:
      http://PCH-C200:8077

  • Arkady

    Добрый день ! Нужна помощь . В первую очередь спасибо за работу , уже год жду что бы торрент работал нормально . Установил все как написано , ( прошивка у меня последняя ) , все ровно жёсткие зависания в меню . Невозможно переключатся ! Что может быт не так ? Всем Спасибо !!!!!!

    • WildFlexy

      У меня C-200, приложения на USB-Flash.
      Качаю как на SATA HDD, так и на подключенные через USB. Все эти HDD в Ext3, на всех низкий уровень фрагментирования (везде файлы или перезалиты или создавались Transmission с preallocation=2).
      Зависания (а точнее торможение) в меню у меня есть, НО ТОЛЬКО в момент создания Transmission новых файлов. И это не проблема, реактивной многозадачности от медиаплеера не дождешься :)

      • Arkady

        Да дело в том , что как только скорость достигает 1 мега все , меню пользоваться не возможно , вообще . После 10 часов продолжает работать , у меня один диск в ext3 и один в NTFS (SATA) . Закачка происходит на ext3 .

        • WildFlexy

          У меня также 1МБ/сек и выше качает.
          Проверь при такой закачке нагрузку в командной строке через top — сколько ресурсов cpu и кто кушает?

          • Arkady

            Скажи , как это сделать ? я не болшой специалист . Я проверу и отпишусь ! Спасибо !!!!

            • Arkady

              Mem: 187376K used, 3904K free, 0K shrd, 2240K buff, 105488K cached
              CPU: 18.7% usr 8.9% sys 0.0% nic 47.5% idle 14.9% io 0.0% irq 9.7% sirq
              Load average: 1.37 1.42 1.49 3/77 3746
              PID PPID USER STAT VSZ %MEM CPU %CPU COMMAND
              2451 1 root S 23680 12.3 0 28.0 /nmt/apps/bin/transmission-daemon
              1011 1009 root S 407m217.5 0 2.9 syb_framework
              886 1 root S 9008 4.7 0 0.2 /upnp/upnpapp
              2009 1953 nmt R 3104 1.6 0 0.2 top
              22161 22158 nobody S 23408 12.2 0 0.0 /share/Apps/lighttpd/bin/php-cgi -
              22158 1694 nobody S 21904 11.4 0 0.0 /share/Apps/lighttpd/bin/php-cgi -
              935 886 root S 7984 4.1 0 0.0 /upnp/upnpapp
              1788 1 root S 7792 4.0 0 0.0 /nmt/apps/bin/smbd -D
              1793 1788 root S 7792 4.0 0 0.0 /nmt/apps/bin/smbd -D
              1694 1 nobody S 5152 2.6 0 0.0 sbin/lighttpd -f etc/lighttpd.conf
              1016 1 root S 5088 2.6 0 0.0 nmt_scannerd
              1786 1 root S 4848 2.5 0 0.0 /nmt/apps/bin/nmbd -D
              936 1 root S 4320 2.2 0 0.0 /opt/sybhttpd/sybhttpd /opt/sybhtt
              1953 1436 nmt S 4112 2.1 0 0.0 -sh
              1022 1 root S 3856 2.0 0 0.0 crond -l 20
              1 0 root S 3360 1.7 0 0.0 init
              1009 1 root S 3344 1.7 0 0.0 /bin/sh ./appcontrol
              865 1 root S 2672 1.3 0 0.0 mounter
              1436 1 root S 2608 1.3 0 0.0 telnetd -K -l login
              1731 1 root S 2560 1.3 0 0.0 ./nmtdaemon
              1403 1 root S 2544 1.3 0 0.0 syslogd -O /tmp/messages

              • WildFlexy

                Нагрузка от transmission-daemon не большая, да и вообще полпроца свободно. Никакого криминала.

                lighttpd снести пробовал ?

                Себе я это никогда не ставил и вообще не рекомендую (и Padavan то же советует)

                У тебя приложения на USB-флешке или на SATA?

                • Arkady

                  Проги стоят на HDD , но вот странность изменил директорию загрузки на другой диск NTFS и нет проблем ! Видемо проблема с диском ! Скажи у меня диск WD 2T 4k ext3 , можно его исправит на 512К , без потери информации . Там фильмов на 1.5Т . Спасибо тебе за помощь !!!

                  • WildFlexy

                    Не совсем понял — как это исправить?
                    Насколько я понял, твой WDC WD20ExDS отформатирован как системный и средствами самого попкорна? Это было до декабрьской прошивки?
                    Или ты на нем вручную выравнивал кратность секторов под 4 килобайта (как давали тут рекомендации) ?

  • Arkady

    Да у меня отформатирован средствами попкорна , до декабрьской прошивки . Диск системный . Можно ли выравнивал кратность секторов под 4 килобайта в ручную не удалая содержимое ( Фильмы) . Я слышал , что с декабрьской прошивкой можно отформатирован и использовать без проблем , как системный Samsung HDD F4 или WD EARS . Это так ? У нас просто проблема нету HDD с 512K sectors. Только Samsung HDD F4 или WD EARS !

    • WildFlexy

      В Linux нет ничего невозможного!
      Но для этого нужна магия уровня дисковых операций и написания скриптов.
      Я бы сбэкапил NMT-раздел (первый) — как я писал для BBK, а потом, ручками поднял бы в fdisk его стартовый сектор до 2048, передвинул второй и третий разделы на границы секторов, кратные 8, а четвертый, с данными, сдвинул бы немного вниз, применив

      dd if=/dev/диск of=/dev/диск bs=512 skip=старый стартовый сектор seek=новый стартовый сектор count=количество секторов старого раздела

      Но лучше это делать, поставив SATA-диск напрямую в PC, а то через SATA<>USB мостик или на самом плеере умрешь до окончания операции

      • Arkady

        Ок , спасибо , почитаю , попробую !!! А как на счет декабрьской прошивки, она и в правду корректно работает с новыми HDD ? Я имею ввиду : можно ли использовать новые HDD (HD204UI‎ или WD20EARS ) , как системные ? После чистой установки через Попкорн !! Большое спасибо за терпение и помощь !!!! С наступающим Новым Годом !!!!!!

        • WildFlexy

          Да, на новой прошивке при выбранной установке Приложений NMT как «Чистая» нарезка HDD идет с сектора 2048 и далее кратно 8 для любых HDD (размер сектора не контролируется). И это правильно.

          C наступающим!

  • mirch

    почему начинают именно с 2048?
    есть меньшие числа кратные 8.

    • WildFlexy

      Новый стандарт — GPT (General Partition Table) для данных предусматривает начало именно с сектора 2048. Старый, DOS-совместимый, был с 63.
      Можно и нестандартно — в Linux в общем-то фиолетово (откуда скажешь — оттуда и будет). Но есть и другие операционки (Win например) и дисковые утилиты, которые не вкуривают такие нестандартные размещения и могут на этот диск (в своем диск-менеджере) показать полную ерунду. Так что лучше стандарт, чем произвольная разбивка.

  • sanya5791

    через telnet захожу нормально. Но пароль не справшивает… Странно, чтобы зайти на сетевые ресурсы через самбу, то пароль нужно ввести обязательно. Видимо пароль забит через smbpasswd. При попытке сменить системный пароль root или пользователя nmt с помощью chpasswd ничего не происходит — программка нечего не выдает и можно только выйти из нее по ctrl+C назад в шелл.
    Почему не работает смена пароля в логах ничего не нашел.
    Где можно еще искать решение?

  • Андрей

    Ребята! Кто может попроще подсказать какова причина может случиться в с200 вдруг перестал закачивать добавленые торент файлы хотя включает торент и выключить можно но закачка стоит на нулях.Главное общается с компом,онлайн все в порядке,перемещает файлы и тд. Стал чаще зависать на просмотре. Перепрошил- результатов недало.Приложения все работают а загрузки на жесткий-нет.

2010–2024 © NMT-200 ЧаВо