Transformácia OlinuXino A20 na retro hraciu konzolu

04.10.2014 | 18:00 | Mirecove dristy | Miroslav Bendík

Témou dnešného blogu bude vytvorenie root filesystému pre OlinuXino A20 Micro s Qt 5 SDK a jeho použitie na takú somarinu ako je retro hracia konzola (emulátor segy genesis).

Systémové požiadavky

Na kompiláciu vlastného SDK budeme potrebovať C / C++ kompilátor a GNU make (v debiane balíček build-essential). Aby bola kompiláia jednoduchá vytvoril som jednoduchý auto build systém. Stačí stiahnuť a v adresári spustiť make. Kompilácia zaberie asi 10GB priestoru na disku, takže pozor na voľné miesto.

Po poriadnej chvíli by mala kompilácia skončiť výpisom:

To create sd image type command:

sudo board/a20_olinuxino/make-sdimg.sh .../output/images/rootfs.tar 60 .../output/images

Po spustení príkazu sa vytvorí obraz SD karty output/images/a20_olinuxino.sdimg.

Nahrať na SD kartu sa dá nasledujúcim príkazom, kde X je konkrétne zariadenie s SD kartou (nepomýliť so systémovým diskom).

dd if=output/images/a20_olinuxino.sdimg of=/dev/sdX bs=4k

Systémový obraz je pomerne minimalistický (screenshot).

olinuxino a20

Emulátor

Ako emulátor som použil svoj fork emultáora generator. Ako build systém je použitý CMake, takže cross kompilácia vytaduje napísať si toolchain arm.cmake:

SET(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_ARCH "arm")
SET(CMAKE_SYSTEM_VERSION 1)


SET(CMAKE_SYSROOT /toolchain/buildroot-a20-olinuxino/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot)
SET(CMAKE_PREFIX_PATH /toolchain/buildroot-a20-olinuxino/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot)
SET(CMAKE_LIBRARY_PATH /toolchain/buildroot-a20-olinuxino/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/lib)
SET(CMAKE_INCLUDE_PATH /toolchain/buildroot-a20-olinuxino/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include)
SET(CMAKE_C_COMPILER   arm-cortex_a7-linux-gnueabi-gcc)
SET(CMAKE_CXX_COMPILER arm-cortex_a7-linux-gnueabi-g++)
SET(CMAKE_FIND_ROOT_PATH /toolchain/buildroot-a20-olinuxino/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot)


SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

SET(OPENGL_INCLUDE_DIR /toolchain/buildroot-a20-olinuxino/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include

Makefile sa vygenerujú príkazom (out of source build, zdrojáky by mali byť v adresári ../sega-generator, natívny build ../sega-generator-build):

cmake -DCMAKE_TOOLCHAIN_FILE=../arm.cmake -DUSE_QT_GUI=off -DUSE_QML_GUI=on -DUSE_SDL_AUDIO=off -DIMPORT_EXECUTABLES=../sega-generator-build/ImportExecutables.cmake ../sega-generator

Už len nakopírovať na kartu (niekde do /usr/bin) a spustiť ;-)

Hardvér

Ako zobrazovadlo používam 7" dotykový LCD. Ako vstupné zariadenie by bol zrejme najlepší nejaký gamepad, ale ja osobne používam obal na tablet s integrovanou klávesnicou. Urobiť z toho prenosné zariadenie je pomerne jednoduché - stačí pripojiť LiPo baterku.

Výsledok

Tadaaa

Olinuxino as sega genesis emulator

Prílohy

    • RE: Transformácia OlinuXino A20 na retro hraciu konzolu 04.10.2014 | 18:27
      Avatar luko   Návštevník

      vyzerá to zaujimavo

      • RE: Transformácia OlinuXino A20 na retro hraciu konzolu 05.10.2014 | 07:36
        Avatar frantisek745   Návštevník

        no az moc zaujmavo :) keby sa dalo este gpio vyuzit a pripojit tam joystic a klavesy :) by to bola parada :) len ci je autor z BA ale asi nie

        • RE: Transformácia OlinuXino A20 na retro hraciu konzolu 05.10.2014 | 12:03
          Avatar Miroslav Bendík Gentoo  Administrátor

          Myslím, že väčšina súčasných gamepadov sa pripája cez USB. Cez GPIO keby som mal čas tak by som aj chcel skúsiť rozbehať joystick z atari 2600, ale no mám moc práce takže asi nie. Mimochodom som z okolia Popradu.

      • RE: Transformácia OlinuXino A20 na retro hraciu konzolu 05.10.2014 | 19:36
        Avatar bedňa antiX, Devuan, LegacyIce  Administrátor

        Tak, tak pekná hračka.

        Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org