microsoft / vscode-remote-release

Visual Studio Code Remote Development: Open any folder in WSL, in a Docker container, or on a remote machine using SSH and take advantage of VS Code's full feature set.
https://aka.ms/vscode-remote
Other
3.66k stars 286 forks source link

Support Linux ppc64le #401

Open hrzafer opened 5 years ago

hrzafer commented 5 years ago

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

alecampos2009 commented 2 years ago

+1 for POWER9. As mentioned earlier, some of the largest machines in the world are POWER9.

darkbasic commented 2 years ago

It's completely unrelated to the proprietary extension but if someone wants to use the OSS version of vscode I maintain the ebuilds in the pf4public overlay: https://github.com/PF4Public/gentoo-overlay/pull/134

afsanjar commented 2 years ago

+1 for POWER9 & POWER10. I could provide access to a Power system if that helps. Also willing to own any porting/testing tasks required.

MSKazemi commented 2 years ago

As others mentioned a lot of HPC systems are based on POWER9, BUT the VSC does NOT support it yet.

qhaas commented 2 years ago

Several of us that use the Summit supercomputer would love VSC ppc64le support.

kseniadumpling commented 2 years ago

Yet another comment: pls add support for ppc64. The idea of coding inside a web browser is terrifies me a little bit...

aamarin commented 2 years ago

There has been plenty of past requests and offers to contribute to this feature. I understand that this team is busy with their priorities; we would appreciate a response, update, or path forward with contributing to this feature since we want a seamless experience with us VS Code instead of working around it using code-server.

satwaghole commented 2 years ago

Yes..I agree..VSCode is MUST for ppc64le arch.

On Tue, 7 Jun, 2022, 00:16 afsanjar, @.***> wrote:

+1 for POWER9 & POWER10. I could provide access to a Power system if that helps.

— Reply to this email directly, view it on GitHub https://github.com/microsoft/vscode-remote-release/issues/401#issuecomment-1147770927, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJPKH6AEHT2XHFES5J2OHHDVNZBQDANCNFSM4HONHJEA . You are receiving this because you commented.Message ID: @.***>

qhaas commented 2 years ago

willing to own any porting/testing tasks required.

IBM and OSU provide FOSS developers access to ppc64le cloud

awlauria commented 2 years ago

Any update on getting this working for ppc64le?

gpaulsen commented 2 years ago

I'm also interested in a ppc64le build for the remote support for vscode. I'm more interested in bare-metal than containers at this point however.

Jose-Verdu-Diaz commented 1 year ago

This should be architecture agnostic

I would also love to have this feature.

MorenoLaQuatra commented 1 year ago

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

AxoyTO commented 1 year ago

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

pfrommerd commented 1 year ago

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 commented 1 year ago

@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: https://github.com/microsoft/vscode/issues/182743

lex-ibm commented 1 year ago

@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 commented 1 year ago

@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 commented 1 year ago

@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 commented 1 year ago

@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: https://github.com/microsoft/vscode/issues/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 commented 1 year ago

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 commented 11 months ago

Is there any way to get this working?

lex-ibm commented 11 months ago

Is there any way to get this working?

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

iamabhishekanupam commented 10 months ago

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

nature21 commented 7 months ago

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 commented 7 months ago

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 commented 7 months ago

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 commented 7 months ago

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 commented 7 months ago

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 commented 7 months ago

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 commented 5 months ago

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 commented 5 months ago

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 commented 4 months ago

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

istabrak-abbes commented 3 months ago

I m still interested on this feature too