"RetroPie" for Udoo - compiling Emulationstation

Discussion in 'Linux Ubuntu' started by cpw83, Sep 29, 2014.

  1. cpw83

    cpw83 New Member

    Joined:
    Apr 16, 2014
    Messages:
    2
    Likes Received:
    0
    Hi,

    I'm trying to create "RetroPie for Udoo" (http://blog.petrockblock.com/retropie/) on my Udoo Quad. RetroPie is a script for the Raspberry Pi, mainly installing Retroarch/libretro, some other emulators and different other stuff like drivers for PlayStation 3 and Xbox 360 controllers. The cherry on top is Emulationstation as a frontend to select and start the games.

    It's quite nice on a RasPi, but runs into performance issues, e.g. low framerates and crackling sound with some emulators, that can only be adressed by overclocking. Several sources say that for them everything will work fine at 950 MHz - which is quite some overclocking for a CPU with nominal 700 MHz, so it might or might not work stable, depending on the power source and cooling amongst other things.

    So I thought: Why not give that board with the 1 GHz quadcore ARM I've got lying around a try?

    I'm a software developer (primarily PHP, Java and databases, mostly web based stuff), but I have pretty much no experience with C++. So keep in mind: I pretty much don't know what I'm doing here :)

    My starting point is trying to compile Emulationstation on Udoobuntu 1.0.

    I tried to adapt the RasPi installation instructions (http://emulationstation.org/gettingstar ... standalone) as close as possible. Aloshi (developer of Emulationstation) over at Github (https://github.com/Aloshi/EmulationStation/issues/252) kindly helped me to sorted out some problems, but now I'm stuck at OpenGL.

    Here's what I did so far:

    Code:
    sudo apt-get install -y libudev-dev libasound2-dev libdbus-1-dev libfreeimage-dev libfreetype6-dev libeigen3-dev libcurl4-openssl-dev libasound2-dev cmake libxext-dev libgl1-mesa-dev git
    For compiling Emulationstation at least g++-4.7 ist needed. As this is not in Udoobuntu's official repositories, I added ubuntu-toolchain to install it from there:

    Code:
    sudo add-apt-repository ppa:ubuntu-toolchain-r/test
    sudo apt-get update
    sudo apt-get install g++-4.8
    I'm using 4.8, because 4.7 crashed while compiling ES:

    Code:
    Internal compiler error: Error reporting routines re-entered.
    Please submit a full bug report,
    with preprocessed source if appropriate.
    See <file:///usr/share/doc/gcc-4.7/README.Bugs> for instructions.
    Preprocessed source stored into /tmp/ccaHSkKn.out file, please attach this to your bugreport.
    make[2]: *** [es-core/CMakeFiles/es-core.dir/src/GuiComponent.cpp.o] Error 1
    make[1]: *** [es-core/CMakeFiles/es-core.dir/all] Error 2
    make: *** [all] Error 2
    Similar to Raspbian libsdl2-dev isn't in Udoobuntu's repositories either, so I went on compiling it:

    Code:
    wget http://libsdl.org/release/SDL2-2.0.3.tar.gz
    tar xvfz SDL2-2.0.3.tar.gz
    rm SDL2-2.0.3.tar.gz
    pushd SDL2-2.0.3
    ./configure
    make
    sudo make install
    popd
    rm -rf SDL2-2.0.3
    Aloshi and nilsbyte recommend version 2.0.1, which I substituted with 2.0.3 - 2.0.1 wouldn't compile with an compiler error message that looked like a syntax error in the sources (whitespace after a negotiation exclamation mark), so I looked for the most recent version, which seems to compile just fine.

    The Boost-libraries in Udoobuntu's repositories (1.48.0.2) will also lead to a compilation error - as I have no idea on how to update those properly, I took the probably very dirty approach of just installing armhf DEBs from Debian Wheezy and resolving dependencies by trial & error:

    Code:
    wget http://ftp.de.debian.org/debian/pool/main/b/boost1.49/libboost1.49-dev_1.49.0-3.2_armhf.deb
    wget http://ftp.de.debian.org/debian/pool/main/b/boost-defaults/libboost-dev_1.49.0.1_armhf.deb
    wget http://ftp.de.debian.org/debian/pool/main/b/boost1.49/libboost-system1.49.0_1.49.0-3.2_armhf.deb
    wget http://ftp.de.debian.org/debian/pool/main/b/boost1.49/libboost-system1.49-dev_1.49.0-3.2_armhf.deb
    wget http://ftp.de.debian.org/debian/pool/main/b/boost-defaults/libboost-system-dev_1.49.0.1_armhf.deb
    wget http://ftp.de.debian.org/debian/pool/main/b/boost-defaults/libboost-filesystem-dev_1.49.0.1_armhf.deb
    wget http://ftp.de.debian.org/debian/pool/main/b/boost-defaults/libboost-date-time-dev_1.49.0.1_armhf.deb
    wget http://ftp.de.debian.org/debian/pool/main/b/boost1.49/libboost-filesystem1.49.0_1.49.0-3.2_armhf.deb
    wget http://ftp.de.debian.org/debian/pool/main/b/boost1.49/libboost-filesystem1.49-dev_1.49.0-3.2_armhf.deb
    wget http://ftp.de.debian.org/debian/pool/main/b/boost1.49/libboost-date-time1.49-dev_1.49.0-3.2_armhf.deb
    wget http://ftp.de.debian.org/debian/pool/main/b/boost1.49/libboost-date-time1.49.0_1.49.0-3.2_armhf.deb
    wget http://ftp.de.debian.org/debian/pool/main/b/boost1.49/libboost-serialization1.49-dev_1.49.0-3.2_armhf.deb
    wget http://ftp.de.debian.org/debian/pool/main/b/boost1.49/libboost-serialization1.49.0_1.49.0-3.2_armhf.deb
    
    sudo dpkg --install libboost1.49-dev_1.49.0-3.2_armhf.deb
    sudo dpkg --install libboost-dev_1.49.0.1_armhf.deb
    sudo dpkg --install libboost-system1.49-dev_1.49.0-3.2_armhf.deb
    sudo dpkg --install libboost-system1.49.0_1.49.0-3.2_armhf.deb
    sudo dpkg --install libboost-system-dev_1.49.0.1_armhf.deb
    sudo dpkg --install libboost-serialization1.49.0_1.49.0-3.2_armhf.deb
    sudo dpkg --install libboost-serialization1.49-dev_1.49.0-3.2_armhf.deb
    sudo dpkg --install libboost-filesystem1.49.0_1.49.0-3.2_armhf.deb
    sudo dpkg --install libboost-filesystem1.49-dev_1.49.0-3.2_armhf.deb
    sudo dpkg --install libboost-filesystem-dev_1.49.0.1_armhf.deb
    sudo dpkg --install libboost-date-time1.49.0_1.49.0-3.2_armhf.deb
    sudo dpkg --install libboost-date-time1.49-dev_1.49.0-3.2_armhf.deb
    sudo dpkg --install libboost-date-time-dev_1.49.0.1_armhf.deb
    However this seems to be working so far.

    Then I went on compiling Emulationstation:

    Code:
    git clone https://github.com/Aloshi/EmulationStation
    cd EmulationStation
    git checkout unstable
    cmake -D CMAKE_CXX_COMPILER=g++-4.8 .
    make

    Now I'm stuck at

    Code:
    make[2]: *** No rule to make target '/usr/lib/arm-linux-gnueabihf/libGL.so', needed by 'emulationstation'. Stop.
    make[1]: *** [es-app/CMakeFiles/emulationstation.dir/all] Error 2
    make: *** [all] Error 2
    Aloshi said:

    I tried libgles2-mesa-dev, which doesn't help either.

    Any suggestions?
     
  2. ekirei

    ekirei Administrator

    Joined:
    Jun 14, 2013
    Messages:
    78
    Likes Received:
    3
    I don't think that this is a trivial issue however you can try to re-link the right OpenGl libraries with running the command:

    Code:
    sudo /opt/gpulink-gl.sh
     
  3. Grandmaster B

    Grandmaster B New Member

    Joined:
    Feb 19, 2015
    Messages:
    1
    Likes Received:
    0
    The OpenGL library is in "libgl1-mesa-glx" package.

    However, if you have this bug, it is likely that the package is already installed but broken.

    If the previous answer does not fix the problem for you, you have to force full reinstallation, like that:

    Code:
    sudo apt-get install libgl1-mesa-glx --reinstall
    
     
  4. bhakta

    bhakta New Member

    Joined:
    Nov 22, 2013
    Messages:
    16
    Likes Received:
    0
    Anyone have luck with this? I had problems with libboost-locale and I think I resolved that using same dirty approach
    Now after make
    collect2: error: Id returned 1 exit status
    make[2]: *** [emulationstation] Error 1
    make[1]: *** [es-app/CMakeFiles/emulationstation.dir/all] Error 2
    make: *** [all] Error 2

    Thanks
     

Share This Page