Копытов Иван

Заметки любителя экспериментов

Проект LEDE

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

Стартовая страница сайта LEDE
Стартовая страница сайта LEDE

На сайте также можно найти информацию о том, что в течение этого года планируется полное слияние обеих проектов.
Первое, что я сделал — посмотрел текущую стабильную версию прошивки. Как ни странно, но разработчики «перешагнули» через 16 версию и создали сразу 17-ю. Последняя стабильная прошивка для моего роутера оказалась 17.01.4. Ее я и скачал. Дальше все, как обычно, просто. Заходим на страницу System — Backup / Flash Firmware роутера, указываем на файл с новой прошивкой в разделе Flash new firmware image, оставив галочку Keep settings отмеченной, чтобы не терять сделанные настройки, и запускаем процесс обновления.
Сразу хочу сказать, что тема оформления Bootstrap мне почему-то никогда не нравилась, я постоянно выбирал старую OpenWrt. Хотя к самому фреймворку я отношусь более, чем положительно. Но старая тема после перепрошивки не заработала, поэтому следующим моим шагом был поиск темы, отличной от Bootstrap. На мое удивление в списке доступных увидел тему Material. Ее и установил. Тема оказалась удобной, красивой, но чуть недоработанной и, на мой взгляд, чуть громоздкой — роутер чуть медленней переключался между страницами.

Страница входа в систему
Страница входа в систему
Страница статуса системы
Страница статуса системы
Скрипты, выполняемые при загрузке
Скрипты, выполняемые при загрузке

Памятуя о качестве перевода с английского на русский язык в предыдущей прошивке, я не торопился переключаться на русский язык, меня вполне устраивал и английский. Позже я все-таки решил установить языковой пакет. Оказалось, что устанавливать их нужно не один, как раньше, а как минимум два — для «стандартных» страниц и для настроек firewall. При этом при установке этих пакетов я получил ошибку «uci: Parse error (too many arguments) at line 123, byte 34», но решил не обращать на нее внимание, потому что пакеты установились без ошибок.
Одновременно просматривая сайт проекта наткнулся на интересный «фокус», который заключается в том, что после авторизации на роутере по SSH, в консоли выводится количество установленных пакетов и количество доступных для обновления. Это освобождает от необходимости вручную проверять наличие обновлений, так почему бы этим не вспользоваться? Для этого нужно записать всего несколько строчек в файл ~/.profile

#!/bin/sh
opkgInstalled="$(opkg list-installed 2> /dev/null | wc -l)" #silencing error output
opkgUpgradable="$(opkg list-upgradable 2> /dev/null | wc -l)" #silencing error output
echo "$opkgInstalled packages are installed." && echo "$opkgUpgradable packages can be upgraded." && echo

И, как говорится, раз уж «пошла такая пьянка», то почему бы не сделать похожий скрипт, который устанавливал бы все обновления сразу? Мне никогда не нравился вариант сначала получить список доступных для обновления пакетов, затем копировать их имена в команду обновления. На сайт проекта также есть решение этого вопроса, но мне оно не понравилось. Более того, оно просто некорректно работает. Поэтому предлагаю свой вариант:

#!/bin/sh
/bin/opkg update
/bin/opkg upgrade $(opkg list-upgradable | awk '{print $1}')

Но я отвлекся. Еще одним новшеством, которое мне понравилось в данной прошивке — визуализация уровня сигнала WiFi

Уровень сигнала WiFi
Уровень сигнала WiFi

В какой-то момент изучения прошивки я сделал ошибку, пришлось сбрасывать настройки на заводские и заново перенастраивать роутер. И тут выявилось, что в этой прошивке таки заработал туннель от Henet. После внесения настроек я смог извне протестировать свой роутер на доступность по IPv6 и получил положительный результат.

Результаты тестирования IPv6
Результаты тестирования IPv6

На данном этапе мне эта прошивка нравится намного больше, чем версия 15.05.1 от OpenWrt. Возможно, что в процессе дальнейшей эксплуатации вылезут какие-то недочеты, ошибки, но будем надеяться, что их будут более-менее быстро исправлять.

Второй прорыв

Поначалу думал, что это продолжение морозов. Но, после беглого осмотра, оказалось, что виной всему виновата старая труба.
Не так давно, с месяц назад, поставил компьютер одной работнице. А сегодня у нее в кабинете прорвало трубу. И снова горячую. И так все удачно сложилось: она была в кабинете (или зашла почти сразу после начала аварии, так и не понял), я был на месте (хотя хотел уже уйти домой), сантехники тоже были рядом. В общем, потоп достаточно быстро ликвидировали. Точней, перекрыли горячую воду. Я унес на просушку технику к себе в кабинет — повезло, что системный блок был на подставке и его не успело залить. Завтра буду осматривать и тестировать.

12 февраля   авария   потоп   прорыв   старая   труба

Включаем Samsung Smart TV

Периодически, когда нечем заняться, продолжаю эксперименты с телевизором. В этот раз оказалось, что я был не прав насчет того, что он не отзывается на пакет Wake-On-Lan. Телевизор нормально включается, но с небольшой задержкой — около 10 секунд. Что интересно, в этот период он явно обменивается какой-то информацией с пультом управления. Насколько мне позволяет моя фантазия, этот обмен связан с тем, что пульт в период времени, когда телевизор не работает, тоже уходит в «спящий» режим, экономя энергию батареек. В «обычном» режиме ТВ включается с пульта, но тут идет пробуждение по сети, о чем телевизор и сообщает пульту. Вроде как в рекламе: «А мужики-то не знают!»

Съемка в темноте

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

Это я пошел на работу
Это я пошел на работу
А это жена выходит из дома
А это жена выходит из дома

Serviio

Небольшой обзор DLNA-сервера

Чуть меньше недели назад я, при помощи докера, установил на свой домашний сервер Serviio. В отличие от других серверов подобного рода, которые я попробовал, этот показался мне самым интересным, несмотря на его недостатки. Впрочем, последнее — только мое мнение, кому-то эти недостатки покажутся преимуществами.
Сразу хочу упомянуть один достаточно важный момент. Первые 15 дней сервер работает в режиме полной функциональности. Если по истечении этого периода вы не установите лицензию, то программа автоматически перейдет в режим бесплатной версии, которая имеет некоторые ограничения. Почитать о различиях версий можно на этой странице. Стоимость лицензии на текущий момент составляет 25 долларов США. Или около 1500 российских рублей.
Первое, что мне бросилось в глаза — множество папок, так же как и у miniDLNA. Это очень опечалило потому, что из-за этого нюанса я и собирался менять сервер. Но, покопавшись в настройках, обнаружил, что отображение папок настраивается и можно просто убрать ненужные. Так я и поступил, оставив только самые востребованные.
В качестве папок, где хранятся файлы, которые вы потом будете воспроизводить на телевизоре или другом устройстве, можно указать любые. Но так как я использую докер, то их нужно дополнительно указывать в параметрах запуска контейнера и только затем подключать в настройках программы. Как обычно, поиск мультимедиа файлов несколько нагружает процессор, что, впрочем, длится достаточно недолго.
Не лишним будет упомянуть порты, которые могут вам понадобиться для просмотра или для управления сервером:

  1. 1900 — общий порт UPnP;
  2. 8895 — не совсем понял что за порт, но без него ни одно устройство не видит сервер.
  3. 23423 и 23523 — для управления сервером по HTTP и HTTPS протоколам соответственно.
  4. 23424 и 23524 — для просмотра мультимедиа по HTTP и HTTPS соответственно.

Если вы планируете просматривать фильмы, слушать музыку или управлять сервером за пределами вашей сети, то на последние 4 порта следует настроить перенаправление на роутере или просто открыть к ним доступ извне. Но, увы, для этого вам понадобятся дополнительные программы для вашего смартфона или планшета:

  1. ((https://play.google.com/store/apps/details?id=com.serviigo ServiiGo). Программа для удаленного просмотра фильмов или прослушивания музыки. Увы, но для доступа к такой возможности требуется версия Pro сервера. Для использования требует порты 23424 и 23524.
  2. ServiiDroid. Эта программа позволяет вам:
  • просматривать текущее состояние сервера и изменять его;
  • вручную обновить данные библиотеки;
  • просмотреть или изменить настройки подключенных клиентов;
  • управлять папками, в которых нужно искать файлы, или онлайн-источниками;
  • и, наконец, изменять настройки самого сервера.
    Иными словами, эта программа позволяет вам полностью управлять настройками Serviio и, что не менее важно, она не требует для своей работы Pro-версии программы.

Кстати, заметил, что по протоколу HTTPS сервер отдает данные немного быстрее, чем по HTTP.
Из «минусов» могу отметить следующие пункты:

  1. Некоторую заторможенность в работе программы, что обусловлено использованием java.
  2. Не всегда корректно распределяет медиафайлы по категориям.
  3. Некорректно работает с кодировкой cp1251. То есть, с русским языком.

Второй пункт раздражает больше всего. Например, я скачал из интернета все сезоны «Звездного пути». Serviio просканировал все папки и отобразил мне две папки сериала вместо одной. В первой папке были три сезона по одной-две серии в каждом, во второй — все 7 сезонов и все серии. Думаю, что это связано с некорректной обработкой информации, извлеченной из этих файлов, но не править же каждый раз эту информацию (что, кстати, не помогает) после скачивания фильма.
Третий пункт... Думаю тут даже рассказывать нечего. Если информация в файле закодирована при помощи cp1251, то вместо нормального текста, на экране вы увидите «кракозябры». Лечится это перекодировкой в utf-8, то есть после скачивания, например, музыки, нужно сделать еще дополнительные движения.

6 февраля   docker   serviio   настройка   обзор

Запуск приложений в Windows 10

В продолжение этой темы

Спустя несколько суток мне удалось восстановить около 99 процентов информации. 1С была восстановлена из резервной копии, СБиС был переустановлен при помощи специалистов компании. Оставшиеся документы были восстановлены почти полностью — не открываются около 5 файлов, менее 1% от общего количества. Считаю это почти успехом.
За несколько дней использования система пару раз установила обновления + были установлены некоторые программы для более комфортной работы. В общем и целом все хорошо. Но ложка дегтя внезапно всплыла сегодня. А заключалась она в том, что некоторые программы, которые еще утром работали нормально, к обеду перестали запускаться. Изучение системных журналов не внесло никакой ясности в причины такого поведения «десятки». Поиск в интернете и выполнение советов, которые там были, тоже ничего не дало. Я наполовину серьезно уже предлагал освятить этот ноутбук :-)
Если в случае с браузером Яндекса и TeamViewer я бы еще мог что-то понять (помимо всего, они также устанавливают собственные службы), то почему не запускается та же Opera — для меня загадка. Новый процесс в списке появляется, но отжирает столь мало ресурсов, что становится понятным, что он ничего не делает. При этом, например, 1С, СБиС, Firefox и Thunderbird, а также Edge, работают нормально.
Что делать и как это «лечить» — пока что абсолютно непонятно...

Установка Serviio

На домашнем сервере установлен Alt Linux, у которого свое видение в отношении сторонних программ. Того serviio в репозитории нет, а попытка установить его с сайта провалилась. Скорее всего, тут сыграло роль недостаточное знание мной линукса. Поэтому, в итоге, был выбран путь попроще, который я с начала не заметил. Речь идет об установке serviio в виде docker.
Для начала скачиваем образ на компьютер:

# docker pull lsiocommunity/serviio

Затем, в соответствии с документацией, запускаем, немного изменив параметры запуска под себя:

docker run -d --restart=always --name=serviio -v /mnt/sda/serviio/config:/config -v /mnt/sda/serviio/media:/media -v /mnt/sda/serviio/transcode:/transcode --net=host lsiocommunity/serviio

По пути /mnt/sda у меня находится второй жесткий диск, на котором располагается всякое «барахло».
Поначалу ни одно из устройств в сети не смогло увидеть serviio. Немного поэкспериментировав, понял, что все дело в том, не был открыт один из портов на сервере. В итоге, пришлось открыть порты 8895, 23423, 23424, 23523, 23524 и 1900. Serviio не видели именно из-за порта 8895.
Ну а дальше все было просто: заходим по адресу http://192.168.1.254:23423/console (где 192.168.1.254 — адрес моего сервера) и настраиваем сервер под свои нужды уже в графическом интерфейсе. Тестировал его работу на трех устройствах: ТВ Samsung UE43M5500AU, телефоне на базе Android и компьютере с установленными Alt Linux и VLC. Все три успешно подключились и смогли проиграть фильм с разрешением FullHD. Тормоза оказались только на телефоне, но с него, как говорится, «взятки гладки».

2 февраля   dlna   docker   linux   serviio   настройка   сервер

Небольшой апгрейд

Очередная зарплата ведет к очередным обновлениям

На днях попробовал перенести Transmission и сервер DLNA с роутера на домашний сервер, чтобы немного разгрузить первый. Итогом неожиданно стала сильно возросшая нагрузка на сервер, причем в первых строчках «потребителей» стабильно висели motion и Transmission. Нагрузка была такой, что другие программы периодически не отвечали на запросы, что, в свою очередь, вызвало шквал предупреждений в мой почтовый ящик. Конечно, это меня не устроило, поэтому торрент-клиент был на время отключен. Вызвал небольшое недоумение тот момент, что на роутере Transmission работал, не вызывая такой большой нагрузки на и без того слабый процессор. Лучше был оптимизирован что ли под OpenWrt? Аналогично, судя по отзывам, motion при статичном кадре (то есть когда нет движения) «сжирает» 5-10% процессорного времени. У меня же он поглощал в среднем около 40% на сервере.
Тут должен сделать небольшое отступление. Парой месяцев ранее собирал компьютер для профилактория «Сибиряк», чтобы они могли просматривать камеры видеонаблюдения на ресепшене. Компьютер получился достаточно слабенький, но, если воткнуть в него видеокарту, вполне тянул 8 внутренних камер. Так как видеокарт на складе у меня тогда не было, пришлось воткнуть свою личную. Она у меня все равно просто так лежала. Поставил, настроил, все хорошо. Неделю назад попросили подключить второй монитор на этот компьютер и вывести на него камеры, снимающие вокруг здания. Не вопрос! Заказал второй монитор и видеокарту — свою же нужно «отбить» :-)
Возвращаемся на текущий день. После недолгих раздумий, был куплен новый процессор и кабель HDMI. Процессор был установлен в сервер, что дало достаточно большой прирост мощности, судя по выводу команды top. Также установил туда новую видеокарту, которую приобрел для «Сибиряка». Был вариант установить в профилакторий новую карту, а оттуда забрать свою, но, после сравнительных тестов, оказалось, что установленная мной ранее видюха немного мощней, чем та, которую я приобрел на днях. HDMI кабелем соединил видеорегистратор и телевизор. Были некоторые опасения, что телевизор не увидит картинку с таким нестандартным разрешением, но все обошлось — он просто изменил разрешение на что-то среднее по качеству. В итоге, я теперь могу просматривать камеры на телевизоре в хорошем качестве. Плюс несколько «разгрузил» сервер — теперь нагрузка на процессор стала менее 50%. Правда появился какой-то дребезг от вентилятора, но непонятно от какого — пока снимаешь боковую стенку, он прекращается.

Ранее Ctrl + ↓