У попередній статті циклу ми з вами розбиралися з установкою на 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=vc4hdmi,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 для своїх експериментів можна за посиланням.
Читайте також:
View Comments
вогонь стаття, чекав 2ї частини, і всерйоз задумався купити малину
Дякую!