meta data for this page
Table of Contents
Organic Maps
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
Phone Compatibility
4 of 5 Points (UI is not made for mobile devices)
How to install
Apt
Note that there is no Debian package for this application yet.
Flatpak
Command:
# Confirm that you trust and add the flathub repo to flatpak flatpak install flathub app.organicmaps.desktop
Repo
Known Issues
GPS doesn't work, as it does not support Geoclue:
Compiling from source
THESE instructions may be outdated. The OpenGL issues have been fixed upstream with the last flatpak version.
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.
Setup QEMU
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 dependencies
# 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
build package
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 mobian@10.42.0.1:~/
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
ldd ~/omim-build-release/OMaps
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)
~/omim-build-release/OMaps -es2
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.