open-remote-ssh icon indicating copy to clipboard operation
open-remote-ssh copied to clipboard

Couldn't connect (=run installed vscrodium-reh) on aarch64 bionic (android)

Open GitMensch opened this issue 2 years ago • 10 comments

I'm trying to use a remote-workspace the first time; ssh access does work and there's a .vscodium-server after first connection as remote-workspace.

[Trace  - 10:32:20.302] Server install command stdout:
Server script already installed in /data/data/com.termux/files/home/.vscodium-server/bin/09385e58b89a2ff657ce1aafaaced37f28aaa7e8/bin/codium-server
Error server did not start sucessfully
31b9aca8cfc5806a52b74418: start
exitCode==1==
listeningOn====
connectionToken==92d012d1-2446-4102-a572-188d62f88974==
logFile==/data/data/com.termux/files/home/.vscodium-server/.09385e58b89a2ff657ce1aafaaced37f28aaa7e8.log==
osReleaseId==unknown==
arch==aarch64==
platform==Linux==
tmpDir==/tmp==
31b9aca8cfc5806a52b74418: end

[Error  - 10:32:20.302] Error resolving authority
Error: Couldn't install vscode server on remote server, install script returned non-zero exit status
	at t.installCodeServer (c:\Users\me\.vscode-oss\extensions\jeanp413.open-remote-ssh-0.0.29-universal\out\extension.js:1:411937)
	at process.processTicksAndRejections (node:internal/process/task_queues:96:5)
	at async c:\Users\me\.vscode-oss\extensions\jeanp413.open-remote-ssh-0.0.29-universal\out\extension.js:1:376368

log content:

/data/data/com.termux/files/home/.vscodium-server/bin/09385e58b89a2ff657ce1aafaaced37f28aaa7e8/bin/codium-server: 12: /data/data/com.termux/files/home/.vscodium-server/bin/09385e58b89a2ff657ce1aafaaced37f28aaa7e8/node: not found

Note: node can be executed on this machine (installed via pkg install nodejs)

Any idea how to process?

Additional Note: works fine when connecting to debian x86_64.

GitMensch avatar Mar 05 '23 10:03 GitMensch

ore checks done:

$ cd /data/data/com.termux/files/home/.vscodium-server/bin/09385e58b89a2ff657ce1aafaaced37f28aaa7e
data/data/com.termux/files/home/.vscodium-server/bin/09385e58b89a2ff657ce1aafaaced37f28aaa7e
$ ldd ./node
        libdl.so.2 => not found
        libstdc++.so.6 => not found
        libm.so.6 => not found
        libgcc_s.so.1 => not found
        libpthread.so.0 => not found
        libc.so.6 => not found
        ld-linux-aarch64.so.1 => not found

ok, that cannot work then (not sure if this node binary should be all-static)

$ mv ./node ./node-dist
$ cat - > node <<_EOF
> #!/bin/sh
> node $*
> _EOF
$ chmod +x node
$ rm ../../.09385e58b89a2ff657ce1aafaaced37f28aaa7e8.*

with the result:

[Trace  - 13:41:56.310] Server install command stdout:
Server script already installed in /data/data/com.termux/files/home/.vscodium-server/bin/09385e58b89a2ff657ce1aafaaced37f28aaa7e8/bin/codium-server
Error server did not start sucessfully
92dcec7f0fedddb7584738cf: start
exitCode==1==
listeningOn====
connectionToken==459e5d1d-f15c-48f8-8079-bb2b684f0408==
logFile==/data/data/com.termux/files/home/.vscodium-server/.09385e58b89a2ff657ce1aafaaced37f28aaa7e8.log==
osReleaseId==unknown==
arch==aarch64==
platform==Linux==
tmpDir==/tmp==
92dcec7f0fedddb7584738cf: end

[Error  - 13:41:56.310] Error resolving authority
Error: Couldn't install vscode server on remote server, install script returned non-zero exit status
	at t.installCodeServer (c:\Users\me\.vscode-oss\extensions\jeanp413.open-remote-ssh-0.0.29-universal\out\extension.js:1:411937)
	at process.processTicksAndRejections (node:internal/process/task_queues:96:5)
	at async c:\Users\me\.vscode-oss\extensions\jeanp413.open-remote-ssh-0.0.29-universal\out\extension.js:1:376368

and an empty log file...

GitMensch avatar Mar 05 '23 13:03 GitMensch

mmm strange, I assume you have all the required packages, does using the official remote extension works? or maybe could be a vscodium server issue :thinking:

jeanp413 avatar Mar 07 '23 22:03 jeanp413

I assume you have all the required packages

I don't know, they aren't listed in https://github.com/jeanp413/open-remote-ssh/blob/master/README.md and I've thought that vscodium-reh would either link statically to libraries that are not common on the system or distribute those along.

does using the official remote extension works?

I don't know, I've never used that.

GitMensch avatar Mar 07 '23 22:03 GitMensch

Check this table https://code.visualstudio.com/docs/remote/linux#_remote-host-container-wsl-linux-prerequisites

You'll need to install any of these if they are missing libc6 libstdc++6 python-minimal ca-certificates tar

jeanp413 avatar Mar 07 '23 23:03 jeanp413

Would it be useful to add a link to this table in the README of this extension?`Does it actually apply or isn't this mostly depending on the reh-binaries downloaded which are up to the provider - in our case vscodium? @daiyam Any ideas?

Note that this actually led me to the underlying issue - vscodium-reh for aarch64 is linked with a GNU/Linux toolchain, so expects libc and friends; while many arm based devices use bionic.

@jeanp413 Would it be possible to automatic download a bionic based version of vscodium-reh-bionic (apart from the issue that it doesn't exist yet, we only have linux + darwin for arm, bionic and win32 are missing)? Also: would it be possible to use the local-installed (already "native") node instead of the one that is part of the unpacked vscodium-reh, if yes - how?

@daiyam Do you see an option to get vscodium-reh-bionic-aarch64 and maybe even vscodium-win32-aarch64 to get alive?

GitMensch avatar Mar 08 '23 08:03 GitMensch

Do you see an option to get vscodium-reh-bionic-aarch64 and maybe even vscodium-win32-aarch64 to get alive?

You can create PRs to do that. But since I can't test them, I won't try.

daiyam avatar Mar 08 '23 09:03 daiyam

Hm, looks like we do have a GitHub action building windows arm64 already, just the "reh" is missing, but I have no clue where the build definition for this is. If that's easy maybe activate and ask users of vscodium-win32-arm64 to test it?

For aarch64-bionic that's a bit more complicated. It seems that the workflow would best add the NDK then use this to cross-compile. This would be more complicated, but I may give that a try "some day".

GitMensch avatar Mar 08 '23 11:03 GitMensch

@GitMensch vscode doesn't provide reh-win32-aarch64 (https://github.com/microsoft/vscode/blob/5ca7a333e12b313eda4092bf4d1ca60e365ec416/build/gulpfile.reh.js#L39) so it isn't as easy than flipping a switch. It will need active testing.

daiyam avatar Mar 08 '23 12:03 daiyam

So "ignore" or "create issue in VSCodium, start when users post there they'll test"?

GitMensch avatar Mar 08 '23 13:03 GitMensch

@GitMensch I'm trying to do the same thing, were you able to establish the ssh connection with termux? If yes, how did you solve the problem?

vinniec avatar Aug 11 '23 12:08 vinniec