В предыдущей статье цикла мы с вами разбирались с установкой на Raspberry Pi одновременно нескольких полезных сервисов: AdGuard Home, Time Machine и Homebridge с шестью различными плагинами. Но в случае с «малинкой» есть куда расти, ведь загрузка RPi4 со всеми запущенными сервисами выглядит примерно так:
А раз уж запас прочности у устройства позволяет не только использовать его в качестве сервисной платформы, давайте развлекаться!
Итак, сегодня мы ко всему прочему, что уже работает на нашей Raspberry Pi, добавим несколько приятных дополнений, которые призваны разнообразить наш досуг. Но, прежде чем превращать «малинку» в файловый сервер, медиацентр и, возможно, игровую консоль, давайте позаботимся о том, чтобы её принарядить.
Недавно мне попался на глаза корпус Argon ONE Case for Raspberry Pi 4 Model B и я немедленно его приобрел. Плюсы корпуса:
В общем, это полный восторг. А новая модель Argon ONE M.2 Case for Raspberry Pi 4 Model B заменяет встроенные порты micro-HDMI на полноформатные HDMI, добавляет слот для накопителя M.2 SSD и инфракрасный приемник. Исключительно рекомендую!
Но вернемся к нашим задачам и начнем превращать Raspberry Pi в развлекательный центр. Поехали!
Поскольку у меня подключен внешний диск на 3 TB (туда складываются резервные копии Time Machine, помните?), мысль о скачивании файлов возникла сама собой. Я давно уже не пользуюсь торрентами, так как у меня активны подписки Apple Music, Apple TV+, Apple Arcade и Netflix, но я на этой планете живу не один, а кое-какие идеи насчет игровой ретро-консоли подсказывают, что торрент-клиент не будет лишним.
С него и начнем.
Нужно также принять во внимание, что если бы я устанавливал Transmission одновременно со всеми предыдущими сервисами, то конечно же сделал бы на внешнем HDD два раздела — под файлохранилище и под Time Machine. Разбивать диск на разделы сейчас, когда на нем уже куча резервных копий, не хочется, поэтому я пойду по пути наименьшего сопротивления: просто создам папку для скачиваемых файлов в уже существующем разделе, прямо рядом с резервными образами macOS.
Важно! Поскольку мы будем завязываться на пользователя pi, который является дефолтным для доступа ко всей системе и к нашим уже установленным сервисам, то для безопасности будем (опционально) использовать ограничение доступа к панели управления Transmission по IP-адресу. Для этого присвойте статичный локальный IP своему компьютеру, с которого проделываете все настройки и манипуляции с файлами на RPi по сети. Если забыли, как это делается — см. в предыдущей статье.
Если забыли, как это делается, все та же предыдущая статья в помощь.
sudo apt update sudo apt upgrade
sudo apt install transmission-daemon
sudo systemctl stop transmission-daemon
Можно сделать сразу две, для завершенных скачиваний и для тех, что еще в процессе, но лично я не вижу в этом особого смысла, так как у недокачанных файлов все равно по умолчанию будет расширение .part.
Мы помним, что в предыдущей статье точкой монтирования у нас была /mnt/tm
, так что и папку Downloads создадим здесь же.
sudo mkdir -p /mnt/tm/Downloads
sudo chown -R pi:pi /mnt/tm/Downloads
Открываем файл настроек settings.json
в редакторе nano командой:
sudo nano /etc/transmission-daemon/settings.json
Содержимое открывшегося файла будет выглядеть примерно так:
# Transmission-daemon configuration file # { "alt-speed-down": 50, "alt-speed-enabled": false, "alt-speed-time-begin": 540, "alt-speed-time-day": 127, "alt-speed-time-enabled": false, "alt-speed-time-end": 1020, "alt-speed-up": 50, "bind-address-ipv4": "0.0.0.0", "bind-address-ipv6": "::", "blocklist-enabled": false, "blocklist-url": "http://www.example.com/blocklist", "cache-size-mb": 4, "dht-enabled": true, "download-dir": "/var/lib/transmission-daemon/downloads", "download-limit": 100, "download-limit-enabled": 0, "download-queue-enabled": true, "download-queue-size": 5, "encryption": 1, "idle-seeding-limit": 30, "idle-seeding-limit-enabled": false, "incomplete-dir": "/var/lib/transmission-daemon/Downloads", "incomplete-dir-enabled": false, "lpd-enabled": false, "max-peers-global": 200, "message-level": 1, "peer-congestion-algorithm": "", "peer-id-ttl-hours": 6, "peer-limit-global": 200, "peer-limit-per-torrent": 50, "peer-port": 51413, "peer-port-random-high": 65535, "peer-port-random-low": 49152, "peer-port-random-on-start": false, "peer-socket-tos": "default", "pex-enabled": true, "port-forwarding-enabled": false, "preallocation": 1, "prefetch-enabled": true, "queue-stalled-enabled": true, "queue-stalled-minutes": 30, "ratio-limit": 2, "ratio-limit-enabled": false, "rename-partial-files": true, "rpc-authentication-required": true, "rpc-bind-address": "0.0.0.0", "rpc-enabled": true, "rpc-host-whitelist": "", "rpc-host-whitelist-enabled": true, "rpc-password": "{51672671e9402abc55992da3ee7809f2c0662d10uLpcJwyX", "rpc-port": 9091, "rpc-url": "/transmission/", "rpc-username": "transmission", "rpc-whitelist": "127.0.0.1,192.168.1.40", "rpc-whitelist-enabled": true, "scrape-paused-torrents-enabled": true, "script-torrent-done-enabled": false, "script-torrent-done-filename": "", "seed-queue-enabled": false, "seed-queue-size": 10, "speed-limit-down": 100, "speed-limit-down-enabled": false, "speed-limit-up": 100, "speed-limit-up-enabled": false, "start-added-torrents": true, "trash-original-torrent-files": false, "umask": 18, "upload-limit": 100, "upload-limit-enabled": 0, "upload-slots-per-torrent": 14, "utp-enabled": true }
Делаем содержимое следующих строк таким, ищем сверху вниз по порядку:
"download-dir": "/mnt/tm/Downloads",
— указываем дефолтную папку для загрузок;"rpc-password": "your RPi password here",
— устанавливаем пароль от пользователя pi (мы его для входа по SSH используем, помните?);"rpc-username": "pi",
— указываем собственно пользователя pi;"rpc-whitelist": "127.0.0.1,192.168.50.20",
— белый список для доступа к панели управления, где вместо 192.168.50.20
указываем локальный IP-адрес устройства, с которого проводится настройка (см. пункт Важно! выше по тексту).Если заморачиваться со входами по локальным IP не хочется (все же мы тут не Пентагон взламываем, а играемся), то "rpc-whitelist-enabled": "false",
вместо предыдущей строки закрывают этот вопрос.
Сохраняем результат Ctrl+O, Enter, Ctrl+X.
sudo nano /etc/init.d/transmission-daemon
В открывшемся окне редактора ищем строку USER=debian-transmission
и меняем её на USER=pi
. Не забываем сохранить результат редактирования все теми же сочетаниями клавиш Ctrl+O, Enter, Ctrl+X.
Вводим команду…
sudo nano /etc/systemd/system/multi-user.target.wants/transmission-daemon.service
…и в открывшемся файле тоже указываем user=pi
Сохраняем результат Ctrl+O, Enter, Ctrl+X.
Чтобы подхватились все внесенные нами изменения, вводим
sudo systemctl daemon-reload
sudo chown -R pi:pi /etc/transmission-daemon
sudo mkdir -p /home/pi/.config/transmission-daemon/
sudo ln -s /etc/transmission-daemon/settings.json /home/pi/.config/transmission-daemon/
sudo chown -R pi:pi /home/pi/.config/transmission-daemon/
sudo systemctl start transmission-daemon
Фух, готово! Мы справились!
Всё в той же предыдущей статье мы раз и навсегда присваивали Raspberry Pi статичный IP в локальной сети. В моем случае это был 192.168.50.10, в вашем — любой другой в рамках настроек вашего роутера.
Для доступа к интерфейсу только что установленного Transmission мы будем использовать этот IP с портом 9091. В адресной строке браузера вводим http://<ip address of your server>:9091
где вместо <ip address of your server>
все тот же IP из нашей предыдущей инструкции, в моем случае .
Пользователь: pi, пароль: ваш пароль, все как указывали в файле настроек. Если всё сделано правильно, картина будет такой:
Добавляем в список на скачивание сам торрент-файл:
И наблюдаем за процессом. Или не наблюдаем, Transmission справится и без нас.
Если нам нужна возможность не только иметь доступ к скачанным файлам (то есть возможность увидеть их и скопировать к себе на компьютер), но и свободно добавлять, изменять или удалять файлы в папке Downloads по сети с компьютеров любого локального пользователя, нужно выполнить такие команды:
cd /mnt/tm sudo chmod a=rwx -R Downloads
Где a — это «все», rwx — «могут читать, записывать и исполнять файлы», -R — «рекурсивно» (то есть на любую глубину вложения) в папке Downloads, расположенной по пути /mnt/tm. Полная свобода.
Теперь удалять и изменять скачанные файлы можно не только через веб-интерфейс самого Transmission, но и просто по сети, в Finder или любом другом файловом менеджере.
Читайте также:
PLEX — это очень мощный каталогизатор и медиасервер, когда-то отпочковавшийся от проекта XBMC, но развившийся намного лучше, интереснее и в данный момент семимильными шагами движущийся в том же направлении, что и Netflix с Amazon Prime Video — то есть, в сторону международного стримингового сервиса. Сегодня в каталоге PLEX больше 130 телеканалов и 20000 классических фильмов от студий Warner Brothers, Crackle, Lionsgate, MGM и прочих.
Но о локальном медиа, хранящемся на ваших устройствах, разработчики не забывают, поэтому как серверная, так и клиентская часть существуют под все мыслимые и немыслимые платформы.
Для начала необходимо зарегистрировать учетную запись на сайте plex.tv. Это позволит синхронизировать настройки сервера и клиентских приложений, организовывать передачу за пределы домашней сети, и так далее. Нужный и полезный шаг. После этого займемся установкой.
Серверную часть можно установить на вот такие программные и аппаратные платформы:
Наш выбор — Linux, но скачивать мы ничего не будем, а привычно отправимся в командную строку. Логинимся по SSH и, для начала, обновляем систему:
sudo apt update sudo apt upgrade
И дальше собственно установка PLEX Media Server:
sudo apt install apt-transport-https
wget https://downloads.plex.tv/plex-keys/PlexSign.key
sudo apt-key add PlexSign.key
echo deb https://www.plex.tv/media-server-downloads/ public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list
sudo apt update
sudo apt install plexmediaserver
Чтобы сделать обновление PLEX частью системных обновлений, нужно вбить всего две команды:
echo deb https://www.plex.tv/media-server-downloads/ public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list
и
curl https://downloads.plex.tv/plex-keys/PlexSign.key | sudo apt-key add -
Это всё. В дальнейшем привычные команды обновления системы будут заодно обновлять и сам PLEX.
sudo apt update sudo apt upgrade
Готово! Можно приступать к первичной настройке.
Помните пункт «Добавляем немного комфорта» выше по тексту? Вот тем крохотным шажком для одной Raspberry мы сэкономили кучу времени для всего человечества. Вместо того, чтобы одними консольными командами создавать папки для контента и другими консольными командами назначать им права доступа, мы просто зайдем по сети в папку Downloads и привычным способом создадим там папки Movies, Music, TV Shows и Other Videos.
Учитывая, что системный пользователь pi наделен правами владельца всего содержимого папки Downloads, у PLEX Media Server не будет никаких проблем с обработкой коллекции фильмов, музыки, сериалов и домашнего видео.
Для доступа в панель управления в бразуере переходим по ссылке http://<ip address of your server>:32400/web/index.html
, что в моем случае, как мы все помним, означает , а в вашем — что-то своё.
Здесь нас встречает интерфейс с огромным количеством настроек, которое может испугать неподготовленного пользователя. Поэтому вкратце пройдемся по основным.
Для начала в верхнем правом углу найдем пиктограмму, отвечающую за учетную запись и залогинимся. С этого момента настройки сервера будут доступны как в локальной сети, так и через учетную запись прямо на сайте PLEX. Ну и сразу же переходим в настройки, нажав на пиктограмму с инструментами.
На что нужно обратить внимание:
На этом, в общем-то, всё. Остальные настройки, вроде параметров транскодинга или включения DLNA-сервера — исключительно в вашем ведении, в зависимости от поставленных задач, клиентских устройств и так далее.
Могу заметить, что на дефолтных настройках моя Raspberry Pi 4 воспроизвела 4K HDR-10 BD-Remux размером 92 ГБ даже не поперхнувшись. В качестве клиента выступала Apple TV 4K с установленным приложением PLEX, подключенная по HDMI. Обложку, кадры, информацию о фильме и так далее PLEX Media Server добавил в полностью автоматическом режиме.
Список платформ, для которых у PLEX есть клиентские приложения, впечатляет еще больше, чем список платформ для серверной части. Вгляните сами, тут есть практически любое устройство, способное воспроизводить медиа:
Ссылку на скачивание нужного вам приложения можно найти на странице Устройства и Приложения официального сайта сервиса.
Приятного просмотра!
К большому сожалению, сервис ретро-игр PLEX Arcade невозможно запустить, если серверная часть установлена на Raspberry Pi и вообще любой Linux-сервер. Поэтому сейчас мы будем превращать нашу «малинку» в ретро-консоль.
Для того, чтобы играть на Raspberry Pi в ретро-игры с самых разнообразных платформ, начиная с ZX Spectrum и заканчивая PlayStation One, разработано 4 продукта: RetroPie, Recalbox, Lakka и Batocera.
Все они чем-то похожи, но есть и довольно важные различия. Начнем с того, о чем упоминалось в самом начале первой статьи цикла: все производители ПО для Raspberry предпочитают выпускать его в виде образов операционной системы. То есть скачали образ, записали на карточку microSD, вставили в слот — и вот вам готовый к работе микрокомпьютер с единственной функцией.
Если так делать, количество Raspberry Pi в доме превысит любые разумные пределы. Именно поэтому в данных статьях рассматривается установка любого сервиса в качестве приложения, а не ОС. Так вот, если подходить к вопросу создания игровой консоли из Raspberry Pi, единственным выбором будет RetroPie. Только у этого продукта предусмотрена установка в качестве приложения для Raspbian, а не только в виде самостоятельной ОС.
Я протестировал эту возможность и должен сказать, что затраченные усилия не стоили того. Если игры для 8-битных приставок, вроде NES (известной в бывшем СССР под названием «Dendy») можно с натяжкой считать играбельными, то когда речь идет об эмуляции PlayStation, все становится совсем плохо.
Поэтому пришлось смириться и принять тот факт, что игровая эмуляция может быть качественной только в случае использования отдельной Respberry Pi в качестве игровой приставки.
Далее я столкнулся с вопросами хранения и запуска игр с внешних USB HDD, поддержки геймпадов различных производителей, простоты интерфейса и удобства настроек. RetroPie, Recalbox, и Batocera в качестве движка используют EmulationStation, тогда как Lakka стоит особняком и использует RetroArch с интерфейсом, максимально похожим на XMB в PlayStation 3.
Что касается возможности хранения и запуска игр с внешних носителей, то Batocera здесь несколько проигрывает: здесь хоть и предусмотрена такая возможность, но только с определенной структурой папок в корне внешнего диска, что не всегда комфортно.
Что касается поддерживаемых платформ, то здесь Lakka несколько уступает конкурентам, зато с лихвой восполняет это невероятной производительностью и удобством «из коробки». Геймпады от PlayStation 4 распознаются молниеносно, не требуя дополнительных действий и первичного подключения к Raspberry Pi кабелем.
В итоге, протестировав все 4 игровых продукта 5 раз (RetroPie по описанным выше причинам тестировался дважды), я остановил свой выбор на наиболее технологичном проекте — Lakka. Его мы сейчас и будем устанавливать.
С его помощью мы отформатируем карточку microSD и запишем на нее образ Lakka OS. Приложение существует в вариантах для Windows, Linux или macOS и доступно по ссылке.
Важно! Владельцам Raspberry Pi 4 с 8 ГБ оперативной памяти нужно скачать так называемый nightly build — сборку, адаптированную под новые модели «малинки».
Для этого перейдите по ссылке, прокрутите страницу в самый низ и найдите каталог с самой свежей датой. Внутри каталога найдите подкаталог RPi4.arm, а в нем файл с расширением .img.gz. Это и есть образ, который мы запишем на карточку microSD.
Если у вас любая другая версия Raspberry Pi, выберите свою модель из списка на этой странице.
Запускаем balenaEtcher, выбираем образ Lakka, указываем путь к microSD и ждем окончания процесса. Сам процесс занимает около минуты, так что долго ждать не прийдется.
Учитывая, что мы с вами делаем игровую консоль, вполне понятно, что Raspberry Pi уже подключена к телевизору (или ресиверу, в зависимости от ваших предпочтений и комплекта оборудования). Также при первом запуске необходима подключенная по USB клавиатура. Мышь не потребуется, зато геймпад можно уже положить рядом с собой. HDMI-порт на Raspberry Pi используем тот, что расположен ближе к гнезду питания.
На этом всё. Lakka определит конфигурацию оборудования, перезапустит Raspberry Pi и встретит нас симпатичным интерфейсом в стиле PlayStation 3.
Для комфортной работы с Lakka нужно проделать пару нехитрых манипуляций, прежде чем раз и навсегда отключить клавиатуру.
hdmi:CARD=vc4hdmi1,DEV=0
А затем выбираем пункт Restart RetroArch.
echo "TIMEZONE=Europe/Rome" > /storage/.cache/timezone
Где вместо Europe/Rome подставляем любое нужное значение из списка часовых поясов с Википедии. Перезагрузка и вот уже на экране правильное время.
В принципе, каких-то жестких требований к эмуляции игр Lakka не предъявляет, за исключением эмуляции PlayStation One. Для корректной работы вам понадобятся файлы BIOS от оригинальной приставки. Поскольку распространение этих файлов с точки зрения Sony является пиратством, вам прийдется нагуглить их самостоятельно. Подходят следующие файлы:
MD5SUM | Name |
---|---|
8dd7d5296a650fac7319bce665a6a53c | scph5500.bin |
490f666e1afb15b7362b406ed1cea246 | scph5501.bin (Can be renamed from scph7003.bin) |
32736f17079d0b2b7024407c39bd3050 | scph5502.bin |
Их (любой или все вместе) нужно положить в папку /System на Raspberry Pi. Это можно сделать просто по сети, так как Lakka по умолчанию разрешает гостевой доступ по Samba.
Остается только просканировать папки с играми, которые в случае с Lakka могут располагаться где угодно — на microSD с системой или на внешнем USB-диске. Если есть сильное желание, то можно для складирования игр использовать любое облако с поддержкой WebDAV, подмонтировав его к файловой системе Lakka, но на мой взгляд это уже перебор. Впрочем, вам-то ведь никто не запрещает экспериментировать?
Папку с играми сканируют через соответствующий пункт меню Lakka: ➕ → Scan Directory. Подключенный внешний диск со всей структурой папок будет виден под именем вроде sda1-ata-DISK_NAME_VENDOR-XYZ. Выбрав нужную папку, запускаем сканирование пунктом <Scan This Directory> и возвращаемся в основное меню.
Здесь нас уже будут ждать наши игры, рассортированные по платформам. При первом запуске игры Lakka попросит уточнить, какой именно движок использовать для её запуска. В случае с играми от PlayStation выбираем PCSX ReARMed.
Во время игры можно нажать на геймпаде универсальную кнопку PS, чтобы попасть в меню тонких настроек игры. Здесь в случае с эмуляцией NES можно настроить турбо-кнопки, а для эмуляции PlayStation включить удвоение пикселов, чтобы картинка выглядела более гладкой на современных телевизорах с высоким разрешением. Из этого же меню можно запустить запись видео и даже стриминг в YouTube или Twitch, если есть такое желание.
На этом, в общем-то, всё. Образы дисков для PlayStation создатели Lakka рекомендуют брать с сайта ReDump, но это не обязательное условие. Главное, чтобы образ диска с игрой был в формате BIN+CUE. Образы игр для NES, SNES и так далее — прекрасно работают даже из архивов, поэтому скачав, например, коллекцию «No-Intro» (чистые образы оригинальных игр) или «GoodNES» (коллекция с бета-версиями, переводами и прочим «мусором»), их можно не распаковывать из архивов, а загружать в папку с играми как есть.
Приятной игры!
На этом цикл статей об использовании Raspberry Pi в домашних условиях можно считать завершенным. Разумеется, перечисленными сервисами возможности Raspberry Pi не ограничиваются, но в домашних условиях этого уже достаточно, чтобы потраченные на «малинку» деньги окупились полученным комфортом и удовольствием. А приобрести Raspberry Pi для своих экспериментов можно по ссылке.
Читайте также:
Leave a Reply