redfox2807
redfox2807
2550 просмотров5 комментариев

Мультимедиа приставка для ТВ на Repka Pi 3 + LibreELEC

Содержание

1 Введение или зачем это все нужно, когда есть смарт-ТВ

2 Что такое LibreELEC

3 Что потребуется:

4 Скачивание и запись образа

5 Настройка телевизора

6 Первый запуск и первоначальная настройка

7 Настройка сетевых дисков

7.1 Настройка дисков NFS

7.2 Настройка дисков Samba

Дополнение 1: дополнительные действия для прошивки 09.08.23

1.1 Отключение синего мигающего диода

1.2 Замена файла прошивки

Введение или зачем это все нужно, когда есть смарт-ТВ

Если у вас есть телевизор (неважно, смарт или обычный) и есть коллекция видео, музыки и фотографий, которые вы хотите смотреть или слушать на нем, то рано или поздно у вас возникнет вопрос: а как лучше это делать. Безусловно, современные смарт-ТВ обладают богатым набором функционала для просмотра мультимедиа контента, но есть нюансы. Большая часть их функционала рассчитана на стриминговые интернет-сервисы. Но мы говорим о просмотре и прослушивании собственной коллекции, а не "прокате" фильмов и музыки (чем по сути являются все стриминговые сервисы и "кинотеатры"). А для просмотра локального контента функционал весьма ограничен. Вы можете подключить к телевизору USB-флешку или жесткий диск, что весьма неудобно и есть риск нарваться на неподдерживаемый формат фильма. И еще есть функция просмотра мультимедиа по технологии DLNA (ее же часто называют UPnP, хотя технически это не одно и то же).

Использование этой технологии подразумевает наличие в локальной сети сервера DLNA. В качестве сервера может выступать и обычный компьютер или ноутбук, но рано или поздно вам надоест каждый раз его включать, чтобы посмотреть фильм или посмотреть фотографии. А если держать его всегда включенным, надоест постоянный шум вентилятора. То есть вы задумаетесь о том, чтобы обзавестись сетевым хранилищем (NAS). Это может быть как готовым решением, так и самособранным и самонастроенным сервером. В том числе это может быть и еще одним увлекательным проектом на Repka Pi :-) Но речь в данной статье все-таки идет не о NAS. Поэтому мы будем считать, что NAS у нас уже есть и вернемся к серверу DLNA (Хотя даже если у вас нет NAS, и вы просто хотите, чтобы Repka Pi брала данные с сетевого диска на вашем компьютере с ОС Windows, это также можно сделать и в статье мы это тоже затронем).

Если в качестве решения для NAS вы остановитесь на относительно низкопроизводительном, но и низкопотребляющем одноплатнике, то столкнетесь с тем, что сервер DLNA по своей природе требует относительно больших ресурсов на сервере, так как требует поддержания и обновления базы данных метаинформации о медиафайлах. Плюс с популярным сервером minidlna существуют извечные проблемы с автоматическим обновлением базы данных при появлении новых файлов и удалении старых. Вдобавок к этому реализация клиента DLNA на разных телевизорах реализована по-разному. На конкретном ТВ эта реализация может быть весьма неудобной и иметь баги и несовместимости.

Лично я в конце своих изысканий постепенно пришел к тому, что несмотря на распространенность технологии DLNA и ее присутствие в большом количестве телевизоров из коробки, использование сервера DLNA на домашнем хранилище нецелесообразно: если все, что мне нужно — просто сетевой доступ к файлам, то зачем мне нужно использовать надстройку в виде базы данных и дикого нагромождения из HTTP и XML. И естественным выходом казалось использование сетевых файловых систем, Samba (SMB/CIFS) и еще лучше (раз и сервер, и клиент у нас на линуксе) — быструю, простую и надежную NFS4. Но не тут то было! Если с Samba еще кто-то худо-бедно может работать, то поддержки NFS нет вообще нигде.

Что такое LibreELEC

LibreELEC представляет собой дистрибутив Linux, специально созданный для работы в качестве мультимедиа приставки для телевизора и имеющий интерфейс, рассчитанный на управления с пульта дистанционного управления. А раз это полноценный дистрибутив линукса, то и искомая поддержка NFS у него идет из коробки.

Главным компонентом системы является Kodi. Конечно, можно установить Kodi на любой другой дистрибутив и путем не особо сложных настроек получить примерно то же самое. Но зачем нужны дополнительные настройки, когда в LibreELEC все идет из коробки и требует минимум настроек?

Что потребуется:

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

  2. Телевизор. Если мы хотим все получить с минимумом дополнительных компонентов и "колхоза", нам понадобится телевизор, имеющий выход HDMI. HDMI позволяет передавать не только видео, но и звук. А, кроме того, HDMI еще позволяет передавать и команды от пульта дистанционного управления. Последняя технология называется HDMI-CEC, но может идти под различными названиями в ТВ различных производителей (подробнее можно почитать, например, тут). То есть крайне желательно, чтобы ТВ поддерживал эту технологию.

  3. Пульт дистанционного управления (ДУ) для телевизора. Почему я остановился на этом пункте отдельно: сейчас пошла мода на маленькие пульты для ТВ, на которых только кольцо управления и пара кнопок. Таким пультом пользоваться будет можно, но не очень удобно. Например, там нет клавиши “стоп”. Поэтому целесообразнее либо приобретать ТВ с полнофункциональным пультом ДУ (если вы еще не купили ТВ, а только выбираете его), либо приобрести отдельный полнофункциональный пульт, подходящий для вашей модели телевизора.

  4. Кабель HDMI. Версия кабеля не имеет значения, так как поддержка всех трех необходимых нам технологий была заложена изначально, а полная спецификация протокола HDMI-CEC была добавлена в HDMI версии 1.2a еще в 2005 году. Я подключаю одноплатник к ТВ с разрешением 1920x1080 (оно же FullHD). Официально Repka Pi 3 поддерживает разрешение и 4K@30Hz. Насколько хороша будет она в проигрывании различных видео в этом разрешении, я не проверял, но для такого разрешения явно потребуется кабель с достаточной пропускной способностью.

  5. Карта памяти формата MicroSD для Repka Pi. Размер образа LibreELEC для Repka Pi составляет чуть больше 500 МБ, поэтому размер карты памяти не имеет значения. Важно, чтобы память была класса 10 для наилучшей производительности.

  6. Кард-ридер со слотом для карт MicroSD. Кард-ридер понадобится для записи образа LibreELEC на карту памяти. Запись образа мы будем проводить из командной строки ОС Linux. Если у вас другая ОС или вы по каким-то причинам не хотите использовать интерфейс командной строки, инструкция по альтернативным способом записи здесь.

  7. USB-клавиатура. В принципе можно обойтись и без нее, но для первоначальной настройки Kodi понадобится вводить текст, что с виртуальной клавиатуры и пульта ДУ делать не очень удобно.

Скачивание и запись образа

  • Скачиваем официальный порт LibreELEC для Repka Pi по ссылке.
  • Распаковываем архив zip. В результате в каталоге с архивом будет лежать файл образа ОС: LibreELEC-H5.arm-11.0.1-repka-pi3-20.11.23.img
  • Вставляем карту памяти в ридер, а сам ридер в USB-порт ПК.
  • Открываем терминал и получаем права рута:
$ su -

Для Ubuntu и других дистрибутивов с sudo рут отключен, поэтому команда выглядит иначе:

$ sudo su

Здесь и далее “$” перед командой означает, что эту команду нужно вводить от обычного пользователя. Этот символ вводить не нужно. Скорее всего, вы его уже увидите в своем виртуальном терминале. Символ “#“ означает, что данную команду нужно вводить от рута. Соответственно, этот символ также не нужно вводить вручную.

  • переходим в каталог, где лежит образ ОС (у меня это каталог Downloads пользователя, под которым скачивали. Поскольку мы уже получили стали рутом, то путь к домашней папке того пользователя, под которым скачивали образ, придется прописывать полностью):
# cd /home/пользователь/Downloads
  • Определяем файл, соответствующий SD-карте. У меня это /dev/sde (нужен именно файл всей SD-карты, sde, а не файл первого раздела на ней, sde1).

Для тех, кто незнаком с ОС Linux, пожалуй, стоит сделать пояснение: одной из особенностей ОС Linux как потомка ОС Unix является то, что абсолютно все в Linux является файлом. Включая все устройства. И их точно также как обычный файл можно прочитать, скопировать и записать. Что мы, собственно, и сделаем чуть позже.

# fdisk -l
     ...........
Диск /dev/sde: 14,74 GiB, 15829303296 байт, 30916608 секторов
Disk model: Storage Device
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x1f924bf0

Устр-во    Загрузочный начало    Конец  Секторы Размер Идентификатор Тип
/dev/sde1                2048 30908415 30906368  14,7G             c W95 FAT32 (LBA)
  • Записываем файл образа LibreELEC в файл, соответствующий карте памяти:
# dd if=./LibreELEC-H5.arm-11.0.1-repka-pi3-20.11.23.img of=/dev/sde status=progress

Главное — внимательно следить, откуда и куда мы записываем. Потому что можно скопировать не образ на SD-карту, а клонировать SD-карту в файл под тем же названием, что и образ. Но это не страшно, просто можно потерять время. Гораздо страшнее — перепутать букву карты памяти. В этом случае можно записать образ вместо SD-карты на жесткий диск и в результате потерять данные на нем. Поэтому будьте внимательнее!

Настройка телевизора

В зависимости от модели телевизора, могут понадобиться настройки телевизора. Настройки сводятся к тому, чтобы были включены HDMI-CEC и звук по HDMI. В некоторых случаях требуется отключить “умное” обнаружение устройств, чтобы телевизор не слишком умничал и корректно работал c Repka Pi.

На моем телевизоре Sony под управлением ОС на основе Linux никаких настроек не потребовалось, все было включено по умолчанию.

На LG под управлением WebOS потребовалось сделать следующие настройки: в меню, вызываемом по клавише шестеренки на пульте ДУ, нужно выбрать пункт “Все настройки”, в следующем меню выбрать “Подключение”, далее перейти в “Настройки устройства с HDMI”. В настройках HDMI нужно выключитьАвтообнаружение устройств” и включитьSIMPLINK (HDMI-CEC)” и “Синхронизация автопитания”.

Может помочь информация из уже приведенной выше ссылки или из руководства пользователя вашей модели телевизора.

Первый запуск и первоначальная настройка

Вставляем карту памяти с записанным образом LibreELEC в Repka Pi, подключаем к телевизору по кабелю HDMI, подключаем к компьютерной сети по LAN-кабелю (если собираемся соединять по проводу, что рекомендуется), подключаем USB-клавиатуру и, наконец, включаем наш одноплатник в сеть через блок питания. При первом запуске должна появиться заставка LibreELEC. При этом система расширяет рабочий раздел карты памяти (/storage) до полного объема карты памяти, и далее устройство уходит в перезагрузку.Наконец, после перезагрузки и заставки LibreELEC мы должны увидеть интерфейс Kodi, который показывает диалог первоначальной настройки:

Если вы корректно настроили телевизор в предыдущем пункте, на этом этапе уже должно работать управление с пульта ДУ. Если Kodi не реагирует на нажатия клавиш пульта ДУ, наиболее вероятной причиной являются некорректные настройки именно телевизора, а не LibreELEC. Но в любом случае мы проверим правильность настроек LibreELEC ниже.

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

Согласно документации, в имени допустимы только буквы латинского алфавита (ввод регистронезависим), цифры и знак дефиса ("-").

Следующей страницей будет настройка сети:

Если устройство подключено к сети по кабелю и получает IP-адрес и другие настройки от маршрутизатора автоматически по DHCP, то сеть у вас уже настроена. Если же вы хотите использовать статический IP-адрес и(или) подключить устройство по WiFi, то нужно настроить сеть. Запоминаем показанный на этой странице IP-адрес устройства. Он нам понадобится далее для подключения по ssh.

На следующей странице диалог предлагает настроить службы. Включаем ssh-сервер. Пароль оставляем по умолчанию: libreelec. Для параноиков можно заменить пароль. Службу Samba следует выключить. Обратите внимание, что это не клиент Samba, а сервер. То есть она нужна только для того, чтобы подключаться к Repka-Pi. Если же вам нужен только клиент для подключения к сетевым дискам на устройствах под управлением ОС Windows, эта служба вам не нужна. Настройку работы с сетевыми дисками мы рассмотрим позднее.

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

Наконец, на последней странице диалога с приветствием просто жмем “Далее” и попадаем на основной экран Kodi:

На основном экране мы нажимаем на кнопку с шестеренкой и попадаем в меню настроек:

Здесь нас интересует пункт “Система”. Заходим в него и переходим в пункт “Ввод”:

Входим в строку “Периферия”:

Во всплывающем окне должно быть устройство “CEC Adapter”. Нажимаем на это устройство и переходим в его настройки:

Наличие устройства “адаптер CEC” не зависит от корректности настроек телевизора. Я пользуюсь дистрибутивом LibreELEC много лет на разных одноплатниках, построенных на архитектуре ARM и еще ни разу не сталкивался, чтобы устройства “адаптер CEC” в этом списке не было, если для железа заявлена поддержка CEC. Если вы используете другое железо, и в вашей установке не появляется устройство “адаптер CEC”, проверьте поддержку HDMI-CEC вашим железом. Насколько мне известно, ни Intel, ни AMD не поддерживают HDMI-CEC без отдельно приобретаемых адаптеров.

В настройках адаптера CEC нам нужно перевести на “Нет” пункты “Включить устройства при запуске” и “Выключить устройства при выключении” (чтобы телевизор работал независимо от состояния Repka Pi), а пункт “При выключении телевизора” перевести на “Остановить воспроизведение” (По умолчанию там стоит команда переводить Repka Pi в спящий режим при выключении телевизора. Чтобы не возиться со спящим режимом я оставляю устройство всегда включенным. Благодаря архитектуре ARM Repka Pi потребляет минимум электроэнергии. А по команде выключения телевизора с пульта ДУ LibreELEC просто должен остановить проигрывание, чтобы не перегреваться).

После того, как мы все настроили для адаптера CEC, выходим из его настроек и попадаем назад в меню “Система”. Выходим из меню “Система” назад в меню настроек и выбираем пункт “LibreELEC“. В нем нас интересует пункт “Сеть”:

Выключаем адаптер беспроводной сети, если мы подключаемся к локальной сети по проводу. Далее для сервера времени (NTP) указываем: “pool.ntp.org“.

Переходим к пункту “Службы” и выключаем адаптер Bluetooth, если не будем его использовать:

Если вы планируете пользоваться устройствами Bluetooth, то, естественно, адаптер отключать не нужно. Вместо этого можно подлючиться к этим устройствам в том же меню “LibreELEC“, в пункте “Bluetooth“.

Затем выходим из меню “LibreELEC“ и заходим в меню “Интерфейс“. Там мы выбираем пункт “Региональные“:

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

При загрузке LibreELEC вы должны услышать тилинькающий звук, а также звук должен сопровождать перемещение по кнопкам интерфейса и нажатие на кнопки. Это говорит о том, что звук по HDMI настроен и работает. Если вы его не слышите, то сначала следует проверить настройки вашего телевизора, а затем — проверить настройки звука в Kodi и проверить, поддерживает ли прошивка устройство HDMI-audio. Об этом написано в дополнении 1.

Настройка сетевых дисков

Настройка дисков NFS

В этом пункте будет описано, как настроить автоматическое подключение сетевых дисков с домашнего NAS. Если вы просто хотите использовать флешку, достаточно ее воткнуть — и можно пользоваться. Все файлы будут видны в пунктах “Музыка”, “Фильмы” и т.д. основного экрана Kodi.

Для того, чтобы можно было копировать-вставлять текст, а не набивать его вручную целиком, нам нужно зайти на работающий LibreELEC с компьютера или ноутбука с помощью клиента ssh. Если на вашем компьютере ОС Linux, то клиент уже установлен. На компьютере с Windows его придется установить. Например, для Windows 10 по этой инструкции.

У новичков в Linux часто возникает вопрос: как можно копировать и вставлять текст в/из буфера обмена в виртуальном терминале. В отличие от остальных приложений системы, в большинстве виртуальных терминалов копирование в буфер обмена совершается комбинацией Ctrl+Shift+c, а вставка — Ctrl+Shift+v. Кроме того, у графического интерфейса Linux есть еще один дополнительный буфер обмена. Копирование в него осуществляется простым выделением мышью, а вставка — нажатием средней клавиши мыши.

Подключаемся по протоколу ssh (для этого нам понадобится IP-адрес Repka Pi, который мы запомнили выше, для этого же и включали службу ssh) :

$ ssh root@ip-адрес

Вас попросят ввести пароль (ввод пароля никак не будет отображаться в терминале) от сервера ssh. Если вы оставили его по умолчанию, введите “libreelec” (без кавычек). В противном случае введите тот пароль, который задали. Если пароль правильный, вы должны подключиться к Repka Pi и увидеть в терминале приветствие:

##############################################
#                 LibreELEC                  #
#            https://libreelec.tv            #
##############################################

LibreELEC (official): 11.0.1 (H5.arm)

На устройстве нас прежде всего интересует каталог “/storage”. В нем находятся настройки OpenELEC (каталог “/storage/.config”) и Kodi (каталог “/storage/.kodi”). Нам требуется создать файлы .mount для systemd. Файлы юнитов systemd находятся в каталоге “/storage/.config/system.d”, в нем уже лежат примеры файлов различных юнитов.

Для новичков в Linux сделаю пояснение. Systemd — это главная служба в ОС Linux. Она запускается первой при запуске системы (после самого ядра) и запускает все остальные службы. Кроме того, она подключает все диски — как локальные, так и сетевые, запускает таймеры и многое другое. Для того, чтобы systemd запустил какую-то службу или подключил диск, нужно создать соответствующий конфигурационнный файл, которые называет юнитом. Соответственно, если мы хотим, чтобы удаленные диски автоматически подключались при запуске, нам нужно создать соответствующий юнит systemd. Подробнее про то, как создавать юниты systemd, можно прочитать, например, тут.

Для примера возьмем, что наш NAS имеет IP-адрес 192.168.1.10. На нем есть три сетевых диска NFS4: “/srv/nfs/music“, “/srv/nfs/videos“ и “/srv/nfs/pictures“. Подключать их мы будем в каталоги “/storage/music“, “/storage/videos“ и “/storage/pictures“ LibreELEC соответственно. Согласно стандарту, название файлов служб должно соответствовать их пути, при этом слеш (‘/’) заменяют на дефис, а слеш корневого каталога пропускают. Расширение для юнитов, подключающих диски, должно быть “.mount”. То есть мы должны создать 3 файла: “storage-music.mount“, “storage-videos.mount“ и “storage-pictures.mount“ в каталоге “/storage/.config/system.d”. Каталоги “/storage/music“, “/storage/videos“ и “/storage/pictures” уже присутствуют с файловой системе LibreELEC, поэтому их создавать не нужно. Если вы хотите подключать сетевые диски к другим каталогам, их предварительно нужно создать.

Пример файла “/storage/.config/system.d/storage-music.mount”:

[Unit]
Description=Music NFS folder
After=network.target network-online.service nss-lookup.target
Requires=network.target network-online.service nss-lookup.target
Before=kodi.service

[Mount]
# Каталог на LibreELEC, в который подключаем сетевой диск
Where=/storage/music
# Здесь указываем IP-адрес NAS и через двоеточие путь к сетевому диску
What=192.168.1.10:/srv/nfs/music
Type=nfs4
TimeoutSec=5
ForceUnmount=true

[Install]
WantedBy=multi-user.target

В данном файле прописаны все зависимости (переменные “After” и “Requires”), которые гарантировано будут подключать диск после того, как сетевое соединение было поднято, а также работает служба DNS. То есть можно прописывать не IP-адрес, а имя DNS (например, nas.example.com).

Создать файл “storage-music.mount“ можно следующей командой:

# nano /storage/.config/system.d/storage-music.mount

В открывшемся редакторе нужно просто вставить текст, сохранить файл и выйти из редактора. После этого аналогичным образом нужно создать файлы для видео и фото, внеся соответствующие изменения в текст юнитов (важны только строки “Where=” и “What=”).

Обратите внимание, что если в названии файлов встречаются русские буквы и пробелы, то как в названии юнита, так и в пути (“Where=”) нужно писать не русское название или название с пробелами, а соответствующий код, сгенерированный systemd-escape. Там есть подводные камни. Поэтому если вы являетесь новичком в Linux, то просто выбирайте путь, не содержащий пробелов и русских букв

Когда файлы всех трех юнитов созданы, нужно указать systemd обновить конфигурацию юнитов, а затем запустить эти юниты и установить их в автозагрузку:

# systemctl daemon-reload
# systemctl enable --now storage-music.mount
# systemctl enable --now storage-videos.mount
# systemctl enable --now storage-pictures.mount

Если выполнение команд не выдало ошибок, то сетевые диски успешно подключены. Мы должны видеть содержимое дисков:

# ls /storage/videos/
Фильмы            Сериалы
Личное            Мультфильмы

Настройка дисков Samba

Samba — это пакет программ, которые позволяют создавать сервер по протоколу SMB/CIFS или же подключать клиент к серверам по этому же протоколу. Этот протокол является основным, на котором реализован сетевой доступ к дискам в ОС Windows.

В данном разделе мы не будем рассматривать вопрос предоставления общего доступа к папкам на ПК, работающих под управлением ОС Windows. Будем считать, что они у вас уже есть.

Мы также как и в предыдущем разделе сетевые диски будем подключать с помощью юнитов systemd, но будем использовать немного другой подход. Возможно, доступ к сетевой папке у вас открыт не на сервере, а на десктопе или ноутбуке. Поэтому логично, что этот компьютер у вас включен не постоянно и может быть недоступен. Поэтому если мы будем поключаться к такому компьютеру просто юнитом mount как в предыдущем разделе, в случае потери поединения при обращении к сетевому диску произойдет зависание устройства на некоторое время. В разделе о подключении к NFS мы подключались к серверу, и считали такую возможность минимальной. Сейчас же мы должны предусмотреть это как штатную вероятность. Поэтому мы не будем активировать юнит mount, вместо этого мы создадим еще один юнит automount, который будет автоматически подключать соответствующий ему юнит mount при обращении к сетевому диску, а также автоматически отключать этот диск через определенный интервал времени, когда больше никто не обращается к нему. В случае недоступности сетевого диска мы получаем просто пустую папку, но подвисания устройства не происходит.

Мы как и прежде подключаем сетевой диск к каталогу /storage/videos. Если у вас несколько сетевых дисков, их нужно подключить к разным каталогам. Например, к разным подкаталогам в каталоге “/storage/videos”: “/storage/videos/disk1”, “/storage/videos/disk2” (или с более осмысленными названиями). В ОС Linux разные разделы или сетевые диски можно подключать к одному и тому же каталогу, но в этом случае в каталоге будет отображаться содержимое того раздела или диска, который подключен последним.

Как и прежде создадим файл mount, например, для видео:

# nano /storage/.config/system.d/storage-videos.mount

Содержимое у него должно быть следующим:

[Unit]
Description=Videos at Samba Share
After=network.target network-online.service nss-lookup.target
Requires=network.target network-online.service nss-lookup.target
Before=kodi.service

[Mount]
What=//192.168.1.10/Users/username/share
Where=/storage/videos
Options=username=пользователь,password=пароль,ro
Type=cifs
TimeoutSec=5
ForceUnmount=true

[Install]
WantedBy=multi-user.target

В строку “Options” нужно вписать имя пользователя, которому разрешен доступ к сетевому диску, и его пароль. Данный диск мы подключили только для чтения, о чем говорит опция “ro”. Так как пароль указан открытым текстом, запретим доступ к нашему юниту всем, кроме рута:

# chmod 600 /storage/.config/system.d/storage-videos.mount

Теперь создаем файл automount. Название файла должно быть в точности таким же, как и у соответствующего ему файла mount (кроме расширения automount). Содержимое следующее:

[Unit]
Description=Videos at Samba Share

[Automount]
Where=/storage/videos
TimeoutIdleSec=300

[Install]
WantedBy=multi-user.target

Переменная “Where=” в нем должна указывать на тот каталог, куда будет подключен сетевой диск. Теперь обновим конфигурацию юнитов, запустим эти юнит automount и установим его в автозагрузку:

# systemctl daemon-reload
# systemctl enable --now storage-videos.automount

Обратите внимание, что мы запускаем только юнит automount. Юнит mount не дожен быть запущен, его автоматически будет запускать сам systemd при обращении к каталогу благодаря запущенному юниту automount. По таймауту юнит mount будет также автоматически отключен при отсутствии обращений к каталогу.

На этом настройка закончена.

Дополнение 1: дополнительные действия для прошивки 09.08.23

Отключение синего мигающего диода

По умолчанию в Repka Pi встроен синий диод, который настроен на мигание в момент проведения одноплатником ряда операций. Так как мы готовим устройство для постоянного размещения в жилой комнате (возможно, даже спальне), постоянное синие мигание устройства нежелательно. Поэтому мы отключим мигание диода. Для этого достаточно записать “0” в файл “/sys/class/leds/rbs\:red\:status/brightness“. Но это действие придется делать при каждой загрузке Repka Pi. Поэтому добавим его в автозагрузку LibreELEC. Для этого нам нужно создать файл “/storage/.config/autostart.sh“ со следующим содержимым:

#!/bin/sh
echo 0 > /sys/class/leds/rbs\:red\:status/brightness

Создать файл можно командой:

# nano /storage/.config/autostart.sh

Сохраняем файл и выходим из текстового редактора. Теперь остался последний штрих. Для этого нам нужно выключить Repka Pi. Это можно сделать командой (или через интерфейс Kodi):

# systemctl poweroff

Замена файла прошивки

Заходим в настройка Kodi, в них выбираем меню “Система” и переходим на пункт “Аудио”:

В сборке LibreELEC для Repka Pi от 09.08.2023 в прошивку Repka Pi не включена поддержка передачи звука по HDMI (но сам одноплатник ее имеет!). Мы перешли в пункт “Аудио” для того, чтобы убедиться, что звук действительно отсутствует из-за прошивки, а не по какой-то другой причине (естественно, если вы при запуске Kodi и при перемещении по элементам интерфейса слышите звук, то у вас все работает и все настроено, от вас никаких действий не требуется.

В нем нам нужны пункты “Звуки интерфейса” (они не должны быть выключены), “Громкость” (она не должна быть на нуле или слишком низкой), а также “Устройство вывода звука”. Для звука по HDMI оно должно быть “allwiner-hdmi” . На скриншоте выбрано устройство “H3 Audio Codec…”. Оно соответствует стандартному выходу под наушники/колонки. Выберем этот пункт меню и посмотрим, какие устройства в принципе доступны:

Как видно, устройство для HDMI в списке отсутствует. Значит, действительно дело в прошивке, а не в чем-то еще. Чуть позднее мы это поправим.

Ранее мы выяснили, что в сборке LibreELEC для Repka Pi от 09.08.2023 в прошивку Repka Pi не включена поддержка передачи звука по HDMI. Для того, чтобы ее включить, скачаем прошивку по ссылке из статьи о Batocera 34 на Repka Pi. Нас интересует файл .dtb.

Вынимаем карту памяти из Repka Pi и вставляем ее через кард-ридер в компьютер. На карте памяти присутствуют два раздела: первый (размером около 500МБ) содержит файловую систему Fat32, и на нем записаны системные файлы — прошивка, загрузчик, ядро и т.д. Второй раздел содержит файловую систему Ext4, и его размер соответствует оставшемуся после первого раздела свободному пространству на карте. Этот раздел после запуска LibreELEC подключается к каталогу “/storage”. Поэтому если вы его подключите к вашему компьютеру, вы на нем найдете все те файлы, которые мы создали на предыдущих этапах. То есть вам не обязательно использовать ssh для их создания — вы можете их создать напрямую на карте памяти.

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

$ su -
# mkdir /mnt/flash
# mount /dev/sde1 /mnt/flash
# ls /mnt/flash/
extlinux  KERNEL  KERNEL.md5  overlays  sun50i-h5-repka-pi3-1.4ghz.dtb  SYSTEM  SYSTEM.md5
# mv /mnt/flash/sun50i-h5-repka-pi3-1.4ghz.dtb /mnt/flash/sun50i-h5-repka-pi3-1.4ghz.dtb.bk
# cp /home/пользователь/Downloads/sun50i-h5-repka-pi3-alt-pwm-1.2ghz.dtb /mnt/flash/sun50i-h5-repka-pi3-1.4ghz.dtb
# umount /mnt/flash

Вынимаем карту из кард-ридера, вставляем ее в Repka Pi и запускаем одноплатник. После загрузки мы должны увидеть интерфейс Kodi и при запуске услышать звук. Кроме того, Repka Pi больше не должна мигать как новогодняя елка.


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

Для участия в обсуждении вы должны быть авторизованным пользователем
Владимир  

Оооо класс, настройка сетевых дисков!
Кстати вышла новая версия с отключенным мигающим светодиодом и со звуком на HDMI
https://download.robointellect.ru/LibreELEC-H5.arm-11.0.1-repka-pi3-20.11.23.zip

redfox2807
redfox2807  

Спасибо за ссылку! Протестирую новую прошивку и обновлю текст. Еще в планах описать настройку дисков samba. Вдруг кто задумает подключаться к сетевым дискам Windows.

Владимир  

Супер! Конечно задумает =)

CCND  

Увидел недавно в одном из роликов на ютубе сей девайс. Почитал, вроде все красиво. Задача у меня простая, есть старый телек, не смарт, но HDMI имеется, хочу привязать к устройству синезубый пульт(тв китайский, так что управление с родного вряд ли взлетит), подключить и смотреть на нем кинопоиск, больше ничего не надо. Воткнул в розетку, загрузился кинопоиск, нажал кнопку, начал просмотр. Подскажите плз, на какой версии платы это можно сделать и можно ли вообще?

redfox2807
redfox2807  

1.Что касается пульта.
Для начала, я бы все равно проверил, не поддерживает ли телевизор СЕС. Кроме Bluetooth есть вариант управления Kodi со смартфона, из приложения: https://kodi.wiki/view/HOW-TO:Install_Kodi_for_Android
Если все-таки пульт Bluetooth, то, насколько я знаю, нужна версия платы 1.4 или 1.5. На 1.3 Bluetooth из коробки нет, поэтому пульт Bluetooth к ней не удастся подключить.

  1. Что касается Кинопоиска, то поддержа в Kodi в принципе имеется. Я лично не пользовался, поэтому не могу сказать, насколько все удобно и шустро. Вы можете для начала попробовать Kodi просто установив программу на ноутбук или компьютер. Инструкция для Кинопоиска, например, тут: https://vershina1240.ru/nastroika-kodi-dlya-ispolzovaniya-kinopoiska/#ustanovka-plagina-kinopoisk-dlya-kodi
    Тогда будете иметь представление о том, что вас ждет, не поеупая устройства.

  2. Что касается автозапуска именно КиноПоиска, в принципе, можно настроить, что Kodi будет показывать стартовой страницей. Хотя вполне возможно, что по мере использования Kodi, у вас появятся дополнительные потребности, и это требование отпадет

Навигация

ВойтиРегистрацияТемы