Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Linux ppc64le #401

Open
hrzafer opened this issue May 21, 2019 · 88 comments
Open

Support Linux ppc64le #401

hrzafer opened this issue May 21, 2019 · 88 comments
Assignees
Labels
feature-request Request for new features or functionality ssh Issue in vscode-remote SSH

Comments

@hrzafer
Copy link

hrzafer commented May 21, 2019

When I try to connect our IBM Power 9 remote server (RedHat), I get Can't connect to xxx: unreachable or not Linux x86_64 (Linux ppc64le) error. Since the extension purely depends on ssh and the ppc64le is still Linux, this shouldn't be much of a problem.

Thanks

@roblourens
Copy link
Member

We would have to build our native dependencies for Linux which we probably won't do, but I'll leave this open as a feature request.

@roblourens roblourens added feature-request Request for new features or functionality ssh Issue in vscode-remote SSH labels May 21, 2019
@hrzafer
Copy link
Author

hrzafer commented May 22, 2019

Hi!
Does that mean, this extension sends some binaries over ssh to the remote server? Is there a document on how this works? I wonder if we can compile necessary parts on our own.

@roblourens
Copy link
Member

The extension downloads and installs a server on the remote machine: https://code.visualstudio.com/docs/remote/remote-overview

The server components are not open source.

@ThePrez
Copy link

ThePrez commented Oct 11, 2019

The extension downloads and installs a server on the remote machine: https://code.visualstudio.com/docs/remote/remote-overview

The server components are not open source.

I apologize, as this may be the wrong place to ask, but.... Are there any plans to open source those server components?

@brando90
Copy link

brando90 commented Feb 9, 2020

Is there any way to help to make this feature supported? @roblourens

@brando90
Copy link

brando90 commented Feb 9, 2020

Just out of curiosity, what architectures are supported?

@roblourens
Copy link
Member

@nicholaiTukanov
Copy link

I agree with @brando90. I would love to have this feature.

@raph38130
Copy link

+1 power9 support

@rkube
Copy link

rkube commented Mar 19, 2020

power9 support would very helpful. Many HPC clusters are power9 based, it would be great to use vscode to edit files on these systems.

@brando90
Copy link

brando90 commented Mar 26, 2020

Since it seems that this is not a priority feature (but extremely useful to many of us) I thought that perhaps something like push to the server on save would be good enough (the way atom, pycharm does it). Anyone know of a feature like that?

Same question on SO, hopefully, it will be helpful to people someday: https://stackoverflow.com/questions/60875795/is-there-a-remote-sync-on-save-for-vs-code-that-works-for-any-sever-architecture

microsoft/vscode#93525

@AndrewGaspar
Copy link

@brando90 Have you tried sshfs?

@carlosedp
Copy link

+1

@rpsene
Copy link

rpsene commented Apr 11, 2020

This should be architecture agnostic, given the necessary freedom so developers can use VSCode on amd64, arm, ppc64le and s390x.

@Proteusiq
Copy link

We would have to build our native dependencies for Linux which we probably won't do, but I'll leave this open as a feature request.

Do we have any status report on whether VS Code will support Power X anytime soon?

@rpsene
Copy link

rpsene commented Apr 27, 2020

@roblourens I can give free access to Power to be attached to any CI infrastructure. Does it help?

@BaptisteRoseau
Copy link

BaptisteRoseau commented May 14, 2020

I would also like to have Remote - SSH work on Power architecture.
For those of you who would like and SFTP extension while waiting for an update of this one, you could use liximomo's SFTP extension: https://marketplace.visualstudio.com/items?itemName=liximomo.sftp

You don't need to write any password in config files actually, you can type it on the connection.

@balos1
Copy link

balos1 commented May 27, 2020

+1

@hibagus
Copy link

hibagus commented May 29, 2020

I would love to have ppc64le Power-9 support for VScode remote.

@PaulYuuu
Copy link

PaulYuuu commented Jun 1, 2020

+1

@danielhb
Copy link

danielhb commented Jun 1, 2020

For this feature to get more traction I suggest renaming this issue/feature request to "Support Linux amd64/arm/ppc64le/s390x" or similar. Like @rpsene mentioned above, this is not a ppc64le exclusive feature. ARM folks are glancing at this title and thinking this has nothing to do with them.

@xapundel
Copy link

+1

@AndrewGaspar
Copy link

For this feature to get more traction I suggest renaming this issue/feature request to "Support Linux amd64/arm/ppc64le/s390x" or similar. Like @rpsene mentioned above, this is not a ppc64le exclusive feature. ARM folks are glancing at this title and thinking this has nothing to do with them.

ARM and amd64 are already supported.

@xapundel
Copy link

I can help with porting to ppc64le. I have VM for build/test. I also have exp in migration process. Will it help if I provide access to ppc64le for dev team.

@roccqqck
Copy link

roccqqck commented Jul 7, 2020

@xapundel
if it is possible to install nodejs at ppc64, There might be another solution.
https://github.com/cdr/code-server
This project is a web vscode.
It supports almost every extensions of vscode.

You could use npm to build code-server easily.
https://github.com/cdr/code-server/blob/master/doc/install.md#yarn-npm

@Jose-Verdu-Diaz
Copy link

This should be architecture agnostic

I would also love to have this feature.

@MorenoLaQuatra
Copy link

I jump on the train, any update or interest from VSC dev?

@AxoyTO
Copy link

AxoyTO commented Apr 5, 2023

Still no ppc64le support? Can't connect to our supercomputer node

@pfrommerd
Copy link

pfrommerd commented May 19, 2023

I have managed to get VSCode working with ppc64le. Although the official microsoft binaries are closed-source, the open-source-branded VSCodium has a remote development plugin which can use the open-source-compiled VSCodium binaries.

I hacked the VSCode source repository to think it was performing an x86 build so the electron dependencies would download the x86 version but use the correct ppc64le nodejs binaries in the needed places. The VS Code build is nonfunctional (since it is built agains the x86 electron) but the Remote Extension Host build works great.

I have only built the VSCodium remote extension host for a single version of VSCodium (1.78.2.23132) and modified the remote development plugin for VSCodium.

If you want to try this out, download VSCodium (it must be 1.78.2.23132 otherwise there will be a version mismatch) and manually install my modified remote ssh plugin https://github.com/pfrommerd/open-remote-ssh

You also need to change where the remote ssh plugin gets its binaries from. Go into settings and change the remote.ssh server download url template setting to:
https://github.com/pfrommerd/vscodium/releases/download/${version}.${release}/vscodium-reh-${os}-${arch}-${version}.${release}.tar.gz

Something is not quite right with my build. Running the python extension on the remote host fails due to some modules in my compiled remote extension. Specifically I get the error,

module 'typing' has no attribute '_SpecialForm'

which suggests that I somehow built it with a different version of the typing module than what should be included. Not entirely sure why that is the case.

If things go well you should be able to connect though and I have had no issues with any of the editing capabilities otherwise. I have no idea how portable my remote extension host build is to other systems since I am running on a pretty up-to-date REHL 8 and have no idea what system dependencies I have inadvertently compiled against.

The best path to get this working 100% would be for someone associated with the VSCodium project to make ppc64le remote host builds part of their continuous integration pipeline. I don't have the bandwidth to put that together myself right now but figured I would share this hack in case someone did.

@darkbasic
Copy link

@pfrommerd it might also be worth trying a native ppc64le build of vscode along with native ppc64le electron while trying to run the proprietary x86 extensions via qemu-user dynamic translation (with binfmt_misc and the QEMU_LD_PREFIX env variable pointing to a x86 chroot). I succesfully use a similar setup for Android Studio (ppc64le Java SDK with x86 Android SDK) but I didn't try to mix and match with vscode because I'm currently not using the remote extension.

If you're going to try it please beware of this regression because electron-22 doesn't play well with vscode ppc64le: microsoft/vscode#182743

@lex-ibm
Copy link

lex-ibm commented Jun 6, 2023

@AxoyTO @pfrommerd @darkbasic we got a few PRs merged into VSCodium/vscodium and jeanp413/Open-Remote-SSH that makes it possible to connect to a remote linux-ppc64le server using the official release of VSCodium and Open-Remote-SSH. 🚀
@darkbasic I didn't know there was a working version of electron for PowerPC64LE. That might be an interesting project to take on.

@darkbasic
Copy link

@lex-ibm there are patches available and on ongoing mainlining effort since years, but unfortunately Google refuses to mainline ppc64le support in Chromium/Electron out of technical reasons and just because they are not interested in supporting the architecture.

@lex-ibm
Copy link

lex-ibm commented Jun 6, 2023

@darkbasic I feel like I could get that working on another PR for VSCodium, but I also feel like that would be asking too much of the VSCodium team to support and maintain the patches necessary to get Electron working for PowerPC64LE or have the build image stuck with a single version of Electron if no one decides to maintain it.

@darkbasic
Copy link

@lex-ibm vscode patches are trivial if you use system electron: https://github.com/PF4Public/gentoo-overlay/blob/master/app-editors/vscode/files/ppc64le/add-ppc-target.patch

chromium/electron patches on the other hand are definitely NOT trivial:
https://github.com/PF4Public/gentoo-overlay/blob/master/dev-util/electron/electron-24.4.1.ebuild#L40-L43
https://github.com/PF4Public/gentoo-overlay/blob/master/dev-util/electron/electron-24.4.1.ebuild#L1394-L1402

The good news is that the patchset is well maintained by Timothy Peterson and I personally (unofficially) maintain the official Gentoo Chromium ppc64 port since at least one year, along with electron, vscode and several other packages on the PF4Public overlay.

The problem is that since the switch to electron 22 vscode doesn't work anymore on ppc64: microsoft/vscode#182743

This is most probably due to the lack of v8 sandbox support on ppc64, but despite compiling native modules against our custom headers (where v8_sandbox is disabled) there is still some kind of mismatch which makes node-spdlog segfault.

Also 1.78+ doesn't work with electron 19 either: it silently exits with no errors whatsoever.

Prior to this commit it works flawlessly with electron 19 and if fact I use vscode 1.78 (minus that commit) daily on my Raptor CS 2 ppc64le workstation to do web and mobile development.
I even use Flipper (which works against any version of electron) and Android Studio via the native ppc64le JRE (but I dynamically translate the x86_64 Android SDK via qemu-user).

If you can help us in any way that would be much appreciated.

@lex-ibm
Copy link

lex-ibm commented Jun 7, 2023

I'll take a look at this and see if I can get some help on figuring this out. I won't make any promises.

@ghost
Copy link

ghost commented Nov 29, 2023

Is there any way to get this working?

@lex-ibm
Copy link

lex-ibm commented Nov 29, 2023

Is there any way to get this working?

@EdvardsZ2 Open Remote - SSH and VSCodium have PPC64LE support.

@iamabhishekanupam
Copy link

Any update on the support?
It will be great to have POWER 9 & 10 supported @roblourens

@nature21
Copy link

nature21 commented Mar 7, 2024

Is there any way to get this working?

@EdvardsZ2 Open Remote - SSH and VSCodium have PPC64LE support.

I appreciate your comment, but in my case, I cannot connect to my ppc64le server.

@nature21
Copy link

nature21 commented Mar 8, 2024

Is there any way to get this working?

@EdvardsZ2 Open Remote - SSH and VSCodium have PPC64LE support.

I appreciate your comment, but in my case, I cannot connect to my ppc64le server.

I figured this out. The newest version doesn't have a compiled version of ppc64le. I rolled back 1.85.1.23348, and everything works fine.

@sdturne
Copy link

sdturne commented Mar 8, 2024

Is there any way to get this working?

@EdvardsZ2 Open Remote - SSH and VSCodium have PPC64LE support.

I appreciate your comment, but in my case, I cannot connect to my ppc64le server.

I figured this out. The newest version doesn't have a compiled version of ppc64le. I rolled back 1.85.1.23348, and everything works fine.

Not being an expert in the finer points of VSCode extensions, how to I establish values for the ${release} and ${version} variables so they will be substituted into the remote.SSH.serverDownloadUrlTemplate string by the server installation script?

@nature21
Copy link

nature21 commented Mar 8, 2024

Is there any way to get this working?

@EdvardsZ2 Open Remote - SSH and VSCodium have PPC64LE support.

I appreciate your comment, but in my case, I cannot connect to my ppc64le server.

I figured this out. The newest version doesn't have a compiled version of ppc64le. I rolled back 1.85.1.23348, and everything works fine.

Not being an expert in the finer points of VSCode extensions, how to I establish values for the ${release} and ${version} variables so they will be substituted into the remote.SSH.serverDownloadUrlTemplate string by the server installation script?

I work this around by simply downgrading the version of the local installation of Codium to 1.85.1.23348. Since by default, the remote server will install the same version of Codium-server, this will work.

@sdturne
Copy link

sdturne commented Mar 8, 2024

Not being an expert in the finer points of VSCode extensions, how to I establish values for the ${release} and ${version} variables so they will be substituted into the remote.SSH.serverDownloadUrlTemplate string by the server installation script?

I work this around by simply downgrading the version of the local installation of Codium to 1.85.1.23348. Since by default, the remote server will install the same version of Codium-server, this will work.

Hmm, well I don't know how to do that either. Does this involve a complete replacement of the MIcrosoft VSCode with VSCodium instead?

@sdturne
Copy link

sdturne commented Mar 8, 2024

Hmm, well I don't know how to do that either. Does this involve a complete replacement of the MIcrosoft VSCode with VSCodium instead?

Disregard. I learned all about and installed VSCodium and was able to install that specific version (which required changing the Settings -> Application -> Update -> Mode to "none", then uninstalling and reinstalling so the dumb thing wouldn't automatically trash the specific version I had installed), then I was able to connect to a remote ppc64le host as you described. Thanks for the hint.

@nickdavila
Copy link

nickdavila commented May 7, 2024

Thanks for the guide! I mostly needed this for Jupyter Lab and it unfortunately did not work, but it led me to the solution I needed which was Case 2, Option 2 in this video.

@rpsene
Copy link

rpsene commented May 7, 2024

It is almost time to celebrate the 5th anniversary of this issue. I hope that we can get it on RISC-V quicker.

@lex-ibm
Copy link

lex-ibm commented Jun 11, 2024

I'm still interested on this feature. The patches to build reh don't need electron.

@istabrak-abbes
Copy link

I m still interested on this feature too

@priyanshikhetwani
Copy link

Workaround to Install Open Remote - SSH in VS Code (via Open VSX)

Since the Open Remote - SSH extension isn't available on the official VS Code Marketplace for certain architectures, we can have a Bash script that:

Download the extension from Open VSX (an architecture-agnostic registry).
Install it manually in VS Code using the code CLI.
Clean up the downloaded .vsix file after installation.

It can automatically install Open Remote - SSH in VS Code, bypassing marketplace restrictions.

@drchristensen
Copy link

The extension downloads and installs a server on the remote machine: https://code.visualstudio.com/docs/remote/remote-overview

The server components are not open source.

Can these server components be containerized? Running an x96_64 executable in a container with qemu-user-static binaries and binfmt can be done transparently on several distros supporting ppc64le. Comes standard on Fedora Workstation.

@darkbasic
Copy link

I have been able to run even Android Studio with its x86_64 SDK on ppc64le, so I guess it could be possible.

@ShihengDuan
Copy link

Any updates on this issue?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request Request for new features or functionality ssh Issue in vscode-remote SSH
Projects
None yet
Development

No branches or pull requests