reMarkable 2, quick review and advanced configuration


The reMarkable 2 tablet is an e-ink paper feel like tablet, aimed at note taking, quick drawing, and PDF/EPub reading.

You can read the product informations/hardware directly on the reMarkable website.

It’s voluntarily simple and with no extra apps/functions so you stays focused on what you’re doing. Some says it’s a default, some says it’s a perk. I think it’s a perk 😉

The environnement of the reMarkables (1 & 2) is an open source based linux. By default you can have an ssh access to your tablet, and you have the root access.

reMarkable Guide

Nearly every information on that article can be found in great details here:

That guide is like the “hitchhiker’s guide to the remarkable world”.

They’re also the ones behind the excellent ‘reMarkable’ discord server

!! Warning for what’s following !!

We are not responsible if you break your device.

Read all the documentation BEFORE acting so you know what you do.

If you want to try something undocumented / unsupported, you better ask the question on remarkable discord first.

Extra warning on reMarkable 2: you’ll need a special pogo connector to do a real factory reset !! (see for more informations)

List of the hacks I use / links to project pages

Let’s start by stating that I’m not willing to use any cloud related functions on that tablet.

I used first codexctl to downgrade the tablet to the last toltec supported version, that is at the time of the article. Support for 3.X is in the tube, but not yet ready for users.

Then I used toltec to install / manage the linux packets on the reMarkable system.

Once toltec installed, I used the provided opkg commands to install Oxide

Oxide is a desktop environment for the reMarkable tablet.


  • Multitasking / application switching
  • Notifications
  • Wifi managment
  • Chroot for applications that you don’t fully trust
  • Optional lockscreen
  • Homescreen for launching applications
  • Process manager
  • Take, view, and manage screenshots


Then I installed the following via opkg install (I linked the project pages so you can go to see by yourself):

KOReader : An ebook reader application supporting PDF, DjVu, EPUB, FB2

Plato: An ebook reader application supporting PDF/CBZ/FB2/XPS/ePUB/DJVU reader

Sill: Gesture-based text editor (and shell) for the reMarkable tablet

VNSee: VNC client for the reMarkable tablet allowing you to use the device as a second screen

rmFM: Bare-bones file manager for the reMarkable paper tablet, built using Node.js and sas

restream: Stream your reMarkable screen over SSH

webinterface-wifi: View the web interface over wifi. For the ReMarkable Tablet

webinterface-upload: Upload button for the web interface, alternative to drag and drop. For the ReMarkable Tablet

webinterface-onboot: Enable the web interface on boot. For the ReMarkable Tablet

I also installed genie and iago (UI for drawing shapes with the pen) and genie (config based gesture launcher) following that reddit comment.

I may have installed a few others, but I’m not using them daily.

For some more, you should explore the Awesome reMarkable page (A curated list of projects related to the reMarkable tablet) as well as toltec package list / toltec entware package list

Quick gestures/shortcut reminders:


I tried reCalendar, a free online calendar generator that is also making links on dates

Ultimate HackRF Portapack Mayhem Upgrade Guide

2023-2024 Edition


When updating your devices, you may sometimes encounter problems that are directly related to the way you updated and to the changes that have occurred between your version jump.

That guide does not pretend to solve all the problems, some are real issues that have to be opened on the Mayhem GITHUB issues tracker.

On the other hand, if you have followed that guide and still have a problem, your issue have better chances to be solved as it will be possible to set aside common updates related problems.

List of important steps:

  • download all necessary files (it means at least SDCARD apps and firmware bin file !!)
  • have a reliable USB cable
  • ensure that your button battery is not dead, else use ‘PMem to Sdcard’ options in ‘Settings’
  • ensure that your CPLD is up to date (no need to update each time, but be sure at least once)
  • flash the firmware
  • update sdcard content (do not forget to update APPS if you’re manually refreshing !)
  • if you are having strange apps problems, try a factory default reset. It’s important to note that you will loose your settings and will have to set them back if you’re doing that step
  • always go and check the settings after the updates, we may have added things that changed the memory layout of settings thus messing them.

You may search each each steps details in the Mayhem GITHUB Wiki, particularly in the following sections:

#hackrf #portapack #mayhem #update #upgrade #guide

KAFKA: raw write your own encoded AVRO event

Like they said, if you use a language for which serializers aren’t written yet, you can write the encoded event yourself. Here are both the recipe and the link:

0Magic ByteConfluent serialization format version number; currently always 0.
1-4Schema ID4-byte schema ID as returned by Schema Registry.

#kafka #avro #schema #id #raw #event #wire #format

GPT4 analysis by Two Minutes Papers

#GPT4 is so amazing that it is a little bit frightening.

But hey, you can pour it a book and talk… to the book, isn’t it amazing ??

Seriously, the GPTs are incredible and the futur is going to change for sure.

Good or bad, well, wait and see.

PS: I can only encourage you to follow Two Minutes Papers. That channel is just so good, with simple and quick explanations, even when it’s a heavy subject like GPT4

Spotify Linux: fix crash or bad window at startup

If ever at some points Spotify on Linux refuses to start or start with fucked up graphics, there is a high probability that it’s due to hardware acceleration and a pesky update.

Spotify isn’t that much of a GUI CPU hog, so you can start it with hardware acceleration OFF and make it work again, like this:

spotify –disable-gpu

Some users reported that they needed to use –no-zygote too, but it made it instable for me.

Some had to also use –disable-software-rasterizer. I saw no changes when using it.

#spotify #gpu #linux #crash

Kafka symbol lookup error, undefined symbol: rd_kafka_message_leader_epoch

Sometimes when using a program linked with librdkafka, you can encounter the ‘symbol lookup error.

Most of the time it’s because your program have been linked to an old version of librdkafka in your system (like outdated RedHat librdkafka yum package VS the latest build from librdkafka’s git)


-Check your LD_LIBRARY_PATH, be sure to find the directories containing latest librdkafka .so file is listed first

-Check what’s installed on your system
-In some case you will have to rebuild your project, having a proper LD_LIBRARY_PATH configured before

#KAFKA #C #librdkafka

GNU make, get relative PATH for i.e recursive builds with dependencies based on local git copies

In case you’re building yourself everything from source in your project, there is a good chance you once had a problem because you were using relative (like ../myressource) paths in your CFLAGS or LD_FLAGS definition and passed them down to the build system.

Short answer: when getting down in sub directories to i.e build your dependencies, the relative path can’t stay good. Only the absolute path can work.

One solution, if using GNU make, is to use something like this to compute the absolute path:


# Note: the naming is up to you. In my case, for something like cJSON, I'm using the following naming:


You can also directly initialize with a shell call:

CJSON_CFLAGS=-I$(shell realpath "./external/cJSON")

#code #makefile #gnu #path #absolute #relative

Error 407 when using git and a proxy with authentification

Recently I stumbled upon that kind of error when trying to update a submodule:

git submodule update –remote –merge
fatal: unable to access ‘’: Received HTTP code 407 from proxy after CONNECT

Turns out that it was the proxy authentification not being sent correctly.
In our case we are using system defined proxy, so we do not need git’s ones

Solved by using:

git config –global http.proxyAuthMethod ‘basic’
git config –global –unset http.proxy
git config –global –unset https.proxy

Some also encountered SSL verification problems due to auto signed certificate use in their network, and had to disable SSL verification. It’ done with the following command, but we do not recommend to use it unless really needed:

git config –global http.sslVerify false

Correctly print uint64_t / size_t in C

Have you even stumbled upon a strange warning when trying to print an uint64_t or a size_t ?
Do no take that warning lightly, as your code can break anytime if you’re not fixing it.

Warning example:

warning: format '%llu' expects argument of type 'long long unsigned int', but argument 4 has type 'uint64_t' [-Wformat]

To avoid the warning and crashes, you have to use a one of the PRIxxx macro which will choose the right way for your system to print the value, without crashes.

#include <inttypes.h>
uint64_t i;
printf("%"PRIu64"\n", i);

Macros for printf family can be found here.

New portapack mayhem app, Level app !

Level app interface

The level app is as simple as possible and allow you to monitor available level meters in a single view.
There is a live graph of each RSSI values and power level.

Link to Documentation

Link to official Nightly build

or click to download compiled version at the time of the post (bin only)

#hackrf #portapack #mayhem #level-app

Edit: it’s the hundredth post of that blog, yay !

KrampusHack2022: HellScape

I was tasked with the following wishlist:

  1. I like building, management, and systems that interact with each other.
  2. Space, robots, aliens!
  3. A game where violence isn’t front-and-center.
  4. Red is my favorite color.
  5. Music!

I wanted to make a robot game were you evade corroding fluids, which led me to fluid animation and Mathias Müller’s Ten Minutes Physics videos and tutorials (see

I ended up only being able to port his Javascript demo to C, but here it is, and working (need allegro5 installed):

Video of the effect;

HellScape demo


The last version in github is now a threaded processing version.

It’s way quicker.

I left both threaded and unthreaded functions in the sources.

How the same demo is looking now:

Last n_fluid version (threaded)

KrampusHack 2022 is opened !

KrampusHack 2022 is opened and starting on December 13 to December 31 !

goal. You are secret santa – create a surprising gift for a selected participant.
On Tuesday 13 December 2022, you will be assigned one of the other participants and you have to make your game as a gift for them (Once the competition starts, you can read here for whom you have to make a gift).

Everyone should post a wishlist of features that they would like to see in the game. Note this is a wishlist and not a requirement list – you should tune the game to your giftee, taking the wishlist as well as the person itself into account, and create something that is a nice and thoughtful surprise to them. To make your wish list easily findable, simply post it on your own log.


Join in and have fun with us !

#tins #gamejam #hack #krampus #krampushack