Dune linux term utils
Введение
Данный пакет включает в себя следующие программы и утилиты Linux:
- dropbear-0.52 (компактный ssh сервер);
- mc-4.7.0.10 (мощный файловый менеджер Midnight Commander);
- nano-2.2.5 (мощный текстовый редактор);
- screen-4.0.3 (расширение терминала);
- transmission-daemon-2.13 (быстрый и компактный битторрент клиент);
- nut-2.4.3 (Network UPS Tools — универсальный инструмент для мониторинга UPS);
- e2fsprogs-1.41.12 (утилиты для управления файловыми системами ext2/3);
- 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.87 (апплет lsusb);
- paragon ntfs/hfs tools (chkntfs, chkhfs).
Пакет был собран с помощью кросс-компилятора Sourcery mips-linux-gnu v4.3-154 из под Ubuntu Linux 10.10
с использованием параметров компилятора:
-march=74kf2_1 -mtune=74kf2_1 -mdspr2
Это соответствует максимальной оптимизации кода для Sigma SMP864X. Пакет собран под родную библиотеку glibc.
Открытие доступа к Telnet консоли
Для установки пакета требуется доступ к Telnet. По умолчанию, Telnet сервер в плеере закрыт. В ранних версиях прошивок существовала возможность ввести мэджик-код с ПДУ, который запускал Telnet. В последующих прошивках с 2010 года данный код был изменен и получить доступ к Telnet стало возможным только через UART разъем на материнской плате. Однако был найден более простой способ получить доступ к Telnet. Этот способ позволяет через встроенный торрент-клиент BTPD создать системный файл /config/telnetd. Наличие такого файла запускает демон telnetd при старте плеера. Когда демон telnetd запущен, в настройках, на закладке Информация будет гореть надпись «РЕЖИМ ОТЛАДКИ». Если до этого ни разу не пользовались встроенным торрент-клиентом, его нужно включить через меню, скопировать любой .torrent файл на диск плейера (можно по сети) и запустить данный .torrent файл через меню плеера. При этом будет создана директория /.btpd/torrents. Качать этот тестовый торрент не обязательно, его можно деактивировать и удалить.
Инструкция:
- Останавливаем встроенный торрент-клиент (если запущен);
- Распаковываем содержимое архива dune_telnetd.zip по пути /.btpd/torrents на диск с такой директорией. В итоге получаем директорию /.btpd/torrents/e134de049c6ba2802f94d85a345696a1446be262 c 3 файлами;
- Запускаем встроенный торрент-клиент;
- Переходим на рабочем столе в Торренты и видим там новую закачку с именем «telnetd»;
- Активируем закачку «telnetd». При этом создается файл /config/telnetd. Дожидаться закачки не нужно;
- Перезагружаем полностью плеер (либо кнопкой, либо файлом dune_service_reboot.dsf);
- Проверяем в настройках, на закладке Информация наличие надписи «РЕЖИМ ОТЛАДКИ»;
- Подключаемся к плейеру через Telnet под именем root, пароль пустой.
Идея принадлежит пользователю под ником MG с форума HDTV.ru http://forum.hdtv.ru/index.php?showtopic=4462
Установка и обновление
Для установки данного пакета требуется:
- Установленный системный накопитель (монтируемый в /persistfs)
- Доступ к терминалу через Telnet.
Для установки или обновления пакета нужно выполнить следующие действия:
- Cкопировать файл dune-ltu-0.3.2.tar.gz на любой доступный накопитель Dune, удобнее это сделать по сети через Samba или FTP
- Подключиться к Dune через Telnet используя логин root и пустой пароль
- Определить путь к диску, куда был скопирован файл пакета используя команду df. Все накопители монтируются в директорию /tmp/mnt/storage. Также второй накопитель монтируется в /D. Предположим что искомый путь будет /tmp/mnt/storage/usb_storage_part2_2
- Перейти на этот диск, введя команду cd /tmp/mnt/storage/usb_storage_part2_2 и убедиться через ls что файл dune-ltu-0.3.2.tar.gz находится там.
- Распаковать архив в текущую директорию, набрав команду tar -xzf ./dune-ltu-0.3.2.tar.gz
- Устанавить пакет, набрав команду ./install.sh
- Закрыть telnet сессию и подключиться через telnet повторно
Конфигурация пакета
Чтобы сконфигурировать пакет, удобнее воспользоваться Midnight Commander, набрав команду mc. Переходим в директорию /ltu и открываем на редактирование файл configure.
Параметры:
FIX_TCP_RMEM=1
Активирует фиксирование TCP окна ядра Linux (по умолчанию включено).
Установлено, что версия ядра Linux 2.6.22.19 имеет ошибку (предположительно в модуле tango_enet), которая проявляется при использовании любого торрента (Transmission/BTPD) во время высокой скорости закачек с большого количества пиров. Происходит багчек ядра с кодом ошибки «scheduling while atomic», при этом ядро останавливается и плеер полностью зависает (аналог BSOD в Windows). При анализе стека ошибки было выяснено, что ошибка происходит в ядре Linux при динамической реаллокации буфера TCP окна в большую сторону. При включенном параметре FIX_TCP_RMEM=1 данный пакет делает коррекцию TCP окна ядра, что позволяет обойти ошибку и пользоваться битторентом сколько угодно долго и на любых скоростях.
SAVE_PASSWD=0
Активирует хранение системных пользователей и паролей на системном накопителе (по умолчанию вЫключено).
Так как rootfs Linux распакован в ОЗУ, то любые изменения паролей и пользователей не сохраняются после перезагрузки плеера. Если требуется задать пароль (например при доступе через SSH), то необходимо включить данную функцию и перезагрузить плеер. После перезагрузки можно будет изменять пароли через команду passwd и они будут сохраняться на системном накопителе. ВНИМАНИЕ! если вы забудете пароль, подключиться терминалом будет невозможно, до тех пор пока не будет извлечен системный накопитель или не будет сделана процедура форматирования системного накопителя через служебный dsf файл.
START_SSH=0
Активирует автозапуск компактного SSH сервера dropbear (по умолчанию вЫключено).
Если параметр отключен, будет запускаться Telnet сервер, даже если отсутствует сервисный файл /config/telnetd, запускающий telnet при автозагрузке. Когда запущен Telnet, в OSD меню, Настройки -> Информация будет всегда гореть надпись РЕЖИМ ОТЛАДКИ. Для доступа через Telnet можно воспользоваться клиентом Microsoft Telnet, но лучше всего использовать программу PuTTY (http://www.chiark.greenend.org.uk/
sgtatham/putty), предварительно настроив ее на кодировку UTF-8. PuTTY также имеет SSH клиента. SSH клиент рекомендуется для подключения извне через интернет, так как использует защищенное соединение. Также замечено что в SSH быстрее работает Midnight Commander. Чтобы обеспечить защиту SSH соединения, нужно обязательно задать пароль для root (см. выше).
START_TRANSMISSION=0
Активирует автозапуск битторрент клиента Transmission (по умолчанию вЫключено).
Настройку см. ниже.
START_NUT=0
Активирует автозапуск UPS мониторинга NUT (по умолчанию вЫключено).
Перед запуском NUT требуется его настроить. NUT — очень гибкий инструмент, но довольно сложный в настройке. Основная сложность — составить дескриптор UPS и правильно указать для него драйвер. Все настройки NUT задаются конфигурационными файлами в директории /ltu/etc/nut. NUT состоит из трех уровней — драйвер UPS, сервер upsd и клиент upsmon. Также возможна только работа по сети, когда NUT, используя клиента upsmon, слушает удаленный сервер NUT и принимает от него события серверного UPS. Для проверки корректной настройки можно использовать скрипты nut-start и nut-stop. Функциональность и события от UPS можно проконтролировать через системный лог /tmp/messages. Всю информацию по настройке можно получить с сайта поддержки программы NUT http://www.networkupstools.org.
SPINDOWN_TIME=30
Активирует загрузку spindown таймера бездействия во все HDD (по умолчанию 30 минут бездействия).
После заданного времени бездействия, HDD диски будут останавливать двигатель. Если указать значение 0, то загрузка spindown таймера выполняться не будет. Поддерживаются только дискретные значения таймера 5, 10, 15, 20, 30, 60, 90, 120, 150, 180 минут. Также поддерживается автоматическая установка таймера при горячем подключении нового HDD диска.
Подготовка к работе битторента Transmission
Пакет включает в себя последнюю стабильную версию битторента Transmission (http://www.transmissionbt.com).
Если в конфигурации указан автостарт битторрент клиента Transmission:
START_TRANSMISSION=1
либо если его запустить вручную, набрав в терминале команду transmission-start, будет выполнен запуск демона transmission-daemon, со следующим условием:
Transmission использует хранение своих настроек, торрентов и закачек на ЛЮБОМ пользовательском накопителе, у которого в корне раздела есть директория transmission (с маленькой буквы). Эта директория линкуется в rootfs /transmission, к которой будет происходить доступ. При запуске Transmission, скрипт выполняет сканирование всех дисков и разделов на предмет наличия директории transmission, причем ожидает максимум 10 секунд появления такого раздела, поскольку разделы могут монтироваться системой хаотично. Как только будет обнаружен первый ЛЮБОЙ такой раздел, он линкуется к /transmission и демон запускается в этой директории. В связи с этим нужно соблюдать правило — директория transmission должны быть и быть единственной на подключенных дисках/разделах. Достаточно создать пустую такую директорию, при первом запуске Transmission найдет и слинкует ее, скопирует в нее файл конфигурации по умолчанию, создаст директории для хранения торрентов и закачек.
Хранение настроек, торрентов и закачек на одном диске позволяет держать несколько дисков под разные закачки, которые можно менять. Перед извлечением диска с закачками, нужно обязательно остановить демон, набрав в терминале команду transmission-stop, иначе закачиваемые файлы могут быть повреждены. Для нормальной работы настоятельно рекомендуется использовать раздел диска под закачки в файловой системе ext3. Дело в том, что под Linux драйвер NTFS «чужеродный» и обеспечивает нормальную работу только в режиме чтения. Запись также работает, но экстремальных условий битторента она не выдержит, особенно если будут сбои питания. ext3 журналируема, поддерживается на уровне ядра Linux и хорошо защищена от сбоев при записи. В данном пакете включен свежий набор для работы с ф.с. ext2/3, можно разбить диск и создaть ext3 раздел прямо из плеера, воспользовавшись fdisk (parted), mkfs.ext3, tune2fs, fsck.ext3. Все закачки будут располагаться на диске в директориях:
/transmission/downloads/complete — завершенные закачки
/transmission/downloads/incomplete — незавершенные закачки
Для автоматического подхвата .torrent файлов можно активировать в настройках watch директорию:
/transmission/watch
из которой демон будет автоматически добавлять новые торренты.
Настройки текущей сессии и торренты хранятся в директории
/transmission/.config
Основной файл конфигурации демона /transmission/.config/settings.json. При первом запуске Transmission, будет использоваться оптимальный файл конфигурации по умолчанию. Для работы в дальнейшем, можно изменить пароль для доступа к демону, отредактировать список разрешенных хостов. По умолчанию доступ к демону разрешен с любых ip адресов, логин отключен, пароль пустой. Для редактирования нужно будет будет остановить Transmission, достаточно набрать в терминале команду transmission-stop, затем перейти на диске в директорию /transmission/.config и отредактировать файл settings.json. Достаточно отредактировать поля:
«rpc-authentication-required»: true,
«rpc-username»: «username»,
«rpc-password»: «password»
«rpc-whitelist»: «127.0.0.1, 192.168.*.*»,
«rpc-whitelist-enabled»: true,
После следующего запуска, либо ручного запуска, который можно быстро вызвать командой transmission-start, демон зашифрует поле «rpc-password». Перед редактированием данных полей нужно обязательно остановить демон, иначе при остановке он заменит в файле эти поля на старые, на те что хранятся у него в памяти в текущий момент. Для управления демоном можно использовать Web браузер (IE не ниже 7 версии), набрав в строке адреса http://ip-адрес-плеера:9091.
Также можно использовать альтернативные приложения с более удобным интерфейсом, похожим на uTorrent
transmission-remote-dotnet (http://code.google.com/p/transmission-remote-dotnet)
transmission-remote-gui (http://code.google.com/p/transmisson-remote-gui)
Из-за ограничений размера оперативной памяти плеера доступной под OS (140 МБ) и невысокой тактовой частоты процессора (667МГц), не рекомендуется устанавливать большое кол-во пиров, больше чем эти значения:
«peer-limit-global»: 150,
«peer-limit-per-torrent»: 30,
«upload-slots-per-torrent»: 15,
Также заслуживают внимание поля:
«preallocation»: 1, — быстрая аллокация файла без распределения всей длины, 2 — медленная полная пре-аллокация всего файла (забивается нулями), уменьшает фрагментацию на диске. Во втором случае будет очень долго выполняться преаллокирование файла при добавлении нового торрента (во время которой возможен временный отвал интерфейса), хотя это уменьшит фрагментацию закачиваемых файлов.
«cache-size-mb»: 4, — максимальный размер дискового кеша в МБ. Не рекомендуется устанавливать больше 4-8 МБ из-за малого размера ОЗУ плеера.
Описание всех параметров transmission-daemon можно получить на странице поддержки:
https://trac.transmissionbt.com/wiki/EditConfigFiles
Удаление пакета
Для удаления пакета нужно выполнить следующие действия:
- Подключиться к Dune через Telnet или SSH
- Перейти в директорию, набрав команду cd /ltu
- Удалить пакет, набрав команду ./rc uninstall
- Перезагрузить плеер
ВНИМАНИЕ!
Если отсутствует файл /config/telnetd, запускающий telnet при автозагрузке, то после удаления пакета доступ к telnet будет потерян. Важно это помнить, поскольку восстановить доступ к telnet довольно хлопотно. После удаления пакета и перезагрузки плеера, пакет не оставляет никаких следов в Linux root.
Данный пакет тестировался с прошивками
Dune-H1:
— dune_firmware_hdsmart_h1_101203_2124_test.dff
— dune_firmware_hdsmart_h1_100916_2027_beta.dff
Работа на более старых версиях прошивок не гарантируется.
ВНИМАНИЕ!
Пакет не будет работать на предыдущем поколении плееров Dune на базе чипа SMP863X (ядро CPU MIPS 4Kс), а также на новой модели Dune HD Lite 53D на базе чипа SMP865X (ядро CPU MIPS 24K). Так как в пакете присутствует мощный файловый менеджер Midnight Commander, который позволяет получить визуальный доступ ко всей корневой системе Linux медиаплеера, необходимо быть очень ВНИМАТЕЛЬНЫМ, чтобы случайно не удалить или изменить важные системные файлы. Большинство файлов находятся в ramfs и их изменение будет актуально только до перезагрузки. Часть файлов доступны только для чтения. Если вы не осознаете что делаете, не делайте этого!
ВНИМАНИЕ!
В текущей сборке найден способ корректного завершения работы качающего битторента Transmission при перезагрузке плеера через dsf файл, либо перезагрузке путем ввода команды reboot. К сожалению пока не найден способ, как отловить завершение работы с ПДУ или кнопки (удерживание нажатия), после которой плеер отключается. Если отключить плеер при активных закачках (не раздачах), то при следующем запуске Transmission начнется долгая перепроверка закачиваемых файлов, так как хеши будут не обновлены.
v0.3.2 (04.01.2011):
- При установке параметра FIX_TCP_RMEM=1 увеличен буфер tcp_rmem в 4 раза для увеличения скорости чтения с сетевых ресурсов по NFS-TCP и SMB протоколам (до 94 Мбит/с).
- Исправлена проблема запуска пакета при старте плеера, в случае если системный накопитель находится на HDD разделе (проблема позднего монтирования /persistfs);
- Добавлен лог загрузки пакета в /tmp/run/ltu.log;
- Исправлен скрипт install.sh.
- Исправлена блокировка при обновления прошивки с версии 101203_2124_test. Обновление не могло начаться по причине примонтированного файла из tmpfs.
- Добавлен пакет Network UPS Tools (NUT) v2.4.3;
- Запуск процесса transmission-daemon теперь выполняется не под суперпользователем root;
- Добавлена загрузка spindown таймера для любого HDD (по умолчанию 30 минут бездействия);
- Доработаны скрипты.
Источник