Делаем медиа сервер из Orange Pi Zero 3

от автора

В этой статье мы установим всё необходимое для работы Orange Pi Zero 3 в роли медиасервера DLNA с Transmission. При этом система будет запускаться с жесткого диска, а для установки нам не потребуется подключать к Orange Pi клавиатуру либо дисплей.

Купив Orange Pi Zero 3, я первым делом полез в интернеты искать гайд для установки нужной мне системы, но везде натыкался на гайды где все операции проводят подключая Orange Pi Zero 3 (далее апельсин) к дисплею через Micro-HDMI (которого у меня не было) и набирая все команды через клавиатуру. В общем мне показалось это глупым, а главное мне было лень покупать и ждать пока придет Micro-HDMI, поэтому я нашел способ установить всё через ssh и счас детально его распишу.

Что нам понадобится:

  1. Апельсин

  2. Micro SD от 2 гб и кардридер для ПК

  3. USB Type C и источник для питания апельсина

  4. HDD (форм-фактор 2.5) или SSD

  5. SATA to USB адаптер

  6. Ethernet кабель

  7. Компьютер с Linux и Windows в той же LAN, что и апельсин

  8. Armbian образ Debian 12 (Bookworm), качаем здесь

  9. balenaEtcher, качаем здесь

  10. Angry IP Scanner, качаем здесь

Приступим

Мой апельсин с охлаждением

Мой апельсин с охлаждением

Первым делом из под Windows с помощью программы balenaEtcher прошиваем Armbian образ Debian 12 (Bookworm) в моём случае Armbian_community_25.5.0-trunk.370_Orangepizero3_bookworm_current_6.12.20_minimal.img на micro sd.

Далее включаем на ПК Linux и лезем из под root на нашу micro sd, нам нужно изменить конфиг sshd и установить пароль для root.

Ищем файл /etc/ssh/sshd_config, открываем из под root для редактирования.
Строка PermitRootLogin значение должно быть yes
Строка PasswordAuthentication значение должно быть yes
Сохраняем.

Мой sshd config

Мой sshd config

Далее меняем root пароль.

В консоли Linux на ПК пишем команду openssl passwd -l -salt любые три буквы + ваш новый пароль. Эта команда вернёт вам ваш новый пароль в хешированном виде, выглядеть он будет как беспорядочный набор символов, копируем его.

Открываем из под root для редактирования файл /etc/shadow и в строке root меняем беспорядочный набор символ на наш беспорядочный набор символов (хешированный пароль).
Сохраняем.

/etc/shadow

/etc/shadow

Подробнее про это можно узнать в этой статье.

Идём дальше.

Подключаем к апельсину hdd/ssd, ethernet, usb c, вставляем micro sd и подключаем питание.

HDD должен быть чистым без разделов. Лучше всего сделать clean через утилиту Diskpart в Windows и затем инициализировать HDD в GPT. Я на всякий случай сделал ещё и низкоуровневое форматирование т.к. мой диск 24/7 4 года использовался в файлопомойке. Вот кстати его показатели в Crystal Disk Info, думаю был бы это SSD, лежал бы уже в мусорке.

CrystalDiskInfo

CrystalDiskInfo
HDD

HDD

После подачи питания апельсин должен включиться, загрузить Linux c micro SD и запустить SSHD службу. Нам нужно узнать ip адрес апельсина. Если не знаете ip, ищите через Angry IP Scanner все ip адреса в LAN c открытым 22 портом.

Angry IP Scanner

Angry IP Scanner

После того как найдёте IP подключаемся к апельсину через из командной строки по ssh командой: ssh root:ипадрес

Если всё правильно сделали — увидите это.

SSH

SSH

Далее нам необходимо перенести систему на HDD, чтобы micro sd не улетела в Вальхаллу из-за постоянной перезаписи. В armbian это делается легко с помощью встроенных средств, а именно armbian-config. Пишем в консоли armbian-config.

Armbian config

Armbian config

Выбираем System -> Storage -> SY001 Install to internal storage-> Boot from sd card — system on SATA , USB or NVMe, дальше разберетесь сами, скрипт сам сделает разделы и перенесет систему на HDD.

Осталось установить miniDLNA и Transmission

Создаем папку для наших фильмов/музыки командой mkdir /srv/media и chmod 777 /srv/media

Устанавливаем miniDLNA. Вводим apt-get install minidlna
Настраиваем файл конфигурации nano /etc/minidlna.conf
Приводим строчку media_dir к виду media_dir=/srv/media
Сохраняем файл и выходим. Я же надеюсь вы умеете пользоваться редактором nano?

Устанавливаем Transmission

Вводим apt install transmission-daemon
После того как всё установится service transmission-daemon stop
Затем nano /etc/transmission-daemon/settings.json
Теперь нам нужно указать папку для скачивания, логин и пароль от веб морды.
"download-dir": "/srv/media",
"rpc-username": "логин для веб морды",
"rpc-password": "пароль для вебморды (после запуска службы захешируется автоматически)",

Сохраняем и выходим, позже можете вернуться и поменять там всякое, например размер кэша, чтобы программа реже обращалась к SSD/HDD и сохраняла куски в оперативной памяти. "cache-size-mb": 256,

Запускаем службу Transmission обратно service transmission-daemon start
Если не останавливать службу на время редактирования файла настроек, то программа автоматически перезапишет файл конфигурации предыдущей его версией.

Ну вот и всё. Заходим в веб морду Transmission с любого устройства в LAN через браузер ip адрес апельсина:9091 , вводим логин и пароль из файла конфигурации и скармливаем торрент файлы которые нужно загрузить. После загрузки они будут доступны с телевизора и других устройств в LAN через DLNA, можно использовать VLC на устройствах которые по умолчанию не поддерживают DLNA.

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

Что касается этичного вопроса торрентов, то я живу «по ту сторону добра и зла». Слышать от кого‑то, что это неправильно или плохо для меня смешно. Допустим долларовый миллионер, владелец авторских прав на фильм, потеряет часть прибыли из‑за торрент‑трекеров, и что?) Мне нравятся хорошие фильмы и сериалы, несмотря на торренты это прибыльно сегодня, а значит они будут выпускаться дальше, этого мне достаточно.

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

Скачиваете ли вы фильмы с торрентов?

92.86% Да13
7.14% Нет1

Проголосовали 14 пользователей. Воздержавшихся нет.

ссылка на оригинал статьи https://habr.com/ru/articles/900480/