rien / reStream

Stream your reMarkable screen over SSH.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cannot use zstd even though already put into both computer and remarkable.

huijunchen9260 opened this issue · comments

The following is my error code.

Somehow the shell cannot find zstd in the remarkable.

sh: /home/root/zstd: No such file or directory

I tried both dash and bash.

/usr/bin/zstd
ffplay version n4.2.2 Copyright (c) 2003-2019 the FFmpeg developers
  built with gcc 9.2.1 (Arch Linux 9.2.1+20200130-2) 20200130
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --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-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
sh: /home/root/zstd: No such file or directory0KB sq=    0B f=0/0   
zstd: /*stdin*\: unexpected end of file 
Input #0, rawvideo, from 'pipe:':
  Duration: N/A, bitrate: 1054310 kb/s
    Stream #0:0: Video: rawvideo (Y1[0][16] / 0x10003159), gray16le, 1408x1872, 1054310 kb/s, 25 tbr, 25 tbn, 25 tbc

If I log in the remarkable ssh and try to type it, it say no such file or directory, while zstd is actually there.

remarkable: ~/ /home/root/zstd                                                                                 
-sh: /home/root/zstd: No such file or directory
remarkable: ~/ ls zstd                                                                                         
zstd
commented

Strange. @huijunchen9260, what is your home directory on your remarkable? e.g. what does pwd produce?

commented

I have pushed a possible fix. Could you look if it fixes the problem?

I'm experiencing the same issue:

remarkable: ~/ pwd
/home/root
remarkable: ~/ ls zstd 
zstd
remarkable: ~/ ./zstd 
-sh: ./zstd: No such file or directory
remarkable: ~/ /home/root/zstd 
-sh: /home/root/zstd: No such file or directory

sh doesn't seem to find the binary if I try to execute it.

I tried the most recent version of the script (with ~/zstd) but as you can see, the path doesn't seem to be the problem

EDIT:
Solved it: The path of ld is different on the rM. I just created a symlink.

remarkable: ~/ file zstd 
zstd: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /opt/lib/ld-linux.so.3, for GNU/Linux 3.2.0, stripped
remarkable: ~/ ln -s "/lib/ld-linux-armhf.so.3" /opt/lib/ld-linux.so.3
ln: /opt/lib/ld-linux.so.3: No such file or directory
remarkable: ~/ mkdir -p /opt/lib
remarkable: ~/ ln -s "/lib/ld-linux-armhf.so.3" /opt/lib/ld-linux.so.3
remarkable: ~/ ./zstd 
Incorrect parameters
Usage : 
      zstd [args] [FILE(s)] [-o file] 

FILE    : a filename 
          with no FILE, or when FILE is - , read standard input
Arguments : 
 -#     : # compression level (1-19, default: 3) 
 -d     : decompression 
 -D file: use `file` as Dictionary 
 -o file: result stored into `file` (only if 1 input file) 
 -f     : overwrite output without prompting and (de)compress links 
--rm    : remove source file(s) after successful de/compression 
 -k     : preserve source file(s) (default) 
 -h/-H  : display help/long help and exit
commented

Ah, that is probably caused by entware. I gues I could try compiling a statically linked binary of zstd.

Thanks for troubleshooting!

I just had a look at the entware repo. It puts everything into /opt which is linked to ~/.entware but /opt doesn't exist on the rM and is created during the installation of entware.
I think a statically linked binary would be the best solution for users without entware.

You're welcome. Awesome project, by the way!

After I tried the update version, it works!
Thank you for such an awesome project!

commented

I have switched to lz4 in my latest commit (9f6ba5d), which makes it a lot easier to install on the reMarkable (and as bonus: it's slightly faster!).

@rien, maybe you'll find this interesting: https://facebook.github.io/zstd/#small-data

With train data, zstd can beat lz4's speed. And it already has more throughput, so maybe better framerate. Although it's good to refrain ourselves from reimplementing a codec job using zstd and just stick to the basics.

Cool project, btw.