Aipaezina 2: Trukaketa & zerbitzari propioa
En este documento (con fines educativos), vamos a poder ver cómo se puede cambiar un poquito el sistema que trae la Remarkable 2 para liberar todas sus funcionalidades, además de cómo poder montar nuestro propio servidor cloud para sincronizar, compartir la pantalla, documentos…
![]() |
![]() |
Como creo que muchos habréis escuchado el dispositivo Remarkable 2 es una pasada para los que nos gusta tomar notas de manera manual. Un dispositivo táctil, de tinta electrónica, que permite tener distintos cuadernos para organizarte como quieras, distintas puntas, grosores… muy muy completo. Al tacto muy similar al papel, puedes subrayar, mover, copiar… La verdad que el hardware es una pasada, y el 'problema’ digamos lo tiene el software, que depende que funcionalidades te interesen pues requiere de suscripción annual, y si el precio fuera accesible, pues bueno… La posibilidad de compartir la pantalla, enviar un documento por mail, convertir a OCR lo que se ha escrito…
Para evitar todo esto podremos cambiarle por un lado el sistema y habilitarle las funciones que vienen desbloqueadas, y por el otro lado montarnos nuestro propio servidor de Remarkable para realizar las funciones de almacenamiento y sincronización de nuestros cuadernos, notas, libros… además de poder enviar docs o compartir la pantalla, besteak beste.
Actualizando el software de la Remarkable 2,
![]() |
![]() |
Empezamos antes de nada actualizando el firmware de la Remarkable 2 hasta la versión máxima que encontremos que tenga la versión ‘hackeada’. Os dejo anotados los pasos que seguí cuando la adquirí hace 1-2 años. En esta web encontraréis las instrucciones de ddvk (Dobrin von Känel) para el hacks y en esta otra para el proceso del update.
En una MV con linux nos descargamos el repo de ddvk que permite actualizar la Remarkable 2:
cd /tmp/ git clone https://github.com/ddvk/remarkable-update.git
De aquí nos bajaremos la versión más reciente para nuestra Remarkable 2 y lo guardamos en la carpeta ‘updates’ que habrá creado el paso anterior. Arrancamos ya pues el servicio que ofrece la actualización:
cd remarkable-update python3 serve.py 2.12.2.573 Using hostname, to override use: ./serve.py hostname Device should use: http://OS-XXX-01.openservices.local:8000/ Available updates: {'reMarkable2': ('2.12.2.573', '2.12.2.573_reMarkable2-XnE1EL7ojK-.signed')} Starting fake updater: 8000
En mi caso la Remarkable 2 traía la versión 2.10.4.5 y la vamos a subir a la 2.12.2.573. Ahora vamos a la Remarkable 2, nos logueamos en ella por SSH con root y nuestra contraseña (que la encontraremos en Settings > Laguntza > Copyright and Licenses, debajo de GPLv3 Compliance). Editamos el fichero de configuración de actualización con vim o nano con la URL que nos dió el paso anterior, grabamos y salimos:
vim /usr/share/remarkable/update.conf SERVER=http://OS-XXX-01.openservices.local:8000 :wq
Desde el shell de la Remarkable 2 podemos forzar a actualizar, levantamos el servicio, chequeamos si hay updates y vemos el proceso de actualización:
systemctl start update-engine update_engine_client -check_for_update journalctl -u update-engine -f
Tras ello, reiniciamos y listos para aplicarle el hack!
Cambiando el software al de hacks,
Ondo, ahora que hemos actualizado la Remarkable 2 a una versión compatible con hacks, pues podemos comenzar a aplicarlo. Sin miedo, ya que cuando acabemos podremos elegir si aplicaremos los cambios o no, tras trastear un poco con el dispositivo.
Volvemos a loguearnos en la Remarkable 2 con SSH como root y la contraseña que tendremos ya anotada en un lugar seguro. Y ejecutamos:
sh -c "$(wget https://raw.githubusercontent.com/ddvk/remarkable-hacks/master/patch.sh -O-)"
Y empezará:
Connecting to raw.githubusercontent.com (185.199.111.133:443) wget: note: TLS certificate validation not implemented writing to stdout - 100% |***********************************************************************************************************************************************************************************************************| 10013 0:00:00 ETA written to stdout Disk space seems to be enough. rM2 Version 2.12.2.573 - patch_31.2.01 Connecting to github.com (140.82.121.4:443) wget: note: TLS certificate validation not implemented Connecting to raw.githubusercontent.com (185.199.109.133:443) saving to '/home/rmhacks/patch_31.2.01' patch_31.2.01 100% |***********************************************************************************************************************************************************************************************************| 88907 0:00:00 ETA '/home/rmhacks/patch_31.2.01' saved Connecting to github.com (140.82.121.4:443) wget: note: TLS certificate validation not implemented Connecting to raw.githubusercontent.com (185.199.110.133:443) saving to '/home/rmhacks/patch.sh' patch.sh 100% |***********************************************************************************************************************************************************************************************************| 10013 0:00:00 ETA '/home/rmhacks/patch.sh' saved Failed to stop rm2fb.service: Unit rm2fb.service not loaded. killall: remarkable-shutdown: no process killed killall: xochitl: no process killed Cleaning up... ********************************************** Trying to start the patched version... You can play around, press CTRL-C when done! ********************************************** Irteera kudeatzaileak erregistratzen Uhin-formak irakurtzea /usr/share/remarkable/320_R400_AF8F11_ED103TC2C5_VB3300-KCD_TC.wbf INIT exekutatzea (111 phases) 15:02:22.065 qt.qpa.input evdevtouch: Gailuaren aurkikuntza erabiltzea 15:02:22.072 qt.qpa.input evdevtouch: Gailua gehitzea /dev/input/event2 15:02:22.072 qt.qpa.input evdevtouch: Gailua erabiliz /dev/input/event2 15:02:22.073 qt.qpa.input evdevtouch: /dev/input/event2: Protokolo mota B (multi), filtered=no 15:02:22.073 qt.qpa.input evdevtouch: /dev/input/event2: min X: 0 max X: 1403 15:02:22.074 qt.qpa.input evdevtouch: /dev/input/event2: min Y: 0 max Y: 1871 15:02:22.074 qt.qpa.input evdevtouch: /dev/input/event2: min presioa: 0 max presioa: 0 15:02:22.074 qt.qpa.input evdevtouch: /dev/input/event2: gailuaren izena: pt_mt 15:02:27.521 qt.qpa.input evdevtouch: QInputDeviceManager gailuen kopurua eguneratzen ari da: 1 ukipen-gailuak, 0 zain dagoen kudeatzailea(s) ^CShutting down... Garbitzen... Dena funtzionatu badu, Al duzu behin betiko bihurtu nahi duzu [N/y]? N Erabili /home/rmhacks/xochitl.patched bitarra iritziz aldatzen baduzu / eman it if it segfaulted. Jatorrizkoa abiarazten...
Esto arranca la Remarkable 2 con el hack, podremos parar el proceso con CTR+C cuando queramos y nos preguntará si queremos guardarlo en memoria N/y.
N berrezartzen bada firmware aurrekoarekin.
Gure hodei zerbitzari propioa muntatuz,
Ondo, MV batean edo Raspberry Pi batean muntatu ahal izango dugu, edo NAs batean… Gure Remarkable zerbitzari propioa 2, Aurretik esan dugun hori egiteko, Dokumentuak gordetzeko eta sinkronizatzeko, Postaz bidaltzeko aukera, compartir la pantalla, eta abar…
Hau ddvk-ren beste utilitate batekin egingo dugu, rmfakecloud-rekin, Docker kontenedor bat, eta segundo gutxitan martxan izango dugu.
Antes de empezar, kontu bat sortu beharko dugu: https://developer.myscript.com-en eta kontua aktibatu ondoren, App bat sortuko dugu https-n://developer.myscript.com/dashboard >Cloud recognition > Manage > Create application (edo joan https-ra://cloud.myscript.com/#/user/applicationList). Nire kasuan 'App para rmfakecloud' deitzen diot. Ireki eta > Generate application Key, eta 'Application Key' idatzi behar dugu’ (formato xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) eta HMAC Gakoa: (berdina formatua).
Docker daukagun makinaren batean datuentzako direktorioa sortzen dugu eta rmfakecloud kontainerrari martxan jartzen diogu, daturen bat aldatu beharko dugula ikusten duzuen bezala:
sudo mkdir /mnt/data-rmfakecloud sudo docker run -p 3000:3000 -v /mnt/data-rmfakecloud:/data -e JWT_SECRET_KEY='XXXXXXXX' \ -e RMAPI_HWR_APPLICATIONKEY='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx' \ -e RMAPI_HWR_HMAC='xxxxxxxx-xxxx-xxxx-xxxx-' \ -e RM_SMTP_SERVER='mail.midominio.eso:465' \ -e RM_SMTP_USERNAME='us*****@*******io.eso' \ -e RM_SMTP_PASSWORD='kontraseina' \ -e RM_SMTP_FROM='us*****@*******io.eso' \ -e RM_SMTP_INSECURE_TLS \ -e RM_SMTP_STARTTLS \ ddvk/rmfakecloud
Kontainerrari martxan jartzen diogu eta beti has dadin esaten diogu:
sudo docker start rmfakecloud sudo docker update --restart unless-stopped rmfakecloud
Web bat irekitzen dugu kontainerraren URLan http formatuan://FQDN_DOCKER:3000 eta lehenengo erabiltzailea sartu egingo dugu, sortuko da.
Remarkable-era joango gara 2 eta shell-etik, Putty batekin root gisa logeatu eta exekutatuko dugu:
sh -c "$(wget https://raw.githubusercontent.com/ddvk/rmfakecloud/master/scripts/device/automagic.sh -O-)"
Eta honelako zerbait aterako da:
root@reMarkable:~# sh -c "$(wget https://raw.githubusercontent.com/ddvk/rmfakecloud/master/scripts/device/automagic.sh -O-)" Connecting to raw.githubusercontent.com (185.199.109.133:443) wget: note: TLS certificate validation not implemented writing to stdout - 100% |***********************************************************************************************************************************************************************************************************| 275 0:00:00 ETA idatzita stdout-era Instalatzailera lortzen.... github.com-era konektatzen (140.82.121.3:443) wget: note: TLS ziurtagiriaren baliozkotzea ez da gauzatu objects.githubusercontent.com-era konektatzen (185.199.108.133:443) 'installer.sh' gordetzen installer.sh 100% |***********************************************************************************************************************************************************************************************************| 2000k 0:00:00 ETA 'installer.sh' gorde da Instalazioa exekutatzen.... Txertatutako binarioa ateratzen.... proxy.service gelditzea huts egin du: proxy.service unitatea kargatuta ez dago. ~/rmfakecloud ~ CA gakoa eta crt sortzen.... RSA gako pribatua sortzen, 2048 bit luze koefizientea (2 primeak) .....................................+++++ ...................................................+++++ e da 65537 (0x010001) Gako pribatua sortzen.... RSA gako pribatua sortzen, 2048 bit luze koefizientea (2 primeak) .....+++++ ................................+++++ e da 65537 (0x010001) Pub gakoa sortzen.... RSA gakoa idazten csr eta crt sortzen.... Sinadura ondo subject=C = AA, ST = QQ, L = JJ, O = kultura, CN = *.appspot.com CA Gako Pribatua lortzen Sorkuntza osatua! /etc/ssl/certs-en symlink-ak garbitzen... done. /etc/ssl/certs-en ziurtagiriak eguneratzen... rehash: kontuz: ca-certificates.crt saltatzen,ez du ziurtagiri edo CRL bat soilik dauka 1 gehitu da, 0 removed; done. /etc/ca-certificates/update.d-en hooks martxan.... done. Sartu zure hodei URL propioa [http(s)://somehost:port] >
Guretzat eskatzen ari da URL-a sartzeko, zerbitzari propioarekin, dugun formatuan: http://FQDN_DOCKER:3000 eta sakatzen dugu Enter, kontuz hemen FQDN publikoa erabil dezakegu nahi izanez gero Remarkable 2 Internetetik horretara sartzeko gai izan dadin. Enter-aren ondoren, jarraituko du…
Hodei sinkronizazioa ezartzen: http://FQDN_DOCKER:3000 Symlink sortua /etc/systemd/system/multi-user.target.wants/proxy.service → /etc/systemd/system/proxy.service. /etc/hosts konpontzen xochitl gelditzen.. Fixing sync status... Starting xochitl... ~
En la Remarkable 2 vamos a Settings > Orokorra > Account > Connect to reMarkable cloud > Connect > y nos pedirá un código de estos OT que conseguiremos en http://FQDN_DOCKER:3000/generatecode
Lo introduciremos y listo! Ya nos saldrá nuestra cuenta activada y con el Subscription Plan de tipo 'Connect'! Ahora lo único recuerda que no se actualice sola la Remarkable 2, búscalo en los Settings.
Por si no lo conocéis también existe una app de Remarkable para el PC, para nuestro escritorio, para ver los documentos, acceder a la pantalla compartida… para ello deberemos tener en cuenta que el FQDN 'local.appspot.com’ deberá responder contra nuestro contenedor de rmfakecloud o un proxy inverso que montemos en Nginx.
Espero dut interesgarria iruditu zaizuela, la idea de este documento es ver las posibilidades de estos hacks, eta are gutxiago pirateriaren alde egin edo horrelako gauza txarrak sustatu. Betiko moduan, zuei ondo joan daiteela opa dizuet, zoriontsu izan zaitezten eta perretxikoak jan!
Hori azkena… Amazonen antzeko STAEDTLER motako arkatz baxu batzuk erosi ditzakezue, eta oso friki geratzen da… atzealdean goma dutenak daude zuzenean ezabatzeko…
Ahora sí, ¡un abrazo!


















































