rien / reStream

Stream your reMarkable screen over SSH.
MIT License
732 stars 56 forks source link

Output is blank #86

Closed Myridium closed 2 years ago

Myridium commented 2 years ago

I was using this software yesterday or the day before. Today I tried it again and it just shows a blank screen (all white). I have tried rebooting the device a couple of times and reinstalling restream on the device. No dice. top on the device shows that restream is running (and using 50% CPU). Just no output.

rien commented 2 years ago

That is curious, can you post the logs from your terminal when starting reStream?

Some people had some issues in the past with blank output, you might check out the issues #82, #84, #65 or #61.

Myridium commented 2 years ago

The output of the desktop program look normal to me:

[SSH] true
[SSH] cat /sys/devices/soc0/machine
[SSH] [ -f /dev/shm/swtfb.01 ]
[SSH] [ ! -f ~/restream ] && [ ! -f /opt/bin/restream ]
[SSH] PATH="$PATH:/opt/bin/:." restream -h 1872 -w 1404 -b 2 -f /dev/shm/swtfb.01
ffplay version n4.4.1 Copyright (c) 2003-2021 the FFmpeg developers
  built with gcc 11.1.0 (GCC)
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librav1e --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-nvdec --enable-nvenc --enable-shared --enable-version3
  libavutil      56. 70.100 / 56. 70.100
  libavcodec     58.134.100 / 58.134.100
  libavformat    58. 76.100 / 58. 76.100
  libavdevice    58. 13.100 / 58. 13.100
  libavfilter     7.110.100 /  7.110.100
  libswscale      5.  9.100 /  5.  9.100
  libswresample   3.  9.100 /  3.  9.100
  libpostproc    55.  9.100 / 55.  9.100
Input #0, rawvideo, from 'pipe:':  0KB vq=    0KB sq=    0B f=0/0   
  Duration: N/A, start: 0.000000, bitrate: 1051315 kb/s
  Stream #0:0: Video: rawvideo (RGB[16] / 0x10424752), rgb565le, 1404x1872, 1051315 kb/s, 25 tbr, 25 tbn, 25 tbc

until I send an interrupt signal.

rien commented 2 years ago

This is very similar to https://github.com/rien/reStream/issues/84, are your running https://github.com/matteodelabre/vnsee ?

Myridium commented 2 years ago

As for #82, the xochitl service is already running on the reMarkable (I don't know what this service is). #84 I have not used vnsee. I'm not exactly sure what #65 is saying, but I'm able to ssh into the reMarkable with my ssh identity, without using a password. I do use a PGP smartcard for ssh-rsa authentication and sometimes it prompts for a PIN, but not at the moment. It worked previously with the same arrangement so I don't think that's the issue. As for #61, I am using native Linux and my LIBGL_ALWAYS_INDIRECT is unset.

rien commented 2 years ago

The xochitl service is the main program running on the reMarkable.

Are you running other programs that are interacting with the reMarkable screen? My guess is that rm2fb is not updating the pseudo-framebuffer properly. What are you seeing exactly in the ffplay window? A black screen? A white screen? The reMarkeble UI, but it is not updating?

Myridium commented 2 years ago

Sorry, I don't know what rm2fb is. I will note that I recently had an issue with not being able to screen share via the desktop app, either. However, that resolved itself.

Only things I've installed on the reMarkable are the toltec package manager, rmfakecloud-proxy and restream. I tried uninstalling restream via the toltec package manager just now, and placing the file directly onto the device, but that doesn't work either.

I see a completely white screen shared through reStream. Nothing is drawn.

Is there any other debug information that I can access?

Myridium commented 2 years ago

I have also tried terminating the rmfakecloud-proxy process as I think it is using a lot of RAM. But that didn't help either. Also restarted the device again.

rien commented 2 years ago

Ah, rm2fb (https://github.com/ddvk/remarkable2-framebuffer) is a project which allows to hook into the framebuffer of the reMarkable 2 (to run other launchers and applications). It also provides a pseudo-framebuffer as a file at /dev/shm/swtfb.01 on the reMarkable.

If this file is present (which seems to be the situation in your case), reStream will read those contents. If there is no such file, it will try to carve the framebuffer data out of the xochitl memory.

If you are 100% sure you are not using rm2fb, you can try deleting /dev/shm/swtfb.01. This wil "fix" the detection so it uses the default method again. Hopefully that will fix your issue.

Myridium commented 2 years ago

Wait is rm2fb-server not supposed to be on the device? That process is running on the reMarkable. It could have been left behind by a faulty uninstallation procedure from the package manager. Grrr

Myridium commented 2 years ago

Right. I removed display and rm2fb-client which were installed as dependencies by whiteboard-hypercard. Now it works again!

Thank you so much for your help @rien

Eeems commented 2 years ago

You may have fixed reStream, but be aware that all third part apps that use the display (like whiteboard-hovercard) will now no longer work

Myridium commented 2 years ago

@Eeems that's okay, whiteboard-hovercard didn't work anyway.

Eeems commented 2 years ago

Have you opened an issue on that repository yet? It's worked fine for me on my rM1, and I haven't heard of anybody using a rM2 having issues yet.

Myridium commented 2 years ago

@Eeems . Yes. The docker container would not even build.