Raspberry Pi LibreELEC + Transmission

Итак у нас появился Raspberry Pi и стоит задача сделать свою медиатеку
Основная задача сделать автономную медиатеку для поездок на дачу где нет интернета
Будем делать на основе медиатеки KODI
Существует множество дистрибутивов под Raspberry Pi выбор пал на LibreELEC
Выбор связан с тем что его активно поддерживают и он не нагроможден изначально сложными дополнениями

В моем случе: Raspberry Pi 3 Model B+
Достаточно сомнительная модель. Больше похожа на промежуточный этап.
Не поддерживается многими дистрибутивами, спокойно работающими на Raspberry Pi 3 Model B

https://libreelec.tv/downloads_new/raspberry-pi-3-3/

На момент установки:
Kodi 18.0 (Linux Kernel 4.19.x)
LibreELEC-RPi2.arm-9.0.0.img.gz

LibreELEC + Transmission

Будем считать что LibreELEC установлен, настроен и нам необходимо сделать из него торрент качалку
Разработчики удалили из свое репозитария Transmission, оставив только утилиту для работы с transmission-daemon
Сама утилита в принципе рабочая, только не двигаются ползунки отображающие процент загрузки. Сам процент загрузки отображается корректно

Ставим репозитарий
https://github.com/thoradia/thoradia
Нас интересует файл
https://github.com/thoradia/thoradia/raw/master/service.thoradia.zip

Любым удобным способом закидываем на Raspberry Pi. Хоть на microsd хоть на внешний HDD
В системных настройках разрешаем установку из неизвестных источников
Идем в дополнения и устанавливаем из ZIP файла service.thoradia.zip

Затем из репозитария thoradia ставим службу Transmission
Настроек у службы немного, лучше их не трогать
Теперь можно посмотреть работу подключившись к Transmission
Сделать это можно через браузер http://адрес_Raspberry:9091
Или использовав отдельное ПО для Linux transmission remote gui
Или с телефона и планшета Remote Transmission

Настройки и автоматизация

Качать будем на внешний диск подключенный по USB
Метка диска hdd
/media/hdd
Папка с закачками /storage/downloads
Папка незавершенных закачек /storage/downloads
Папка куда складируются торрент файлы и Transmission сам их забирает /storage/downloads/torrents
Мне удобнее качать в отдельную папку потом уже раскидывать по папкам с видео
Связано это с особенностью именования файлов для правильного отображения медиотеки
По началу достаточно сложный и по началу непонятный процесс именно именования. Если будет интересно, то могу дополнить статью.

В данной сборке Transmission стоит некое дополнени settings.xml
Оно влияет на настройки settings.json
Мне надо было изменить пути для закачек, а так же путь автозабора торрент файлов
Поэтому меняет конфигурацию по умолчанию, удаляем уже созданные настройки, и перезапускаем сервис Transmission или Raspberry целиком

nano /storage/.kodi/addons/service.transmission/settings-default.xml
<settings>
    <setting id="tx_allowed" value="*.*.*.*" />
    <setting id="tx_download" value="/storage/downloads" />
    <setting id="tx_incomplete" value="/storage/downloads" />
    <setting id="tx_nice" value="10" />
    <setting id="tx_password" value="" />
    <setting id="tx_port" value="9091" />
    <setting id="tx_separate_incomplete" value="true" />
    <setting id="tx_username" value="" />
    <setting id="tx_watch" value="/storage/downloads/torrents" />
</settings>
rm -rf /storage/.kodi/userdata/addon_data/service.transmission/

Файл по пути /storage/.kodi/userdata/addon_data/service.transmission/settings.json после внесения изменений и перезапуска Transmission перезаписывается, поэтому править его бесполезно

Так же возник глюк No data found! Ensure your drives are connected
Это значит то что Transmission запускается раньше чем подключится внешний диск
Поэтому пишем 2 скрипта
Один для задержки автозапуска Transmission и запуска всех торрентов
Так же были зависания на этапе выключения
Второй для отключения служб и безопасного извлечения диска

nano /storage/.config/autostart.sh
#!/bin/bash
systemctl stop service.transmission.service
sleep 5
systemctl start service.transmission.service
sleep 5
transmission-remote --torrent all --start
sleep 5
rm /storage/downloads/torrents/*.added 2>/dev/null
chmod +x /storage/.config/autostart.sh
nano /storage/.config/shutdown.sh
case "$1" in
  halt)
    transmission-remote --torrent all --stop
    systemctl stop service.transmission.service
    sync
    umount /media/hdd/
    systemctl halt
    ;;
  poweroff)
    transmission-remote --torrent all --stop
    systemctl stop service.transmission.service
    sync
    umount /media/hdd/
    systemctl poweroff
    ;;
  reboot)
    transmission-remote --torrent all --stop
    systemctl stop service.transmission.service
    sync
    umount /media/hdd/
    systemctl reboot
    ;;
  *)
    # your commands here
    ;;
esac
chmod +x /storage/.config/shutdown.sh

В репозитарии thoradia так же есть и другие торрент клиенты
Я пробовал rtorrent + rutorrent, но он у меня работает очень глючно, возможно это связано с самой платформой Raspberry Pi 3 Model B+
Как бы то ни было оказалось очень удобно управлять Transmission с планшета

PS

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

systemctl --force --force reboot

4 комментария

  • VZ

    Файл по пути /storage/.kodi/userdata/addon_data/service.transmission/settings.json после внесения изменений и перезапуска Transmission перезаписывается, поэтому править его бесполезно

    Это если править при запущеном transmission. Если перед этим transmission остановить, то файл сохраняет изменения.
    По крайней мере на ПК х86 это срабатывает

    • Файл settings.json создается под пользователем под которым запущен transmission
      Сейчас под рукой есть только Archlinux с настроеным transmission-daemon, поэтому приведу пример на нём

      Имя под которым запускается transmission-daemon указывается здесь
      /usr/lib/systemd/system/transmission.service
      Файл пользователя – создается и перезаписывается каждый раз при запуске демона
      /home/makoto/.config/transmission-daemon/settings.json
      Исходный файл содержащий настройки демона в котором и редактируем параметры
      /var/lib/transmission/.config/transmission-daemon/settings.json

      В дистрибутиве LibreELEC используется transmission с неким модом settings.xml. Поэтому такое решение и представлено

      • VZ

        settings.xml там только пути и пароль можно указать. В принципе, если это только и нужно, то предоставленное решение подходит. А например такой параметр как umask или preallocation там не понятно как поменять (С Linux-подобными системами я на ВЫ :). Конечно же в LibreELEC transmission немного не “такой” – но очень похож на transmission 1.8x для Synology – параметры можно менять только через settings.json но при остановленном transmission. И если на Synology на transmission версии 2,3x, такие параметры можно менять уже через Transmission Remote GUI, то на LibreELEC так параметры не меняются (то есть меняются, но после перезагрузки, параметры опять по дефолту), то пришлось вспомнить как это было давным давно на Synology, и знаете, это сработало. Останавливаем transmission, редактируем settings.json, сохраняем и запускаем transmission – у меня все изменения на месте… перезагружаю ПК – и все изменения (пути, umask, preallocation, trash-original-torrent-files) на месте.

        Ну а в целом, по Вашей статье все установилось и настроилось без особых проблем, за исключением отложенного старта transmission (этот скрипт почему-то не даёт загружаться KODI на моём медиацентре, но это решилось через BIOS путём изменения очереди загрузки устройств). А если у Вас есть статья о браузерном файл-менеджере для KODI, то будем очень благодарны за ссылку :). А то включать телевизор или держать постоянно включенным лаптоп, чтобы копировать файлы как-то неохота…

Добавить комментарий для -=IMBICILE=- ( Одмин ) Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *