Raspberry Pi 3 model B


С приобретением нового телевизора возник вопрос, какую приставку для него брать. Возможностей Chromecast уже не хватало и хотелось полноценный медиацентр на Kodi. Телевизор со SmartTV покупать не вариант — Kodi можно установить только на Android (из SmartTV платформ), а к нему я отношусь без особой любви, к тому же он уже внутри телевизора, а не в отдельной коробке, которую можно безбоязненно перепрошивать. Ну а зачем мне полноразмерный Android, со всеми его сервисами и программами в виртуальной машине, без полноценного GNU/Linux окружения и, скорее всего, без обновлений? По той же причине также были отметены многочисленные готовые медиацентры на Android, хотя та же приставка от Xiaomi довольно хороша. Можно было бы подумать насчёт SmartTV на TizenOS, но для него нет Kodi.


С такими требованиями, и при том, что это мой первый одноплатный компьютер, очевиден выбор — Raspberry Pi, а конкретно я взял RPi 3 model B.


Установка и предварительная настройка Raspbian


Как пользователь Debian, я сразу же установил Raspbian и начал играться с новой системой. Записать скачанный образ системы можно с помощью программы Etcher, либо из консоли:


Сначала очищаем содержимое карты, всё заполнив нулями…


sudo dd if=/dev/zero of=/dev/mmcblk0 bs=512 count=2047

затем записываем образ…


sudo dd if=/path/to/raspbian.img of=/dev/mmcblk0

Запустив малинку с Raspbian установить Kodi очень просто — командой


sudo apt update && sudo apt install kodi

Чтобы медиацентр запускался при включении малинки необходимо добавить в файл /home/pi/.config/lxsession/LXDE-pi/autostart строку


@kodi -fs

Несмотря на всю прелесть Raspberry Pi, у него есть один важный недостаток: при внезапном отключении питания есть вероятность того, что на SD карту успеет перезаписаться только часть данных, а потому карты памяти долго не живут и, в среднем, через год выходят из строя. На рынке существуют решения, которые решают эту проблему с помощью источника дополнительной энергии (например, конденсатора). Также SD карты имеют ограниченное количество циклов перезаписи и важно уменьшить количество этих самых перезаписей, чтобы карта памяти прослужила дольше.


Удаление нежелательных программ


Удалил dphys-swapfile, чтобы с концами удалить своп-файл, который расходует ресурс карты памяти, а также удалил разные игрушки и совсем лишние программы, по крайней мере, для меня.


sudo apt purge dphys-swapfile wolfram-engine logrotate nodejs nodered minecraft-pi oracle-java8-jdk openjdk-7-jre oracle-java7-jdk openjdk-8-jre

sudo apt autoremove --purge

Замена менеджера логов


Также я сменил сервис для записи логов:


sudo apt install busybox-syslogd
sudo dpkg --purge rsyslog

Теперь логи записываются в кольцевой буфер, расположенный в ОЗУ, смотреть их можно командой logread


Увеличение надёжности при отключении питания


Самый логичный шаг — сделать раздел с системой доступным только для чтения, и тогда по определению не будет проблем при записи, ведь записи не будет. Но Raspbian — это полноценная система, которая не может работать на разделе, на котором полностью запрещена запись. Как минимум, необходимо вынести /var/log, /var/tmp и /tmp в tmpfs, т. е. хранить содержимое этих папок в ОЗУ. Но для практического использования необходимо внести значительно больше изменений.


Я решил сделать по-другому: создать многослойную файловую систему, где основу, хранящуюся на карте памяти, держать как read-only, а все изменения, которые производятся в системе, сохранять в оперативной памяти. Соответственно, все изменения сбрасываются при отключении питания и никому не вредят. Подход не новый, часто применяется в роутерах, например, а с помощью overlayfs очень легко реализуется.


На гиктаймс уже публиковалась ссылка на аналогичное решение с использованием UnionFS, но с момента его публикации в ядро линукс была добавлена поддержка файловой системы OverlayFS, разработанной компанией SUSE в качестве более прогрессивной замены UnionFS и AUFS, поэтому и настраивается всё это немного по-другому.


Я нашёл скрипт, который делает именно то, что я задумал: раздел системы на карте памяти монтирует в режиме только чтение, а все изменения сохраняются в верхнем слое, располагаемом в ОЗУ. К слову, этот скрипт поддерживает и AUFS.


Установка довольно проста:


  1. Создаём файл root-ro в папке /etc/initramfs-tools/scripts/init-bottom/, в который кладём содержимое скрипта


    cd /etc/initramfs-tools/scripts/init-bottom && sudo wget https://gist.github.com/sbonfert/7044eced553ea5c5c2346bcde6bb12e7/raw/7ef62bd5553faae1cb2d2eb79d84dde5197e8c56/root-ro

  2. Изменяем права доступа к скрипту:


    sudo chmod 0755 /etc/initramfs-tools/scripts/init-bottom/root-ro

  3. Добавляем overlay в список модулей, которые будут подгружаться в initramfs


    sudo echo "overlay" >> /etc/initramfs-tools/modules

  4. Пересоздаём initramfs образ:


    mkinitramfs -o /boot/initrd

  5. Осталось добавить параметр root-ro-driver=overlay в загрузчик, в файл /boot/cmdline.txt


  6. И ещё 3 строки в конфигурацию загрузчика по адресу /boot/config.txt:
    initramfs initrd followkernel
    ramfsfile=initrd
    ramfsaddr=-1

Отключить режим только чтения, кстати, можно либо добавлением disable-root-ro=true в /boot/cmdline.txt, либо созданием файла disable-root-ro в корне файловой системы.


В Debian (соответсвенно, и в Raspbian) существует пакет bilibop-lockfs, который делает примерно то же, что и этот скрипт. Однако, несмотря на то, что bilibop доступен для установки, он предназначен для работы совместно с GRUB, а не используемого в Raspbian загрузчика. В x86 версии Raspbian он корректно работает. Возможно, читатели смогут его пропатчить и для Raspberry Pi.


Защита от переполнения файловой системы в памяти


Для tmpfs по-умолчанию отводится половина объёма ОЗУ, и так как как память ограничена, то когда-то изменения корневой файловой системы достигнут предела. Очистить её можно простой перезагрузкой системы, для этого в /etc/crontab добавляем строку:


# Когда место в корневой файловой системе закончится (100%) перезагрузить систему.
* * * * *       root    /bin/df -h | /bin/grep /$ | /usr/bin/awk '{if ($5=="100%") system ("/sbin/shutdown -r now")}'

и перезапускаем cron


sudo service cron restart

это позволит отреагировать на проблему в течение одной минуты.


Корни отдельно, хомяки отдельно


Использовал какое-то время такую конфигурацию, но надоело терять настройки и плагины в Kodi, а заранее всё не настроить, и решил я корневую систему оставить в режиме только чтения, а домашнюю папку хранить как есть, всё таки в ней производится не так много изменений.


Естественно, тогда и раздел должен быть под F2FS — оптимизированной для SSD и прочих flash накопителей файловой системе. Как уже сказано, у карт памяти есть две беды: вероятность потерять часть данных при записи и относительно малое количество поддерживаемых перезаписей ячейки. F2FS относится к файловым системам, которые используют концепцию копирования при записи (Copy-On-Write), то есть новые данные не перезаписываются в те же ячейки, а записываются в новое место, и только если операция завершена успешно, ссылка на старую область носителя удаляется.


Для работы с F2FS необходимо установить пакет f2fs-tools как в нашей raspberry pi, так и в системе, с помощью которой производится создание нового раздела. Для Debian-like (в том числе, Raspbian) необходимо выполнить команду


sudo apt install f2fs-tools

Отрезал половину с помощью GParted, создал F2FS раздел и заодно дал метку home, чтобы удобнее обращаться к разделу.


gparted раздел home


После этого внёс изменения в /etc/fstab, добавив строку


LABEL=home /home f2fs rw,noatime,defaults 0 1

Всё хорошо, но как теперь ставить обновления?


Это я тоже продумал, вспомнив о проекте Ubuntu Core Snappy. В нём предусмотрено существование 2-х разделов, доступных на чтение всем остальным. Обновление системы атомарно записывается на неактивный раздел и производится перезагрузка системы, уже используя обновлённый раздел. Эти два раздела System-a/b также позволяют производить механизм отката на рабочую версию в случае проблем в обновлении.


структура разделов в ubuntu core snappy


Аналогично сделал и я, разбив системный раздел на 2 равных раздела. Предварительно, конечно, скопировав данные с карты памяти на компьютер. Для этого удобно использовать утилиту копирования файлов rsync. Например:


sudo rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/var/backups/*","/var/cache/apt/*","/var/lock/*","/var/tmp/*","/lost+found", "/home"} /media/user/folder /home/user/backup_raspbian

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


  • -aAXv – Файлы передаются в режиме «архив», который гарантирует, что символические ссылки, устройство, разрешение, владение, время изменения, списки контроля доступа, а также расширенные атрибуты сохраняются.
  • --exclude – Исключает данные каталоги из резервной копии.
  • /media/user/folder – Исходный каталог.
  • /home/user/backup_raspbian – Это папка назначения резервной копии.

Итого я получил 4 раздела, где первый содержит загрузчик, два следующих — идентичные по размеру и содержат копию файловой системы (для удобства я их назвал root1fs и root2fs соответственно), и в последнем разделе — пользовательские данные.


gparted разделы


Осталось обратно скопировать резервную копию с компьютера на оба раздела карты памяти и прописать изменения в fstab и загрузчике.


В разделе root1fs в файле /etc/fstab в строке, в которой монтируется корень меняем строку на


LABEL=root1fs / ext4 defaults,noatime 0 1

а в разделе root2fs соответственно на root2fs


Осталось внести изменения в /boot/cmdline.txt
Надо там найти параметр root=PARTUUID=… и заменить на root=LABEL=root1fs или root=LABEL=root2fs, от этого будет зависеть, с какого раздела производится загрузка.


Приготовления окончены, теперь можно провести первое обновление системы.
На компьютере, где мы сохранили бэкап, нужно установить пакеты proot и qemu-system. Для Debian-like:


sudo apt install proot qemu-system

Теперь можем сделать чрут в сохранённый бэкап...


sudo proot -q qemu-arm -S /home/user/backup_raspbian

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


apt update && apt upgrade

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


sudo rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/var/backups/*","/var/cache/apt/*","/var/lock/*","/var/tmp/*","/lost+found", "/home", "/etc/fstab"} /home/user/backup_raspbian /media/user/root2fs

Заметьте, к уже упомянутой команде rsync я добавил исключение синхронизации /etc/fstab, так как этот файл уже настроен на каждом разделе отдельно.


В данном случае изменения синхронизируются со вторым разделом (root2fs). Выбирая активный раздел в /boot/cmdline.txt есть возможность загрузиться как с исходной версии системы, так и с обновлённой.


И было интересно поиграться с подобной синхронизацией, как и синхронизацией по сети с рабочей малинкой, однако необходимость управления с отдельного устройства неудобна. Будь у меня стойка из миникомпьютеров, или если бы предлагал использовать мой дистрибутив — конечно, подобные недоатомарные обновления были бы очень удобны, но в масштабах одного устройства нет смысла. И начал я уже думать о том, чтобы в автоматическом режиме скрипт производил обновления, либо чтобы некий скрипт даже прямо из Raspbian чрутился ко второму разделу и обновлял его, а затем менял загрузочный раздел, но прежде я решил ещё раз изучить существующие дистрибутивы, предназначенные для развёртывания медиацентра на Kodi. И вдруг…


Счастье с XBian


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


XBian основан на Debian, и, как и Debian, использует роллинг-релизы, потому пакеты всегда в актуальном состоянии. Более того — можно обновляться на тестовую ветку и возвращаться обратно на стабильную.


Система находится на разделе с файловой системой Btrfs, которая, как и F2FS, использует механизм копирования при записи, но также поддерживает создание снапшотов, и в меню XBian есть удобные утилиты для управлениями снапшотами и настройки для автоматического создания снапшотов. Если всё таки какой-то файл будет повреждён, Btrfs мгновенно переведёт систему в режим только чтения, чтобы не допустить дальнейших повреждений системы, и предоставит средства для восстановления и отката на рабочую версию. Я считаю, Btrfs — это идеальный выбор для системного раздела в данном случае, а F2FS решил использовать на флешке с файлами, подключенной к Raspberry Pi. На флешке снапшоты мне не нужны, а вот данные в F2FS записываются строго последовательно, в отличии от Btrfs, не заботясь о фрагментации, что обеспечивает более равномерную нагрузку на ячейки.


В XBian сервисы настроены на минимальное количество производимой записи на microSD, потому отсутствием Read-Only раздела можно пренебречь. В конце концов, мне магазин дал 10 лет гарантии на карту памяти, если что — поменяю.


Единственный недостаток для меня — XBian в качестве системы инициализации использует upstart. Принято ругать systemd, да я и сам в шутку ругаю, но мне с ним гораздо удобнее. Но об этом можно не волноваться: upstart с 2014 года не развивается, однажды разработчикам придётся менять систему инициализации.


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


Quasar Burst — это дополнение для Quasar, в котором находятся настройки того, какие торрент-трекеры использовать для поиска контента. В нём уже присутствуют популярные русские торрент-трекеры, например, rutor и rutracker, поэтому Quasar абсолютно подходит русскоязычным пользователям.


UP: В комментариях порекомендовали Elementum — форк переставшего развиваться Quasar. Рекомендую его попробовать.


Обход блокировок


Однако, всё не так хорошо, как хотелось бы. Как известно, роскомнадзор требует от провайдеров блокировки кучи сайтов, в роде рецепта крафта динамита в майнкрафте или торрент-трекеров, и если для обхода блокировки на десктопе достаточно установки одного из дополнений для браузера, то для медиацентра это не так просто.


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


Можно найти различные варианты обхода, различной степени надёжности и сложности, я выбрал использование VPN, причём не для всего трафика, а для специально указанного списка адресов.


Можно использовать свой VPN сервер, где-то приобрести, или воспользоваться сервисом antizapret.prostovpn.org. Вроде как при установке этого VPN трафик до сайтов должен идти напрямую, если этот сайт не находится в списке заблокированных, но у меня на Raspberry Pi почему-то весь трафик шел в обход VPN, потому я принудительно указал, для каких адресов его использовать, о чём чуть позже.


Команда для установки OpenVPN:


sudo apt install openvpn

Затем необходимо добавить модуль ядра tun в автозагрузку при запуске системы для того, чтобы обеспечить работу OpenVPN


sudo echo "tun" >> /etc/modules

и в первый раз вручную его загрузить


sudo modprobe tun

В случае с использованием VPN от antizapret, я скачал хранящийся там файл antizapret.ovpn, сохранил как файл /etc/openvpn/client.conf и добавил нужные мне адреса, которые должны передаваться через VPN


route 195.82.146.214 255.255.255.255 vpn_gateway # rutracker 
route 185.112.157.181 255.255.255.255 vpn_gateway # nnm-club 
route 104.27.140.149 255.255.255.255 vpn_gateway # rutor 
route 104.24.106.53 255.255.255.255 vpn_gateway # kinozal

важно, чтобы в конфигурации не было строки, начинающейся с redirect-gateway, иначе весь трафик будет идти через VPN.


В файле /etc/default/openvpn производится настройка, какие конфигурации будут по-умолчанию запускаться при запуске OpenVPN. Достаточно раскомментировать AUTOSTART="all", либо вместо all указать client, то есть созданную нами конфигурацию.


Запуск OpenVPN:


sudo service openvpn start

и добавление в автостарт:


sudo update-rc.d openvpn enable

Также, для обхода блокировки служебных трекеров .t-ru.org выполнил команду в консоли и добавил в /etc/rc.local* перед `exit для автовыполнения команды при загрузке:


iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -d 195.82.146.120/30 -j DNAT --to-destination 163.172.167.207:3128

Казалось бы, всё? Но нет. Мой провайдер оказался хитрым, потому мои DNS запросы, адресованные в гугл на адрес 8.8.4.4, перехватываются и изменяются, если я запрашиваю IP адрес заблокированного ресурса. Вот, что мне nslookup выдаёт:


nslookup rutracker.org 
Server:         8.8.4.4 
Address:        8.8.4.4#53 

Non-authoritative answer: 
Name:   rutracker.org 
Address: <ip заглушки>

Что-ж, давно было пора перейти на DNSCrypt. Эта утилита, соединяется с DNS сервером по зашифрованному каналу, поэтому провайдер, или другой MitM не сможет прослушать, подменить или отфильтровать пакеты. Установил DNSCrypt на роутере, запустил и теперь всё шикарно.


Как итог, я получил замечательный медиацентр, с огромным количеством доступного контента, который основан на лучших (по крайней мере, по моей оценке) технологиях, а использование Raspberry Pi открывает огромные возможности по кастомизации. Можно установить инфракрасный приёмник, чтобы управлять медиацентром с помощью пульта даже при подключении к телевизору, который не поддерживает HDMI-CEC, или играть в старые игры, подключив джойстик, а можно вовсе преобразовать из медиацентра в другое устройство.

Комментарии (77)


  1. Angrynik
    14.01.2018 11:36

    Почему просто не установить OSMC?
    Я досконально не ковырял внутренности их реализации защиты от выключения питания (если она у их вообще есть) и прочие компоненты из статьи, но это готовый медиацентр из коробки с kodi на борту. Тем более что предлагается на странице загрузки образов raspberrypi.org


    1. modos189 Автор
      14.01.2018 11:40

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


      1. Angrynik
        14.01.2018 11:47

        Если говорить о медиасервере из коробки.
        А защита фс мне не совсем понятна. Заводится на флешке с 8gb на борту. Произошло отключение? fscheck на следующей загрузке. И мне с трудом представляется, что kodi часто обращается к fs на запись.


        1. modos189 Автор
          14.01.2018 11:58

          XBian — это тоже медиасервер из коробки.
          Kodi может и не часто, но ОС то тоже что-то записывает, какие-то логи и т.д. В сети многие жалуются, что карты памяти дольше года не живут (и это понятно, они очень уязвимы), когда после очередного отключения fsck уже не в силах, и проверять это совсем не хочется.


          1. Revertis
            14.01.2018 15:14

            У меня на Odroid C1 флэшка живет уже около трех лет. Обычный дебиан на ext4, никаких извращений с /var/log, /tmp и так далее. Естественно, все торренты лежат на винте, подключенном по USB.


  1. tmnhy
    14.01.2018 11:40

    > и при том, что это мой первый одноплатный компьютер, очевиден выбор — Raspberry Pi

    Да, нифига он не очевиден.


  1. Meklon
    14.01.2018 12:13

    Помню, что тот же openelec создавался именно как read-only образе на squashfs, чтобы избежать убивания карты памяти. Сложно реализовать это на базе обычного Debian. А вообще спасибо огромное, пригодится однозначно. Могу только ещё посоветовать потрясающий по удобству пульт Yatse для Android. Автор — очень контактный швед.


    1. modos189 Автор
      14.01.2018 12:23

      [Open|Libre]ELEC тоже хороший выбор, и если на нём можно настроить OpenVPN. У меня с этим возникли проблемы, да и особо и не разбирался — всё равно хочу полноценный Debian, для простора мысли и более привычного управления. Однако, если верно помню, в ELEC read-write раздел находится на ext4, а раз речь о накопителе, лучше использовать файловую систему с поддержкой Copy-On-Write.



  1. andyduke
    14.01.2018 12:14

    Почему не OpenELEC/LibreELEC? Он как раз сделан в виде read-only системы, с папками конфигурации в read-write.


    1. modos189 Автор
      14.01.2018 12:23

      Ответил выше


  1. virtualsys
    14.01.2018 12:45

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

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

    Может это стоило бы как-то выделить вначале статьи? Тогда бы «очевиден выбор» был очевиден и таким как я?))


    1. modos189 Автор
      14.01.2018 14:25

      Моё «очевиден выбор» относился к выбору Raspberry Pi на основе тех требований, которые до этого озвучил. Особенно, из-за моей нелюбви к андроиду.
      Чисто для того, чтобы поставить и не лезть во внутренности, не интересуясь, как оно реализовано внутри — хороший вариант, но:
      А. Захочется сделать, чтобы Kodi автоматически запускался при старте системы — это уже надо рут получать и делать приложение системным, копировать и прочие манипуляции
      Б. Обнаружится очередная дыра в каком-то ПО и окажется, что вендор уже перестал формировать обновления, а если и не перестал, то на рутнутом девайсе могут возникнуть пробемы при обновлении
      и т.д.


      1. DaemonGloom
        15.01.2018 08:36

        А. Для этого не нужен рут, равно как и какие-либо манипуляции с приложением. Можно поставить либо что-нибудь типа «Launcher for XBMC™», что сделает Kodi домашним экраном в android. Либо какой-нибудь «AutoStart» — и kodi запустится при включении, но домашний экран останется стандартным (если вы им пользуетесь, например).
        Б. Есть android и для RPi (но за его качество не ручаюсь — у меня другой медиацентр).


  1. kedobear
    14.01.2018 14:23

    как и Debian, использует роллинг-релизы

    Debian не использует роллинг-релизы.


    1. modos189 Автор
      14.01.2018 14:27

      На сайте xbian написано, что использует. www.xbian.org/what-is-xbian
      >> Just like Debian, XBian incorporates rolling releases.
      Да, это не совсем роллинг, ведь в периоды стабилизации ветки замораживаются, но частично вполне роллинг, я считаю.


      1. kedobear
        14.01.2018 14:32

        Роллинг раз в два года, причем, только для тех, кто в sources.list держит записи со словом «stable», а не «stretch», к примеру.


        1. modos189 Автор
          14.01.2018 14:39

          Сижу на ветке unstable, постоянно обновления приходят. Кроме периода заморозки раз в два года, почему же роллинг именно в те недолгие периоды?


          1. kedobear
            14.01.2018 14:43

            Я привык судить по ветке stable, там в обновлениях обычно приходят только изменения в минорных номерах версии, связанные с закрытием уязвимостей, что я считаю далеким от роллинг-релиза. Возможно, в unstable это не так.


  1. windoozatnick
    14.01.2018 14:29

    Никогда не пробовал готовые медиацентры, типа KODI — там есть что на русском вообще? Что используется в качестве источников?


    1. modos189 Автор
      14.01.2018 14:36

      Kodi — это по сути только проигрыватель. Можно смотреть медиа с локальных источников, IPTV, а можно установить дополнения, из которых много с русскоязычными источниками. YouTube, тот же Quasar, в котором по-умолчанию поддерживаются 4 крупных русскоязычных торрент-трекера. И это только основное, на что способен Kodi.


    1. ploop
      14.01.2018 20:58

      Источники задаются вручную. Если локальные ресурсы используются — просканирует, подтянет афиши с открытых источников и красиво выведет. Если загрузить плейлисты со стримами — вот и ТВ готово.

      Вся мощь его в 100500 дополнений, там и торрент-ТВ, там и доступ к фильмам/сериалам со всего мира, его один только ковырять можно неделями.

      Ну и огромный плюс для меня — размашистый интерфейс заточенный под пульт. Там буквально всё можно сделать с помощью 6 кнопок (???? Ok, Cancel), даже клавиатура своя — тоже под пульт.


  1. nonname
    14.01.2018 15:57

    Квазар перестал развиваться, так же он сильно пишет в диск, что убивает за пол года sd карту. Есть форк квазара с кешированием видеофайла в ОЗУ elementum.surge.sh советую использовать сразу его, но у него довольно скромная скорость скачивания до 1мб\с. Хватает для видео до 8-10гб, чего достаточно для хороших full-hd рипов.


    1. modos189 Автор
      14.01.2018 17:29

      Сильно пишет на диск, который указан для хранения загружаемых файлов, или в домашнюю папку? Если первое, то для этой цели у меня временно отдельная флешка, но хочу HDD подключить.
      У него точно ниже скорость скачивания, может показалось? Я так понимаю, как в Elementium, так и Quasar используются одинаковые компоненты для загрузки торрентов, это было бы странно.
      В любом случае, спасибо, добавил упоминание в материал.


      1. nonname
        14.01.2018 19:45

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


  1. nitro80
    14.01.2018 16:03

    Почему выбрали именно kodi, а не допустим movian. Много лет на старом ТВ был raspberry pi первой версии сначала с xbmc, затем kodi, openelec. И вот недавно познакомился с movian — и он действительно удивил, на первой распе можно сказать что всё летает.


    1. Shtucer
      14.01.2018 17:13

      Последний коммит в 2016 году? Оно, вообще, живое там?


      1. nitro80
        14.01.2018 22:40

        Да вроде на неделе обновлял что-то, всплыло сверху, дал добро, само скачалось, само перезапустилось. Так что да, живое, плагины судя по всему тоже обновляются


  1. jo_b1ack
    14.01.2018 17:42
    +2

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


    1. Naglec
      15.01.2018 01:33

      Я, после развлекух с одноплатниками в виде медиацентров, купил Apple TV и установил на компьютерах PLEX.


      1. jo_b1ack
        16.01.2018 15:46

        насколько я помню — plex это dlna сервер? Я не щупал Apple TV, но как понял, это медиацентр от Apple с привязкой к их сервисам, и возможностью просмотра Youtube, NetFlix и подобных, что-ж вполне годное решение если вы вращаетесь в среде Apple.


        1. Naglec
          16.01.2018 15:51

          Ну, на Apple TV ставится PLEX-клиент, а на декстопы/ноуты/NAS ставится PLEX-сервер. А в нем уже фотки/видео/музыка и т.д. Торрентокачалки качают в каталоги PLEX и оно становится доступно с Apple TV.

          Кроме того для Apple TV есть приложения IVI, Megogo и прочие. Так же можно смотреть фотки из iCloud. Есть клиент для Flickr

          Еще заставки там крутые :)


  1. poznawatel
    14.01.2018 18:09

    Прошу прощения за нубский вопрос, но что-то из вышеописанного работает в качестве рекламорезки на ТВ?


    1. hurtavy
      14.01.2018 18:41

      Там вообще нет тв. Статья про плеер, который может в том числе проигрывать стримы из интернета (IPTV)


      1. poznawatel
        14.01.2018 18:46

        Теперь понятно.
        Кто о чём, а вшивый — про баню :/ Может, кто из опытных юзеров подскажет, как резать рекламу на ТВ? Какой-то софт против этого бедствия ведь могли потенциально энтузиасты придумать…


    1. Redwid
      15.01.2018 09:04

      Как вариант поставить pihole dnsсервер, и указать его адрес на роутере: https://github.com/pi-hole/pi-hole
      Будет резаться реклама для всех клиентов.
      Есть UI, где можно добавлять, удалять сайты, смотреть статистику.


  1. oYASo
    14.01.2018 18:48

    У данного решения будет одна явная проблема — не потянет 4k фильмы. Если телек не умеет такое крутить, то пофиг, иначе — лишать себя очень качественной картинки.

    Насчет AndroidTV на телеке я тоже сначала скептически относился, а когда купил — был приятно удивлен. Плюс DLNA решает проблему по проигрыванию контента с компа/NAS.


    1. buggykey
      14.01.2018 19:05

      Извините, что не по теме, но не мог бы кто-нибудь внятно объяснить, чем DLNA лучше проигрывания расшаренного по сети при момощи NFS/Samba, видеофайла? Я не стебусь, действительно хотелось бы разобраться.


      1. omgiafs
        14.01.2018 19:31

        Да ничем, КМК.
        Кроме того, что телевизор годов эдак 2005-2010 и с LAN на борту не умеет в SMB, а в DLNA умеет. У меня как раз такой — он видит DLNA-серверы в локальной сети.
        Соответственно, если есть только слегка устаревший телевизор, то DLNA без вариантов.
        Если видео транслируете через инет — FTP, XBMSP или UPnP.

        Ну а если в локалке, то samba — лучший вариант.


        1. xalkin
          14.01.2018 21:27

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


          1. Shtucer
            14.01.2018 21:35

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


            1. xalkin
              14.01.2018 21:50

              А можете подсказать, какие именно производители так не думают? Из доступных мне нигде нет SMB ни штатно, ни через магазин приложений, максимум — вещание через Plex. А так я ни разу не говорил что такое положение дел мне нравится. Ничуть.


            1. omgiafs
              14.01.2018 22:25

              Ну на лыжах 5-летней давности USB как раз-таки разблокировали через вход в инженерное меню путём отправки спец.сигнала в ИК-порт диодом :)
              У меня знакомый так модель телека «повысил». Купил с программно залоченным USB и разблокировал его, превратив тем самым в модель на 5к рублей дороже :)


              1. 9660
                15.01.2018 06:11

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


                1. omgiafs
                  15.01.2018 06:22

                  Я уже давно понял, что от телевизора мне нужен только большой экран.
                  Остальное надо реализовывать специализированной железякой.


        1. buggykey
          14.01.2018 21:58

          Спасибо!
          Я когда выбирал телик, создательно искал себе самый «глупый». Практически, большой монитор. Так как роль плеера отводилась устройству, аналогичному тому, что собирал топикстартер. Спасибо еще раз, Вы, практически подтвердили, что я сделал правильный выбор. :)


        1. Loki3000
          15.01.2018 12:55

          Еще dlna может конвертировать контент на лету в поддерживаемые устройством форматы. Мне, правда, ни разу не понадобилось пока, но когда воспроизводящие железки устареют — может стать актуально.


      1. oYASo
        15.01.2018 03:22

        Сразу появляется ряд удобных кейсов, о которых раньше и не задумывался:
        1) показывать фото и видео с телефона на телеке
        2) аналогично с фотиком
        3) открытый ролик с youtube на телефоне можно в один клик отправить на телек

        Потом, поднимать на никсах сервер самбы только для шаринга видеофайлов как-то не православно. NFS можно, но я даже не задумывался, поддерживает ли ее телек. С DLNA все просто и из коробки, работает стабильно, настроил и забыл.

        Так как роль плеера отводилась устройству, аналогичному тому, что собирал топикстартер.

        Тут, кстати, есть нюансы. Например, есть в телеке есть функция аля TrueMotion, то нужно внимательно настраивать свой проигрыватель.
        Да и вообще, субъективно, телек встроенными средствами выдает более приятную глазу картинку, чем, скажем, комп с VLC. Вероятно, это уже особенности конкретного телевизора (у меня Sony XE8096).


        1. Meklon
          15.01.2018 06:54

          Kodi + samba/NFS + Yatse какие пульт. И все. Точно так же можно из контекстного меню телефона поделиться файлом, ссылкой на YouTube или фотографией. Постобработка с true motion вообще никак не конфликтует.


      1. NeuroHunter
        15.01.2018 12:43

        Если телевизор сам умеет заходить на NFS/SMB — ничем не лучше.
        Если не умеет — то лучше, поскольку, при правильной реализации DLNA, он и сам сходит за контентом, и управлять воспроизведением (перемотка, пауза, переключение дорожек) сможет


    1. bukkaa
      15.01.2018 09:03

      Я могу больше сказать, это решение не потянет даже что-то тяжелее 5 Гб. Личный опыт, к сожалению( Это стало для меня большим разочарованием


      1. modos189 Автор
        15.01.2018 09:27

        Запускаю фильмы размером около 10Гб, выше не позволяет скорость моего интернета, но вообще не вижу ограничений. Может, у вас раздел был на fat32, например?


        1. bukkaa
          15.01.2018 10:01

          Я, на самом деле, использовал память as is — как мне в наборе поставили. Возможно, вы правы, если это поможет решить мою проблему, то будет здорово!


      1. 2zeek
        15.01.2018 10:23

        Тянет FullHD по 16 ГБ. Но нужно в настройках ос выделить на графику больше памяти (по крайней мере, в raspbian). А 4k не тянет даже как источник: пытался на Apple TV получить файл с малины + HDD USB 2.0 по SMB — через минуту видео начинает заикаться. Видимо, не пролезает всё это в общую для USB и LAN шину.


        1. bukkaa
          15.01.2018 10:26

          У меня стоит LibreleELEC, и я пока не натыкался там на возможность перераспределения памяти. Тоже очень интересная мысль, раскопаю эту тему.

          PS Также возникала мысля, а может быть надо какой-то другой набор кодеков подключить, как считаете, бред? И если нет, то возможно ли это?


          1. 2zeek
            15.01.2018 10:37

            В raspbian память в графику добавлялась так: в /boot/config.txt: gpu_mem=256
            По поводу кодеков — не подскажу, т.к. у меня проблемы с ними не было (Kodi мог всё, что я ему давал).


            1. bukkaa
              15.01.2018 10:40

              Добро, изучу эту возможность и отпишусь о результатах. Спасибо за советы!


  1. Dr_Death
    14.01.2018 19:26

    Я конечно в этих делах нуб, но я бы взял Khadas Vim и подключил через power bank :)


    1. ploop
      14.01.2018 21:07

      Любой tv-box на 905м будет дешевле, за 25$ вполне можно купить.


      1. Dr_Death
        14.01.2018 21:09

        Был один, глючная фигня...


        1. ploop
          14.01.2018 21:29

          Прошивок полно если что :)


          1. Dr_Death
            14.01.2018 21:30

            прошивал, глючная фигня…


            1. omgiafs
              14.01.2018 22:26

              Во-во, с китаефонами то же самое :)


              1. ploop
                14.01.2018 23:13

                Ну, тут как повезёт. У меня в этом году 5 лет будет, как китаефон служит.


  1. Sintezz777
    14.01.2018 22:28

    Хватает ли пассивного охлаждения на такую достаточно тяжёлую задачу, как проигрывание видео через Quasar/Elementum? Там ведь ещё одновременно через торрент качается видео. Или все же кулер поставили?


    1. nonname
      15.01.2018 02:45

      У меня плата в коробке, но с радиаторами, с температурой всё хорошо, кроме проигрывания h265 кодека, который аппаратно не умеет декодироваться, тогда иногда моргает знак высокой температуры.


    1. modos189 Автор
      16.01.2018 19:27

      Проверял температуру с разными условиями. Только один раз, но с интервалами в 2 часа, чтоб успел нагреться/остыть.
      57° — Без работы, с закрытой верхней крышкой. Единственный торрент в режиме раздачи, но никому не раздаётся.
      64° — Длительный просмотр фильма 1080p, h264.
      53° — Как в первом случае, но с открытой крышкой.

      С XBian только один раз видел знак высокой температуры, я уже и не помню, как сильно в тот момент с ним издевался.


  1. vertu77
    14.01.2018 22:46

    Спасибо за статью. Заинтересовали варианты повышения живучести при выключении питания.
    В статье есть ссылка на решение с использованием UnionFS. Основная идея «Отсутствие какой-либо записи данных на флэш-память повышает надёжность устройства, приближая его к промышленному классу изделий.»
    Может кто-нибудь дать инфу или подсказать где рыть, чтобы понять, какие решения используются в «промышленном классе изделий». Есть моноблок на AstraLinux (российский на основе дебиан). Диск SSD, использование компьютера в режиме «киоска» — на экране крутится одна программа, диск на запись используется для хранения небольших логов. Предполагается, что компьютер максимально необслуживаемый, возможные зависания предполагается лечить внешним watchdog по линии сброса или питания. Есть подозрения, что после такого сброса линукс может выкинуть предложение воспользоваться fsck и без человека не обойтись. Буду благодарен за любую подсказку.


  1. denismosolov
    14.01.2018 22:59

    Вместо удаления нежелательных программ, можно собрать собственный кастомизированный образ. Например с помощью cusdeb.com/ru или github.com/tolstoyevsky/pieman


  1. plandex
    15.01.2018 09:03

    Не сочтите за ханжество, но я не пойму. Единственное, для чего объективно необходим медиаплеер к телевизору — просмотр кино. Скачивать фильмы с приходом acestream смысла нет. Следовательно, нет необходимости в огороде с оболочкой коди. Для чего вы используете это все? Не избыточно ли?


    1. DaemonGloom
      15.01.2018 13:07

      Не у всех и не всегда есть быстрый интернет безлимитный. Кто-то всё ещё качает фильмы ночью, либо долгое время. Да и просто приятнее не зависеть в просмотре от прихоти провайдера и соседей по домовому коммутатору.


    1. svinstvo
      16.01.2018 15:45

      А как с помощью acestream гнать видео на телек? Нет, я понимаю, что на компе выбираешь что посмотреть, потом в vlc ставишь стримить кудато, потом на приставке к телеку выбираешь откуда забирать поток с видео. Но как-то это неудобно.


  1. rzykov
    15.01.2018 10:24

    Если кому интересно, то для Raspberry есть проект PI Musicbox, самый лучший звуковой медиацентр. Поддерживает много чего, но для меня было важным поддержка протокола AirPlay. Теперь с мака или айфона я стримлю музыку на аудиосистему Denon. Raspberry подключил через HDMI интерфейс.


    1. bitver
      15.01.2018 12:17

      Если ли проблемы с AirPlay при длительном использовании или использовании спустя несколько дней без перезагрузки?


      1. rzykov
        15.01.2018 12:40

        Пару раз были. Пока их не решал. Но сейчас вроде все ОК. Три дня без перезагрузки — все цепляет.


  1. gennady70
    16.01.2018 15:45

    Интересно, а почему Smart TV не вариант?


    1. alexyr
      16.01.2018 19:17

      Я брал Smart TV только ради dlna, все остальные функции обычно кривые и быстро умирают из-за отсутствия мотивации со стороны производителей развивать софт.