Преди доста време бях пуснал едно промо клипче, в което се обяснява и демонстрира за какво става дума – цък. За тези, които ги мързи да гледат – идеята на проекта е да се обедини в едно устройство, управлявано от едно място мултимедийна станция базирана на KODI и ретро игрова конзола базирана на RetroPie. Това ръководство използва XBIAN, но на същия принцип можете да използвате всяка друга KODI центрирана операционна система.
XBIAN е операционната система, която започнах да използвам на Raspberry Pi 1. Обективно в тази ниша има 3 операционни системи, които са KODI центрирани – XBIAN, OpeneELEC и OSMC. След четене и сравняване на benchmark-ове, се спрях на XBIAN, защото е по-бърз от OSMC и по-функционално от OpenELEC. Разликата между трите можете да намерите при малко повече ровене. Освен това XBIAN има много добра поддръжка на lib CEC, който ако сте изгледали клипчето, ще разберете, че е това, което ви дава контрола на операционната система с дистанционното на телевизора.
RetroPie проекта има собствен image за RaspberryPi, в който, сред другите екстри има KODI. За съжаление, не успях да намеря начин да подкарам CEC поддръжката вътре в Emulation Station (front end-a на RetroPie), а не ми се щеше при всеки рестарт на кутийката да се налага да стигам до game controller-a за да включвам KODI. За това KODI центрираната операционна система беше по-добрия избор. Оставаше само да автоматизирам процеса.
Обективно в самата инсталация на отделните части няма нищо сложно или страшно. Няма нищо, което да е различно от нормална инсталация на XBIAN или на RetroPie. Проблема идва при последващия bridge. Предупреждавам, че моето решение е hacky – не е най-елегантното нещо което сте виждали, но върши безотказна работа.
Самият процес се изразява в следните стъпки:
За последните две стъпки имате -p0 patch-ове, но ще стигнем и до там.
Удобна и подробна инструкция за това можете да намерите на сайта на XBIAN в частта Getting Started
Тъй като XBIAN използва busybox за част от основните bash команди, а RetroPie setup използва флагове на unzip, които busybox не поддържа, най добре е да инсталираме ZIP и да сложим unzip да сочи към zip.
$ sudo rm /usr/local/bin/unzip $ sudo apt-get install libzip2 libzip-dev
$ sudo apt-get install git
$ cd ~ $ git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git
$ cd RetroPie-Setup $ sudo ./retropie_setup.sh
От отворилия се прозорец изберете Binary-base installation (recommended)
Изчакайте едно прилично време през което ще се реди текст за инсталиране и разархивиране на различни неща. Както и много не успели да се инсталират пакети. Не се бойте – нормално е. За това и има 2 стъпки с инсталация.
$ cd logs $ gunzip "последния".log.gz
Прегледайте лога и инсталирайте всички пакети които не са били инсталирани. Пакет който със сигурност не може да се инсталира е libcurl4-openssl-dev, но това не бива да ви притеснява (всичко си работи ок при мен и без него).
Изпълняваме стъпка 5 отново.
$ sudo nano /etc/sudoers.d/xbian
Към списъка на разрешените за достъп без парола елементи добавяте /bin/openvt и/usr/sbin/service
$ sudo wget https://gist.githubusercontent.com/satanasov/cd1fd212a52901db144d6375f9af9196/raw/33490e3c0a75e06263caa2885928a14377ec8006/retroswich.sh -O /opt/retroswich.sh $ sudo chmod a+x /opt/retroswich.sh
Тъй като RetroPie използва виртуалната /dev/tty конзола, която по някаква причина е недостъпна под XBIAN се налага да се нанесе малка промяна в runcommand скрипта, за да тръгват игрите (просто променяме виртуалната /dev/tty на съвсем реалната /dev/tty1)
$ cd ~ $ wget https://gist.githubusercontent.com/satanasov/32fa5074a5d4f86c5cd4f1d7014d0953/raw/5feebb9b02b0d7aae2cfe2f5e5e599aa976924cf/runcommand.patch -O runcommand.patch $ sudo patch -p0 < runcommand.patch
Обективно това не е съвсем нужно, но ако не искате всеки път да трябва да стартирате bridge скрипта от конзола е добре да направите тази промяна в Home.xml (тя добавя малкото бутонче с пъзела, което виждате на кличето)
$ cd ~ $ wget https://gist.githubusercontent.com/satanasov/11a830f1a2d72b9593ae7e83f6c47b32/raw/31c740ceb6e6893a35fdc645677957ffb7d919fa/confluence.menu.patch -O confluence.menu.patch $ sudo patch -p0 < confluence.menu.patch
За да видите, че няма злоумишлен код, ето и gist-овете на всички скриптове:
retroswich.sh
runcommand.patch
confluence.menu.patch
Надявам се това да помогне на някого, защото комбинацията между двете, както можете да видите от клипчето е яка!
Ваш,
Lucifer
Вашият коментар