timower / rM2-stuff

Collection of reMarkable related apps, utilities and libraries.
GNU General Public License v3.0
125 stars 10 forks source link

Yaft: framebuffer initialize failed #28

Closed aomua closed 9 months ago

aomua commented 9 months ago

version: 3.3.2

rm2fb seems to not be recognized or used after installation.

desperately, I tried both installing rm2stuff.ipk and installing each packages seperately (running toltecctl uninstall beforehand)

process:

toltecctl uninstall

wget http://toltec-dev.org/bootstrap echo "04a28483286f88c5c7f39e352afb62adc57f6162a29fd7e124d832205bb0980e bootstrap" | sha256sum -c && bash bootstrap

reboot

opkg install rm2stuff.ipk

reboot

running yaft I got: ">>FATAL<< framebuffer initialize failed"

I suspect the system couldn't recognize rm2fb or some files are missing, as when I ran opkg install remux && remux, I got: "remux: error while loading shared libraries: librm2fb_client.so.1: cannot open shared object file: No such file or directory"

Sorry for asking hand-holdings, is there a set of bash commands that is methodologically correct for installing yaft and rocket/remux on a fresh machine running 3.3.2 or 3.5.x?

timower commented 9 months ago

opkg install rm2stuff.ipk

Are you using the latest version? v0.1.0 should have separate ipks for each program: https://github.com/timower/rM2-stuff/releases/tag/v0.1.0

reboot

running yaft I got: ">>FATAL<< framebuffer initialize failed"

Are you just calling yaft on the command line, not using a launcher? If so, you'll manually have to preload rm2fb_client.so:

> env LD_PRELOAD=/opt/lib/librm2fb_client.so yaft

I can probably detect this and do it automatically in the app in a future version :thinking:

I suspect the system couldn't recognize rm2fb or some files are missing, as when I ran opkg install remux && remux, I got: "remux: error while loading shared libraries: librm2fb_client.so.1: cannot open shared object file: No such file or directory"

The missing .1 was fixed here: https://github.com/timower/rM2-stuff/commit/2feaed80b14a5249b6b7678a0b659e7ca83d2673 So using v0.1.0 should fix it.

Sorry for asking hand-holdings, is there a set of bash commands that is methodologically correct for installing yaft and rocket/remux on a fresh machine running 3.3.2 or 3.5.x?

Not yet, I haven't written down my steps, and as I'm developing myself it wouldn't match the steps for new users. Though the issues you're running into are interesting, if you get it working I'm open to updates of the Readme to make the process easier for future users.

aomua commented 9 months ago

Are you using the latest version? v0.1.0 should have separate ipks for each program: https://github.com/timower/rM2-stuff/releases/tag/v0.1.0

After installing rmlib.ipk and ioctl-dump.ipk, running opkg install rm2fb.ipk seemed to have made some progress! Running > env LD_PRELOAD=/opt/lib/librm2fb_client.so yaft would get:

Using our own rm2fb!

However, the application does not actually start, and the device is still running normal xochitl.

Removing > I could get more infomation, not sure if this means missing parts or just not receiving signals:

Using our own rm2fb!
action: null
Got key
action: null
Got pen
action: null
Got touch
action: null
Got key
action: null
Got pen

After opkg install rocket && exec bash --login, systemctl start rocket also had no effect on the display of the device. Running rocket directly in the ssh terminal I got:

"FATAL: Unsupported device, please install rm2fb Aborted"

Running env LD_PRELOAD=/opt/lib/librm2fb_client.so rocket I got:

Using our own rm2fb!
action: null
Got key
action: null
Got pen
action: null
Got touch
action: null
Got key
action: null
Got pen
Parsing image from: /opt/etc/draft/icons/yaft.png
2
Parsing image from: /opt/etc/draft/icons/xochitl.png
2
Parsing image from: /etc/draft/icons/yaft.png
2
Parsing image from: /etc/draft/icons/xochitl.png
2

Here is something I found looking suspicious while installing rm2fb with opkg (toltec)

root@reMarkable:~# opkg install ./updatedipk/rm2fb.ipk 
      Multiple replacers for rm2fb, using first one (rm2fb).
      Multiple replacers for rm2fb, using first one (rm2fb).
      Multiple replacers for rm2fb, using first one (rm2fb).
      Package rm2fb (0.1.0) installed in root is up to date.

I am not sure what happened here. A lay person guess here would be that somehow the old rm2fb is mixed in (which may explain Unsupported device, please install rm2fb), but even then, why would nothing happen when > env LD_PRELOAD=/opt/lib/librm2fb_client.so yaft is ran?

aomua commented 9 months ago

Some part of rocket is working as pressing power button will not send the device to sleep, but no menu is popped up either. After 10 seconds the display would remain its state but no longer responsive; pressing the power button would "wake" it. Not sure if the display went to sleep after 10 seconds since screensaver is not displayed. On the good side, one of the goals I have been trying to achieve was to have a transparent screensaver :)

aomua commented 9 months ago

Apparently the toltec's rm2fb works on 3.2.x but not 3.3.x (perhaps without tweaks), although 3.3.x is listed in the config:

!20230414143852 version str 3.3.2.1666 update addr 0x5583c8 updateType str QRect create addr 0x55b504 shutdown addr 0x55b494 wait addr 0x55a39c getInstance addr 0x54eeac notify addr 0x558464 waveformClass str EPFramebuffer::Waveform remapWave2to5 str 1

I have no clue what EPFramebuffer is, but it looks to be the thing different from other versions. Yaft runs properly after opkg install yaft. I guess things worked out for me, although unfortunately I can't give any contribution other than telling people who found themselves here that use 3.2.x.