Transformácia OlinuXino A20 na retro hraciu konzolu
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).
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
Prílohy
- olinuxino_linux_tmb.jpg (97.5 kB)
- olinuxino_linux.jpg (1.1 MB)
Pre pridávanie komentárov sa musíte prihlásiť.
vyzerá to zaujimavo
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
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.
Tak, tak pekná hračka.