Updater not working

I’m trying to use the “Update core info files” function from the menu, but all i get is “Failed: extracting ‘info.zip’”.

I have tried the following images on my raspberry pie 2: Lakka-RPi2.arm-devel-20151223094049-r21250-gd666dcf.img Lakka-RPi2.arm-devel-20151225180005-r21254-g2c76737.img Lakka-RPi2.arm-devel-20151217062825-r21245-g28184f3.img

but none of them is working. Also when trying the “Core updater” from the menu the screen flickers black for a few hundred milliseconds before the menu comes back.

if it’s any consolation (or help), I’ve seen the same behavior on Generic x86_64 (r21254)

not really any consolation…

When i look at the samba share through my windows pc and looking in the core folder, there is a info.zip and if i delete it and run “Update core info files” from lakka a new one will be created.

When i look at my cores folder on the raspberry (through ssh) i se a couple of mame .info files, but there is no .so files for them, i have downloaded mame2014_libretro.so from http://buildbot.libretro.com/nightly/linux/armhf/latest/ and after a chmod u+x on the file it shows up in the load core menu of lakka.

But then if i go go “Load Core” -> “Arcade (Mame 2014)” it just go back to main menu. If i check the info files it says “corename = ‘MAME 2014 (0.159)’” so i downloaded a pack with roms updated from 0.158 to 0.159. And then i go to “Load content” > “Select file and detect core” > select file > “Load archive with core” > “Arcade (MAME 2014)”. And it just goes black and menu started anew and the yellow OSD text of gamepad connected, like it does on boot.

when i use “journalctl --unit retroarch --follow” i get the following when trying to start a game: – Logs begin at Sun 2015-12-27 08:42:25 UTC. – Dec 27 09:00:22 Lakka retroarch[396]: Didn’t read whole file: /sys/devices/system/cpu/possible. Dec 27 09:00:24 Lakka systemd[1]: retroarch.service: Service hold-off time over, scheduling restart. Dec 27 09:00:24 Lakka systemd[1]: Stopped Retroarch. Dec 27 09:00:24 Lakka systemd[1]: Started Retroarch. Dec 27 09:00:43 Lakka systemd[1]: retroarch.service: Main process exited, code=killed, status=4/ILL Dec 27 09:00:43 Lakka systemd[1]: retroarch.service: Unit entered failed state. Dec 27 09:00:43 Lakka systemd[1]: retroarch.service: Failed with result ‘signal’. Dec 27 09:00:46 Lakka systemd[1]: retroarch.service: Service hold-off time over, scheduling restart. Dec 27 09:00:46 Lakka systemd[1]: Stopped Retroarch. Dec 27 09:00:46 Lakka systemd[1]: Started Retroarch. Dec 27 09:11:38 Lakka systemd[1]: retroarch.service: Main process exited, code=killed, status=4/ILL Dec 27 09:11:38 Lakka systemd[1]: retroarch.service: Unit entered failed state. Dec 27 09:11:38 Lakka systemd[1]: retroarch.service: Failed with result ‘signal’. Dec 27 09:11:40 Lakka systemd[1]: retroarch.service: Service hold-off time over, scheduling restart. Dec 27 09:11:40 Lakka systemd[1]: Stopped Retroarch. Dec 27 09:11:40 Lakka systemd[1]: Started Retroarch.

I dug into the problem regarding “Failed: extracting info.zip”

I’m using the 25 Dec 2015 nightly (r21254) on a x86_64 laptop

It appears that “info.zip” is successfully downloaded to /storage/cores/ Through the magic of unionfs, the same content also appears within /tmp/cores (use the command line and type “mount” to confirm that /tmp/cores is of type unionfs)

If you cd /tmp/cores and unzip info.zip, you will receive an error about “readonly file system” If you cd /storage/cores and unzip info.zip, it will unzip just fine.

You can confirm that the content within /storage/cores also appears within /tmp/cores as follows:


ls -l /tmp/cores/info.zip
ls -l /storage/cores/info.zip
(observe the file modification time)

touch /storage/cores/info.zip
ls -l /tmp/cores/info.zip
(observe how the file modification time on /tmp/cores/info.zip changed automatically)

My point… It looks as though the “Online Updater” in the RetroArch UI is properly downloading the content to /storage/cores (which is not read-only) but trying to extract it from /tmp/cores (which is apparently read-only).

Manually extracting problematic *.zip downloads from the command line within /storage/cores (or whatever download location for whatever asset) is a work-around.

That is a bit wierd, since when i tried getting MAME working i would download the mamexxxx_libretro.so files and put them in the core dir on the samba share (eg. /storage/core) and then copy them to /tmp/core and that worked fine.

However i did try to extraxt the info.zip once and then copy and replace the /tmp/core/*.info files but that it wouldent accept, since the files already existed.

yeah. try changing the paths from tmp to the other one in config file

could you please elaborate on that ? Is that not the correct path ? And wich config file should this be changed in ?

like you mention. the file is downloaded in two places…but the retroarch.cfg file is referencing the tmp path. so change the path relative to how lakka shares the folder on the network. see http://libretro.com/forums/showthread.php?t=4680&p=32172

Actually, the file is downloaded in only a single place - to a location under /storage/. It is unionfs that “merges” the content of multiple directories, making that content appear simultaneously in another location…


ps aux |grep unionfs


  228 root       0:07 unionfs /storage/joypads=RW:/etc/retroarch-joypad-autoconfig=RO /tmp/joypads
  229 root       2:37 unionfs /storage/database=RW:/usr/share/libretro-database=RO /tmp/database
  234 root       0:19 unionfs /storage/cores=RW:/usr/lib/libretro=RO /tmp/cores

Looking at the second line, the contents of /storage/database are combined with the contents of /usr/share/libretro-database, appearing together in the directory /tmp/database. It is important to note that the contents of the first two directories are not copied to the third directory.

Anything downloaded to /storage/database will automatically appear within /tmp/database without being duplicated there. Similarly, anything added to the read-only directory /usr/share/libretro-database (by Lakka developers) will appear within /tmp/database.

The entirety of the system dirs are recreated on each reboot (and are changed only upon updating Lakka itself). Telling the UI to look in some other location than /tmp/database or /tmp/cores or /tmp/joypads may NOT be a good idea. Any new files distributed with new versions of Lakka (in the read-only (RO) directories appearing above) would be ignored.

Declared here https://github.com/libretro/Lakka/issues/267 And may be related to this one: https://github.com/libretro/RetroArch/issues/2442