timower / rM2-stuff

Collection of reMarkable related apps, utilities and libraries.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

White screen for rm2fb 3.8.2

cvanelteren opened this issue · comments

Hi,

When installing the rm2fb ipk I am getting a white screen on boot. Is there a way to fix this?
Sincerely,
C

Same issue here on 3.8.2, though I've found a workaround is to install and enable Rocket which works and opens xochitl as expected.

When the rm2fb service is enabled on its own with xochitl disabled, the device hangs on a blank white screen.

The system journal contains the following logs when the rm2fb service is started, and the device produces a blank white screen:

Dec 21 04:27:12 reMarkable systemd[1]: Started rm2 framebuffer server.
Dec 21 04:27:12 reMarkable crashuploader[189]: All files uploaded
Dec 21 04:27:12 reMarkable crashuploader[189]: All files uploaded
Dec 21 04:27:12 reMarkable xochitl[622]: STARTING RM2FB
Dec 21 04:27:12 reMarkable xochitl[622]: Added uintput device
Dec 21 04:27:12 reMarkable kernel: input: Wacom I2C Digitizer as /devices/virtual/input/input10
Dec 21 04:27:12 reMarkable xochitl[622]: Build ID: 0x31 0xf4 0xe9 0xe8 0x52 0xaf 0x39 0x38 0x15 0xd8 0x14 0xcd 0xd3 0xac 0xb6 0xdf 0xbd 0xc8 0xb5 0x67
Dec 21 04:27:12 reMarkable xochitl[622]: Setting mem
Dec 21 04:27:12 reMarkable xochitl[622]: SWTCON calling init
Dec 21 04:27:17 reMarkable crashuploader[189]: All files uploaded
Dec 21 04:27:17 reMarkable crashuploader[189]: All files uploaded

The rm2fb service status reports the following whilst in the same state:

reMarkable: ~/ systemctl status rm2fb
● rm2fb.service - rm2 framebuffer server
     Loaded: loaded (/lib/systemd/system/rm2fb.service; enabled; vendor preset: disabled)
     Active: active (running) since Thu 2023-12-21 04:27:12 GMT; 1min 9s ago
   Main PID: 622 (xochitl)
     CGroup: /system.slice/rm2fb.service
             └─ 622 __rm2fb_server__

Dec 21 04:27:12 reMarkable systemd[1]: Started rm2 framebuffer server.
Dec 21 04:27:12 reMarkable xochitl[622]: STARTING RM2FB
Dec 21 04:27:12 reMarkable xochitl[622]: Added uintput device
Dec 21 04:27:12 reMarkable xochitl[622]: Build ID: 0x31 0xf4 0xe9 0xe8 0x52 0xaf 0x39 0x38 0x15 0xd8 0x14 0xcd 0xd3 0xac 0xb6 0xdf 0xbd 0xc8 0xb5 0x67
Dec 21 04:27:12 reMarkable xochitl[622]: Setting mem
Dec 21 04:27:12 reMarkable xochitl[622]: SWTCON calling init

As a diagnosis step, attempting to directly open rm2fb via running in terminal with this command:

env LD_PRELOAD=/opt/lib/librm2fb_server.so /usr/bin/xochitl

Produces a white screen on the device, and the following console output:

reMarkable: ~/ env LD_PRELOAD=/opt/lib/librm2fb_server.so /usr/bin/xochitl
STARTING RM2FB
Added uintput device
Build ID: 0x31 0xf4 0xe9 0xe8 0x52 0xaf 0x39 0x38 0x15 0xd8 0x14 0xcd 0xd3 0xac 0xb6 0xdf 0xbd 0xc8 0xb5 0x67 
Setting mem
SWTCON calling init
SWTCON initalized!
rm2fb-server started!

Attempting to run the framebuffer in this manner, produces the following system journal entries:

Dec 21 04:20:10 reMarkable crashuploader[189]: All files uploaded
Dec 21 04:20:10 reMarkable crashuploader[189]: All files uploaded
Dec 21 04:20:12 reMarkable kernel: input: Wacom I2C Digitizer as /devices/virtual/input/input8

This is with Toltec installed with the upstream xochitl package, and systemlinks created in /usr/lib pointing to /opt/lib for the rm2fb client libraries.

My previous attempts before observing the upstream package requirement, lead to boot-loops with rm2fb enabled.

When the rm2fb service is enabled on its own with xochitl disabled, the device hangs on a blank white screen.
Yes, that's expted. If no launcher is enabled and xochitl isn't enabled then starting rm2fb will just produce a blank screen.

Although I wonder why xochitl is disabled.

Apologies I did test with xochitl and rm2fb both enabled, which produces the same result a blank white screen. Making the change of installing Rocket and launching xochitl through it makes it work.

Although I wonder why xochitl is disabled.

I disabled it for testing when things didn't work the first time

When rm2fb and xochitl are both started, xochitl appears to constantly attempt to restart, producing logs such as:

xochitl[28571]: 01:41:01.622 debug                    Running xochitl with extra modules:
xochitl[28571]:  -  (init /__w/xochitl/xochitl/src/xofm/bundles/papertablet/applauncher.cpp:43)
xochitl[28571]: Registering exit handlers
xochitl[28571]: Installing crash handler
xochitl[28571]: installed crash handler
xochitl[28571]: another instance is already running
xochitl[28571]: 01:41:01.734 default                  Failed to initialize SWTCON.
xochitl[28571]: We crashed

Similarly with the xochitl service stopped rm2fb started and attempting to run xochitl from the terminal produces an output which ends in a crash:

debug: 2023-11-09T14:56:06Z tags/releases/3.8.2-device-rc 01a902f
debug: we're running on an epaper device
02:02:01.579 default                  QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
02:02:01.591 rm.epaperkeyboardhandler No keymap set by QT settings or firmware, defaulting to US.
02:02:01.592 rm.epaperkeyboardhandler No keymap set by QT settings or firmware, defaulting to US.
02:02:01.601 rm.epaperkeyboardhandler No keymap set by QT settings or firmware, defaulting to US.
02:02:01.601 rm.epaperkeyboardhandler No keymap set by QT settings or firmware, defaulting to US.
02:02:01.602 qt.qpa.input             evdevtouch: Using device discovery
02:02:01.610 qt.qpa.input             evdevtouch: Adding device at /dev/input/event2
02:02:01.612 qt.qpa.input             evdevtouch: Using device /dev/input/event2
02:02:01.613 qt.qpa.input             evdevtouch: /dev/input/event2: Protocol type B  (multi), filtered=no
02:02:01.613 qt.qpa.input             evdevtouch: /dev/input/event2: min X: 0 max X: 1403
02:02:01.613 qt.qpa.input             evdevtouch: /dev/input/event2: min Y: 0 max Y: 1871
02:02:01.613 qt.qpa.input             evdevtouch: /dev/input/event2: min pressure: 0 max pressure: 0
02:02:01.613 qt.qpa.input             evdevtouch: /dev/input/event2: device name: pt_mt
02:02:01.619 xofm.bundles.common      Activated translation
02:02:01.621 xofm.core.launcher       cannot open config file::/src/xofm/bundles/papertablet/papertablet.rm11x.json, error:No such file or directory (loadConfig /__w/xochitl/xochitl/src/xofm/core/src/launcher.cpp:40)
02:02:01.623 debug                    Running xochitl with extra modules:
 -  (init /__w/xochitl/xochitl/src/xofm/bundles/papertablet/applauncher.cpp:43)
Registering exit handlers
another instance is already running
02:02:01.715 default                  Failed to initialize SWTCON.
Aborted

It looks as if xochitl may already be running when the service tries to start, though the screen is blank and xochitl / launcher are stopped. Checking the running processes:

ps | grep xoc
29132 root      142m S    {xochitl} __rm2fb_server__
29156 root      4904 S    grep xoc

Having rm2fb started, xochitl stopped and rocket started produces a working configuration, with xochitl able to run through rocket.

Great work! I'm a bit new to the rm2 scene. Is there a way to exit the bootloop? I was only able to recover by disconnecting the folia.

Hey, this isn't the right place for the discussion since it's off-topic to the rM2-stuff packages.
It's best to make a post over in the support discord, for example a recent one was https://discord.com/channels/385916768696139794/1185884865548275772

If your RM2 is caught in a boot loop, then the options are to attempt to SSH during a loop to execute a command that fixes the issue (e.g. disabling rm2fb / xochitl), or build the pogo adapter. I think a more thorough post in the support discord would be helpful to understand the state your device is in.

I see. The reason I'm asking the bootloop occured after installing the IPK. I managed to recover it some weeks ago through SSH. However in case I want to try installing again I need to enable rf2b, rocket but disable xochitl?

Yep pretty much.
I put my notes into a new discussion thread: #32

Thanks. Should I leave this open until it is fixed?

Yeah, it seems the xochitl service isn't restarted correctly causing a white screen.
I suspect toltec-dev/toltec#717 might cause this as I depend on the xochitl package.

did you LD_PRELOAD the client on xochitl? If not, do it