meta data for this page
Table of Contents
A free offline maps app for travelers, tourists, hikers, and cyclists based on top of crowd-sourced OpenStreetMap data and curated with love by MapsWithMe (Maps.Me) founders
Scale to fit
See details on the page automatic-app-scaling.
2 of 5 Points, currently needs to start with -es2 Option and compiled from sources, as described below
How to install
Note that there is no Debian package for this application yet.
# Confirm that you trust and add the flathub repo to flatpak flatpak install flathub app.organicmaps.desktop
Compiling from source
As the compilation of organicmaps requires at least 4GB RAM you can't compile it directly locally on the phone, as this would result in a kernel panic.
As your host is most likely running on an amd64 architecture, you need to install QEMU system for arm64:
sudo apt install qemu-system-arm
Get (an up to date) debian image. The
nocloud image allows root access without password:
wget -c https://cdimage.debian.org/cdimage/cloud/bookworm/daily/20221112-1197/debian-12-nocloud-arm64-daily-20221112-1197.qcow2
Increase the virtual image size, so there is enough space for the compilation process:
qemu-img resize debian-12-nocloud-arm64-daily-20221112-1197.qcow2 +10G
Then start the image. As organicmaps requires at least 4GB of memory, give it at least 6GB to avoid any kernel panic during compilation or linking:
qemu-system-aarch64 -m 6G -cpu max -smp 4 -M virt -nographic -bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd -drive if=none,file=debian-12-nocloud-arm64-daily-20221112-1197.qcow2,id=hd0 -device virtio-blk-device,drive=hd0 -device virtio-net-device,netdev=net0 -netdev user,hostfwd=tcp:127.0.0.1:2222-:22,id=net0
Once the image startet successfully, you can login as
root without any password.
You still need to grow the filesystem. As there were some errors in regards to wrong checksums of backup supernodes of the ext4 FS, deactivate the following option in
/etc/fstab as otherwise you'll end up with a read-only filesystem:
vim /etc/fstab "remove the grub option: errors=remount-ro from the first entry"
Then extend the FS
growpart /dev/vda 1
and add the
contrib component to debian sources, update and reboot:
vim /etc/apt/sources.list.d/debian.sources sudo apt update reboot
# install build-requirements sudo apt install build-essential clang ninja-build python3 qtbase5-dev libc++-dev libfreetype-dev libglu1-mesa-dev libicu-dev libqt5svg5-dev libsqlite3-dev zlib1g-dev ccache cmake git
Get the sources
As several paths are hard coded during the compilation process, make sure you create at pseudo home directory for mobian.
There was an error with some boost libraries during the
./configure stage. As a solution, you need to clone also all submodules (there is most likely a much better solution, by utilising existing boost packages from debian.)
As long as this PR isn't merged, you may want to use the wayland_es branch from here instead the master branch.
## create fake mobian dir mkdir /home/mobian cd /home/mobian ## shallow copy for a one off compilation git clone --filter=blob:limit=128k --depth=1 --shallow-submodules https://github.com/organicmaps/organicmaps.git ## only due to error messages from boost libraries cd organicmaps git submodule update --init --recursive
You can use more than 1 core for compilation, but I found that I run twice out of memory and into a kernel panic, so in the end I stuck to a single kernel:
./configure.sh tools/unix/build_omim.sh -n 1 -r desktop
copy it to mobian
As the executable relies on several other files, it's best to copy the whole build directory to your phone (choose your IP address, and make sure the ssh server is running on your phone:
sudo service ssh status):
scp -r omim-build-release email@example.com:~/
And make sure there is a data directory in the build directory. If not present, copy it from the source directory.
run it under mobian
Check which dynamic libraries are missing under phosh/mobian
I needed to install at least those two additional runtime packages, and in particular I'm not certain if this is the right one for
libOpenGL.so.0 (please feel free to improve)
# install runtime dependencies sudo apt install libicu72 libopengl0
Finally start Organicmaps with the cs2 Option (for the very first start, it will ask to accept the Copyright and ask to Download the worldmap)
If you get the following error message regarding copyright file
File copyright.html doesn't exist in the scope wrf
just make a symbolic link in the home directory:
ln -s omim-build-release organicmaps
Please feel free to add, how to avoid those hard coded paths. For now it's a very q'n'd solution, but at least OMaps starts for now. Nevertheless, I get random segfaults while using it.
When start with the command:
flatpak run app.organicmaps.desktop
The following error message occurs (Upstream bug):
QOpenGLWidget: Failed to create context QWaylandGLContext: failed to create EGLContext, error=3009 qt.qpa.backingstore: composeAndFlush: QOpenGLContext creation failed QWaylandGLContext: failed to create EGLContext, error=3009 qt.qpa.backingstore: composeAndFlush: makeCurrent() failed