I'm trying to run PICO-8 on a chromebook. ARM cpu, 2gb ram. I have problems, and I understand it's not supported but hey, maybe someone can help!
I set the chromebook in dev mode, downloaded the ARM PICO-8 compiled for raspberry pi, unzipped it, remounted the partition so to run executables:
sudo mount -i -o remount,exec /home/chronos/user
But when I run pico this happens:
[email protected] ~/pico $ ./pico8 ./pico8: error while loading shared libraries: libbcm_host.so: cannot open shared object file: No such file or directory
So I downloaded all the libraries for the Pi firmware and put them in a neat directory and repointed the LD path before starting the pico:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"`pwd`/libs" && ./pico8
and the result is a disappointing:
* failed to open vchiq instance
This happens because... there's no /dev/vchiq device.
So I'm a bit at a loss. I understand that i'm far far away from supported-land. But I imagine it would not be too hard for you fine people to provide an ARM version compiled for something that is not a Pi. Beside, chromebooks are getting increasingly common and cheap, and it would be great to be able to PICO on such a cheap portables!
do not use the non dynamic version, use the pico8_dyn executable. The libbcm_host can only work on Pi, and you are facing various problem if you try to use it on other systems.
You will need to have SDL2 installed on your device, but that's all pico8_dyn will ask
Thanks a lot for the hint!
Finding precompiled libSDL for ARM is harder than expected, and it's going to be a while before I manage to crosscompile it. Chromebooks do not come with much and for reasons I'm trying really hard not to install chrouton.
Alas in the meantime I only managed to find SDL compiled for Pi.
And as expected:
./pico8_dyn: symbol lookup error: /usr/local/lib/libSDL2-2.0.so.0: undefined symbol: bcm_host_init
Well, that was not entirely unexpected. Any hints on what to do, except trying to compile SDL targeting ARM? is a statically compiled version of pico going to be available?
gamax92 I'm not sure where you found that it's easy to compile SDL for chromeos, but I managed to target successfully ARM linux.
Once installed on the chromebook though this happens:
SDL Error: No available video device ** FATAL ERROR: Unable to initialize SDL
Run as root, it simply segfaults.
And since it's not a developer image of chromeos, it does not dump the image, even changing /proc/sys/kernel/core_pattern
I'm starting to run out of things to do.
I do plan to formally support Chromebooks at some stage, but not until I have more time to maintain the extra build. In the meantime, I'll include a no-bcm binary in the next update to make things easier.
Regarding the video device error -- this is sometimes an indication that you were missing some development libraries when building SDL. Before running configure, try installing the packages listed here until Build Dependencies: https://hg.libsdl.org/SDL/file/default/docs/README-linux.md
When configure completes, it should tell you which video drivers are available.
First, thanks for the build.
Second, feel free to hit me up with binaries for testing or if you want me to investigate something specific.
As for the missing library: it's probably a permission problem, when run as root the permission error does not happen, instead it segfaults directly. As /etc/sudoers is not writable (not even as root)
Tonight I'm a bit spent (3 hours of attempts after work is enough) but tomorrow I'll try to compile libSDL straight on the chromebok using the gentoo ARM toolchain (which apparently works fine).
There is also the alternative of compiling Pico targeting NaCl (but without the source I can't try). It would run slower, but given it's trying to emulate an 80s' console it should not be a problem :)
And libSDL targets NaCl allright too.
[Please log in to post a comment]