https://github.com/toltec-dev/toolchain
Set of Docker images for cross-compiling binaries targeting the reMarkable tablet.
https://github.com/toltec-dev/toolchain
crosstool-ng docker-image remarkable-tablet
Last synced: 8 months ago
JSON representation
Set of Docker images for cross-compiling binaries targeting the reMarkable tablet.
- Host: GitHub
- URL: https://github.com/toltec-dev/toolchain
- Owner: toltec-dev
- License: mit
- Created: 2020-09-12T11:42:31.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2025-04-27T06:28:45.000Z (11 months ago)
- Last Synced: 2025-04-27T07:27:00.588Z (11 months ago)
- Topics: crosstool-ng, docker-image, remarkable-tablet
- Homepage:
- Size: 175 KB
- Stars: 36
- Watchers: 5
- Forks: 13
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
## Toltec Build Toolchain
This is a set of Docker images used for cross-compiling binaries for the [the reMarkable tablet](https://remarkable.com/).
They are primarily aimed at providing reproducible build environments for [Toltec](https://github.com/toltec-dev/toltec) packages.
They can also be useful for any project that needs to be built for the reMarkable.
_Note: reMarkable also used to provide an official OpenEmbedded-Core-based toolchain on its website._
_However, the company seems to have phased out the website as of January 2021, so its status is currently unknown._
### Paths
Name | Location | Contents
--------------------- | ---------- | -------
Build system root | `/` | Minimal Debian install with usual build tools, the CMake and Meson build systems, and the `opkg` package manager for installing packages in the host system root.
Cross-compiler root | `/opt/x-tools/arm-remarkable-linux-gnueabihf/bin` | GCC cross-compiler and assorted tools which target the ARMv7 architecture. This directory is in `$PATH` by default.
Host system root | `$SYSROOT` | This is where binaries targeting the reMarkable are installed. By default, it only contains a minimal set of libraries and executables (glibc and Linux headers).
Local Opkg repository | `/repo` | Packages stored in this directory can be installed to the host system root using the `opkg` command.
### Images
Name | Contents
---- | -------
[toolchain](https://github.com/orgs/toltec-dev/packages/container/package/toolchain) | Only the tools mentioned above.
[base](https://github.com/orgs/toltec-dev/packages/container/package/base) | Adds to the host system root a set of libraries similar to those that come pre-installed on the reMarkable: libcap, util-linux, libsystemd, zlib, libpng, libevdev, OpenSSL, libcurl, and libbreakpad.
[qt](https://github.com/orgs/toltec-dev/packages/container/package/qt) | Adds Qt to the host system root, including the closed-source libqsgepaper plugin. Includes the `qmake` build tool in the build system root.
[rust](https://github.com/orgs/toltec-dev/packages/container/package/rust) | Adds Nightly Rust configured to use the ARMv7 cross-compiler to the build system root.
[python](https://github.com/orgs/toltec-dev/packages/container/package/python) | Adds a Python 3.7.3 distribution to the build system root.
[golang](https://github.com/orgs/toltec-dev/packages/container/package/golang) | Adds a Go distribution to the build system root.
[dotnet6](https://github.com/orgs/toltec-dev/packages/container/package/dotnet6) | Adds dotnet6 to the build system root.
### Version Matrix
The toolchain images aim to follow the library versions available on the stock reMarkable system.
The major version number of the toolchain is increased each time an official reMarkable update changes the available libraries.
The table below lists the version number of each library for each major toolchain release.
_Deprecation notice: Images of the v1.x and v2.x series are kept for compatibility but will not be maintained further._
↓ Library \ Toolchain →
1.x
2.x
3.x
Compatible reMarkable updates
⩽ 2.5.0.26
⩾ 2.6.1.71
⩾ 2.9.0.153
toolchain Image
Linux headers
4.9
4.14
5.4.70
glibc
2.27
2.31
2.31
base Image
libcap
2.25
2.32
2.32
util-linux
2.32
2.36.1
2.36.1
libsystemd
237
244
244
zlib
1.2.11
libpng
1.6.34
1.6.37
1.6.37
libevdev
1.5.8
1.9.1
1.9.1
OpenSSL
—
1.1.1g
1.1.1g
libcurl
—
7.69.1
7.69.1
libbreakpad
—
0.1 (db1cda2653)
0.1 (db1cda2653)
qt Image
Qt
5.11.3
5.15.1
5.15.1 (reMarkable qtbase)
### Installing Opkg Packages
Opkg is installed on every toolchain image and is configured to install packages in _offline_ mode, i.e., without executing any [maintainer script](https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html).
By default, it is configured to install packages from Entware and from the local repository stored in `/repo`.
Opkg stores its cache in `/var/cache/opkg`.
### Changelog
[See the changelog →](CHANGELOG.md)