Retropie 4.x on Odroid C2
-
@roleo just tested on a clean minimal Ubuntu 16.04 image and autostart worked fine (ES was started on boot). If you are having trouble I will need some help to reproduce it (step by step from a fresh image etc).
-
@BuZz said in Retropie 4.x on Odroid C2:
@roleo just tested on a clean minimal Ubuntu 16.04 image and autostart worked fine (ES was started on boot). If you are having trouble I will need some help to reproduce it (step by step from a fresh image etc).
I'm wondering - all I had basically done was loaded the minimal then do an apt-get update && apt-get upgrade and then installed retropie using the script and then I had the errors loading ES. I had some issues with apt-get upgrade though (and this morning I tried it and it breaks the boot partition). After reading on the forum it looks like there is some problems with the build of the minimal so I'm actually trying the mate now.
Anyways just curious if in your build where ES lauched fine did you run the apt-get upgrade first? Maybe some file is breaking there...
-
@ElementZero I didn't update first. I just created an
odroid
user on the minimal image, and added the user to the video/sudo/input groups - I then used that user to install retropie-setup. -
ok - yeah that's basically exactly what I had done the first time except I did the upgrade first. Let me try on mine without doing the upgrade and see if it just works, if so then it would seem the upgrade does something funky (which wouldn't be surprising seeing the errors during upgrade and other forum posts about it).
First though I'm going to finish this install w/ the mate image and see if that runs fine. Apparently there is no problem with doing the upgrade/dist-upgrade with the mate image and it does not give the depmod errors about the kernel version.
-
@BuZz
Ok, I will try again tomorrow. -
@ElementZero Unfortunately I had to put this on hold since my HDMI port apparently broke.
I can say that the minimal image IS broken if you do apt-get but apparently it's caused by u-boot being bad so if you hold that back then the upgrade is just fine.
-
@BuZz
I tried with a minimal image and autostart works properly.
Thank you.
But I had the same problem with EmulationStation as ElementZero: I changed the flag from -j4 to -j2 to complete the build process. -
@roleo Thanks. I will lower it to j2 by default
-
@BuZz Dear BuZz, I have just testted the trunk (61085b9) by
git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git
and it uses SDL 2.0.5. This version with Mali failed like following:
/home/maho/RetroPie-Setup/tmp/build/sdl2/2.0.5+1mali/src/video/mali-fbdev/SDL_malivideo.c:128:5: error: ISO C90 forbids mixed declarations and
code [-Werror=declaration-after-statement]
int fd = open("/dev/fb0", O_RDWR, 0);
^
/home/maho/RetroPie-Setup/tmp/build/sdl2/2.0.5+1mali/src/video/mali-fbdev/SDL_malivideo.c:132:5: error: ISO C90 forbids mixed declarations and
code [-Werror=declaration-after-statement]
struct fb_var_screeninfo vinfo;
^
/home/maho/RetroPie-Setup/tmp/build/sdl2/2.0.5+1mali/src/video/mali-fbdev/SDL_malivideo.c:145:5: warning: ignoring return value of 'system', de
clared with attribute warn_unused_result [-Wunused-result]
system("setterm -cursor off");
^
/home/maho/RetroPie-Setup/tmp/build/sdl2/2.0.5+1mali/src/video/mali-fbdev/SDL_malivideo.c: In function 'MALI_VideoQuit':
/home/maho/RetroPie-Setup/tmp/build/sdl2/2.0.5+1mali/src/video/mali-fbdev/SDL_malivideo.c:185:5: warning: ignoring return value of 'system', de
clared with attribute warn_unused_result [-Wunused-result]
system("setterm -cursor on");
^
cc1: some warnings being treated as errors
.Looks like Mali part uses C99> syntax. You may want to fix it.
Best,
Nakata Maho -
@maho this should be resolved now.
-
@BuZz thanks for your fastest commit. I veerified that SDL2+Mali is no longer broken.
Best,
Nakata Maho -
@BuZz
Thanks - some games are working! and I noticed mame2010 is broken as follows:
g++ -DCRLF=2 -DDISABLE_MIDI=1 -DINLINE="static inline" -DNDEBUG -DFLAC__NO_DLL
-DNATIVE_DRC=drcbe_x86_be_interface -DDISABLE_MIDI -DGIT_VERSION="" 81c75bb""
-D__LIBRETRO__ -fsigned-char -finline -fno-common -fno-builtin -fweb -frename-r
egisters -falign-functions=16 -fsingle-precision-constant -D__LIBRETRO__ -fstric
t-aliasing -fno-merge-constants -DALIGN_INTS -DALIGN_SHORTS -ffast-math -fPI
C -pipe -O3 -fno-strict-aliasing -O2 -march=native -ftree-vectorize -funsafe-mat
h-optimizations -pipe -Wall -Wcast-align -Wundef -Wformat-security -Wwrite-strin
gs -Wno-sign-compare -Wno-conversion -I./src/osd/retro/libretro-common/include -
I./src/mame -Iobj/retro/mame/layout -I./src/emu -Iobj/retro/emu -Iobj/retro/emu/
layout -I./src/lib/util -I./src/lib -I./src/osd -I./src/osd/retro -I./src/lib/e
xpat -I./src/lib/util -I./src/lib/libjpeg -fno-delete-null-pointer-checks -x c+- -std=gnu++98 -Woverloaded-virtual -c src/mame/drivers/albazc.c -o obj/retro/ma
me/drivers/albazc.o
In file included from ./src/emu/emu.h:54:0,
from src/mame/drivers/albazc.c:13:
./src/emu/eminline.h: In function ‘void* compare_exchange_ptr(void* volatile*, v
oid*, void*)’:
./src/emu/eminline.h:349:60: error: cast from ‘void*’ to ‘INT32 {aka int}’ loses
precision [-fpermissive]
result = compare_exchange32((INT32 volatile )ptr, (INT32)compare, (INT32)exch
ange);
^
./src/emu/eminline.h:349:76: error: cast from ‘void’ to ‘INT32 {aka int}’ loses
precision [-fpermissive]
Looks like add some flags for 64bit support to build.
Thanks,
Nakata Mahog++ -DCRLF=2 -DDISABLE_MIDI=1 -DINLINE="static inline" -DNDEBUG -DFLAC__NO_DLL
-DNATIVE_DRC=drcbe_x86_be_interface -DDISABLE_MIDI -DGIT_VERSION="" 81c75bb""
-D__LIBRETRO__ -fsigned-char -finline -fno-common -fno-builtin -fweb -frename-r
egisters -falign-functions=16 -fsingle-precision-constant -D__LIBRETRO__ -fstric
t-aliasing -fno-merge-constants -DALIGN_INTS -DALIGN_SHORTS -ffast-math -fPI
C -pipe -O3 -fno-strict-aliasing -O2 -march=native -ftree-vectorize -funsafe-mat
h-optimizations -pipe -Wall -Wcast-align -Wundef -Wformat-security -Wwrite-strin
gs -Wno-sign-compare -Wno-conversion -I./src/osd/retro/libretro-common/include -
I./src/mame -Iobj/retro/mame/layout -I./src/emu -Iobj/retro/emu -Iobj/retro/emu/
layout -I./src/lib/util -I./src/lib -I./src/osd -I./src/osd/retro -I./src/lib/e
xpat -I./src/lib/util -I./src/lib/libjpeg -fno-delete-null-pointer-checks -x c+- -std=gnu++98 -Woverloaded-virtual -c src/mame/drivers/albazc.c -o obj/retro/ma
me/drivers/albazc.o
In file included from ./src/emu/emu.h:54:0,
from src/mame/drivers/albazc.c:13:
./src/emu/eminline.h: In function ‘void* compare_exchange_ptr(void* volatile*, v
oid*, void*)’:
./src/emu/eminline.h:349:60: error: cast from ‘void*’ to ‘INT32 {aka int}’ loses
precision [-fpermissive]
result = compare_exchange32((INT32 volatile )ptr, (INT32)compare, (INT32)exch
ange);
^
./src/emu/eminline.h:349:76: error: cast from ‘void’ to ‘INT32 {aka int}’ loses
precision [-fpermissive]
- -std=gnu++98 -Woverloaded-virtual -c src/mame/drivers/albazc.c -o obj/retro/ma
-
following patch will fix build of lr-mame2010 on ODROID-C2 (apparently you want a cleaner patch, though. sorry).
--- RetroPie-Setup/scriptmodules/libretrocores/lr-mame2010.sh~ 2017-01-16 12:38:56.757032984 +0900
+++ RetroPie-Setup/scriptmodules/libretrocores/lr-mame2010.sh 2017-01-16 22:02:45.627500893 +0900
@@ -23,8 +23,8 @@
make clean
local params=()
isPlatform "arm" && params+=("VRENDER=soft" "ARM_ENABLED=1")- make "${params[@]}" ARCHOPTS="$CFLAGS" buildtools
- make "${params[@]}" ARCHOPTS="$CFLAGS"
- make "${params[@]}" ARCHOPTS="$CFLAGS" buildtools PTR64=1
- make "${params[@]}" ARCHOPTS="$CFLAGS" PTR64=1
rpSwap off
md_ret_require="$md_build/mame2010_libretro.so"
}
-
@maho please use a code block and format your post.
Thanks. There is a bunch of stuff that won't build still, but the most common modules should be OK. It should be considered a wip still.
-
@BuZz
sorry, lr-mame2010 was still broken at:
g++ -DCRLF=2 -DDISABLE_MIDI=1 -DINLINE="static inline" -DPTR64 -DNDEBUG -DFLAC__NO_DLL -DNATIVE_DRC=drcbe_x64_be_interf
ace -DDISABLE_MIDI -DGIT_VERSION="" 81c75bb"" -D__LIBRETRO__ -fsigned-char -finline -fno-common -fno-builtin -fweb -f
rename-registers -falign-functions=16 -fsingle-precision-constant -D__LIBRETRO__ -fstrict-aliasing -fno-merge-constants
-DALIGN_INTS -DALIGN_SHORTS -ffast-math -fPIC -pipe -O3 -fno-strict-aliasing -O2 -march=native -ftree-vectorize -fun
safe-math-optimizations -pipe -Wall -Wcast-align -Wundef -Wformat-security -Wwrite-strings -Wno-sign-compare -Wno-conver
sion -I./src/osd/retro/libretro-common/include -I./src/mame -Iobj/retro64/mame/layout -I./src/emu -Iobj/retro64/emu -Iob
j/retro64/emu/layout -I./src/lib/util -I./src/lib -I./src/osd -I./src/osd/retro -I./src/lib/expat -I./src/lib/util -I./
src/lib/libjpeg -fno-delete-null-pointer-checks -x c++ -std=gnu++98 -Woverloaded-virtual -c src/osd/retro/retrowork.c -o obj/retro64/osd/retro/retrowork.o
src/osd/retro/retrowork.c: In function ‘int osd_work_queue_wait(osd_work_queue*, osd_ticks_t)’:
src/osd/retro/retrowork.c:264:26: error: ‘osd_yield_processor’ was not declared in this scope
osd_yield_processor();
^
src/osd/retro/retrowork.c: In function ‘int osd_work_item_wait(osd_work_item*, osd_ticks_t)’:
src/osd/retro/retrowork.c:499:25: error: ‘osd_yield_processor’ was not declared in this scope
osd_yield_processor();
^
src/osd/retro/retrowork.c: In function ‘void* worker_thread_entry(void*)’:
src/osd/retro/retrowork.c:650:27: error: ‘osd_yield_processor’ was not declared in this scope
osd_yield_processor();
^
Makefile:686: recipe for target 'obj/retro64/osd/retro/retrowork.o' failedBest,
Nakata Maho -
Just wanted to add my thanks for your work on this. I've had my C2 sitting around for months, not getting much use. I installed everything last night. Haven't gotten a chance to test any emulators yet, but so far everything has compiled (other than Mame2010 and mupen64), and ES launches on autostart. Keep up the great work!
-
@maho I've not applied any fix. But your diff isn't readable due to not using a code block on the forum. Use three backticks. Having said that I know how to fix it and will do. Cheers
-
@jenkinl1302 a lot of arm optimisations are lost due to aarch64. If odroid had a 32bit version of their OS, performance on some emulators would be better. Some emulators are disabled currently due to build issues too.
However, the main stuff works.
-
Hi, following patch will fix build lr-mame2010. I verified that it builds.
$ git diff . diff --git a/scriptmodules/libretrocores/lr-mame2010.sh b/scriptmodules/libretrocores/lr-mame2010.sh index 1aa5538..69780ff 100644 --- a/scriptmodules/libretrocores/lr-mame2010.sh +++ b/scriptmodules/libretrocores/lr-mame2010.sh @@ -23,6 +23,7 @@ function build_lr-mame2010() { make clean local params=() isPlatform "arm" && params+=("VRENDER=soft" "ARM_ENABLED=1") + isPlatform "aarch64" && params+=("VRENDER=soft" "ARM_ENABLED=1" "PTR64=1") make "${params[@]}" ARCHOPTS="$CFLAGS" buildtools make "${params[@]}" ARCHOPTS="$CFLAGS" rpSwap off
-
Does anyone have a working image available to download? I have been banging my head against a wall for a week now following every lead trying to get this to work. I would pay for a working image at this point as I am beyond frustrated.
My steps:
Started with the 16.04 ubuntu minimal image dated 8/15/2016 (newest available)
sudo apt-get update && sudo apt-get upgrade
Added user
installed git
git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git
cd RetroPie-Setup
sudo ./retropie_setup.sh (I did not have any issues compiling)All of the core, main, opt, and driver packages I installed say (installed) and there didn't appear to be any compiling errors but when I run emulationstion I get:
lvl0: Error initializing SDL! mali-fbdev: Could not open framebuffer device lvl0: Renderer failed to initialize! lvl0: Window failed to intialize!
Several people say they tested it on a clean minimal image and everything works fine so what did I do wrong?
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.