Делаем медиа сервер из 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 и счас детально его распишу.
Что нам понадобится:
Апельсин
Micro SD от 2 гб и кардридер для ПК
USB Type C и источник для питания апельсина
HDD (форм-фактор 2.5) или SSD
SATA to USB адаптер
Ethernet кабель
Компьютер с Linux и Windows в той же LAN, что и апельсин
Armbian образ Debian 12 (Bookworm), качаем здесь
balenaEtcher, качаем здесь
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
Сохраняем.

Далее меняем root пароль.
В консоли Linux на ПК пишем команду openssl passwd -l -salt любые три буквы + ваш новый пароль.
Эта команда вернёт вам ваш новый пароль в хешированном виде, выглядеть он будет как беспорядочный набор символов, копируем его.
Открываем из под root для редактирования файл /etc/shadow и в строке root меняем беспорядочный набор символ на наш беспорядочный набор символов (хешированный пароль).
Сохраняем.

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


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

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

Далее нам необходимо перенести систему на HDD, чтобы micro sd не улетела в Вальхаллу из-за постоянной перезаписи. В armbian это делается легко с помощью встроенных средств, а именно 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ом.
Что касается этичного вопроса торрентов, то я живу «по ту сторону добра и зла». Слышать от кого-то, что это неправильно или плохо для меня смешно. Допустим долларовый миллионер, владелец авторских прав на фильм, потеряет часть прибыли из-за торрент-трекеров, и что?) Мне нравятся хорошие фильмы и сериалы, несмотря на торренты это прибыльно сегодня, а значит они будут выпускаться дальше, этого мне достаточно.
Habrahabr.ru прочитано 6426 раз