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

Linux ARM support #429

Closed
atilimcetin opened this issue Jan 5, 2017 · 182 comments
Closed

Linux ARM support #429

atilimcetin opened this issue Jan 5, 2017 · 182 comments
Labels
embedded Feature Request fixed Check the Milestone for the release in which the fix is or will be available. Language Service
Projects
Milestone

Comments

@atilimcetin
Copy link

Is it possible to add support for Linux on ARM CPUs?

@sean-mcmanus
Copy link
Collaborator

Do you mean running VS Code on ARM CPUs? That doesn't work as far as I know. You can target an ARM CPU for debugging.

@atilimcetin
Copy link
Author

I've built VS Code on ARM Linux and can use it without any problem. But cpptools is not working well because Microsoft.VSCode.CPP.Extension.linux is a x86-64 binary. I wonder if there is a way to obtain ARM version of that executable.

@sean-mcmanus
Copy link
Collaborator

Ok, that's interesting to know. It's theoretically possible to add, but we're not planning to currently (it hasn't shown up enough in our telemetry).

@atilimcetin
Copy link
Author

I understand. Thank you.

@arnaudbuy
Copy link

+1, I am also interested ...

@sean-mcmanus sean-mcmanus reopened this Feb 26, 2018
@sean-mcmanus sean-mcmanus added this to the Backlog milestone Feb 26, 2018
@bobbrow bobbrow added this to Needs triage in 0.26.2 Milestone Aug 15, 2018
@sean-mcmanus sean-mcmanus modified the milestones: Backlog (old), Backlog Aug 29, 2018
@tehKaiN
Copy link

tehKaiN commented Feb 3, 2019

At the moment of writing there are unofficial vscode builds for raspi and I had to use one to deploy some hotfixes on my app. Having this addon available in such build would simplify stuff when cross-compiling is out of option.

@PodyNoo
Copy link

PodyNoo commented Feb 10, 2019

i would be also interested in support for Linux on ARM CPUs

@yorandrei
Copy link

+1 It would be great to have it work on arm

@bobbrow
Copy link
Member

bobbrow commented Apr 2, 2019

Please make sure you add your +1 to the first comment so we can keep track. Thanks!

@ghost
Copy link

ghost commented May 11, 2019

+1 here as well.

@Dellyjoe
Copy link

+1 here. Trying to use platformIO which depends on C/C++ Extensions. Sadly I guess I will have to wait, and can't code on my Tinkerboard

Thank you,
Joe

@sean-mcmanus
Copy link
Collaborator

@Dellyjoe You could try using platformIO with a different IDE or with a different C/C++ extension that runs on arm. Even if we did build for arm, our binary might use too many resources for the arm device to handle.

@tehKaiN
Copy link

tehKaiN commented May 16, 2019

@sean-mcmanus ARM platforms are not limited to raspi though. There are lots of armhf boards which have more than 2GB of RAM and way more powerful CPU (e.g. RockPi 4, RockPro64)

@MarkDunn-ObjectiveIntegration

+1
Running VSCode with clang-9 courtesy of 'headmelted'. on a Pine64
Although I have 'lldb-mi' and 'lldb-vscode' I have not yet found a working plugin for lldb

@sean-mcmanus
Copy link
Collaborator

@bobbrow Might be worth spending some cycles to scout what the blocking issues (if any) there are for building linux-arm/linux-arm64 binaries, and/or rechecking telemetry on what the usage of VS Code ARM is currently.

@sean-mcmanus sean-mcmanus added investigate This issue needs to be investigated/confirmed investigate: costing Investigate how much work is required and removed investigate This issue needs to be investigated/confirmed labels May 21, 2019
@bigOconstant
Copy link

Thanks, I'm on the arm64 build of raspberry pi os with the new 8gig model so would much appreciate a arm64 build to test.

@peter-pri
Copy link

peter-pri commented Jul 27, 2020

I am running my own vscode build for ARM64 on a Raspberry OS 64 bit OS and a Jetson Nano. On both systems it runs very well. I modified the build scripts to use less memory. Hopefully this not necessary with the 8GByte Version of the Raspberry 4B. I did not have the time to test it yet. Getting an official build for vscode and the cpptools would save me a lot of time :-)

@sean-mcmanus sean-mcmanus added the fixed Check the Milestone for the release in which the fix is or will be available. label Jul 29, 2020
@Devil7DK
Copy link

Waiting for release :p

@xor2k
Copy link

xor2k commented Jul 31, 2020

My office is full of Raspis and Nvidia Jetsons. When I wanted to show my collegue how cool Visual Studio Code CppTools are, there was this "ARM unsupported" error message and he said "ha ha"

@maxshevelev
Copy link

maxshevelev commented Aug 2, 2020

Also waiting for linux support for arm64. VSCode looks cool but without proper platform support it sucks.

@nurquhar
Copy link

nurquhar commented Aug 3, 2020

We could not wait and were now using Clion for Remote Host Jetson NX development (ARM64)... I hope Vscode/arm64 arrives soon as path back to VS may seem unnecessary.

@bigOconstant
Copy link

We could not wait and were now using Clion for Remote Host Jetson NX development (ARM64)... I hope Vscode/arm64 arrives soon as path back VS may seem unnecessary.

Visual studio can do it over ssh if you are trying to use another ide. https://docs.microsoft.com/en-us/cpp/linux/connect-to-your-remote-linux-computer?view=vs-2019

@nurquhar
Copy link

nurquhar commented Aug 3, 2020

Sorry my bad, my comment was not clear. I should have said 'path back to VScode'. i.e. Not meaning Visual Studio.

We could have used Visual Studio (with or without VisualGDB) except that some of the team are on Mac's instead of Win10. Although VS is available on the Mac now it is not the same product as on Windows. VScode would have offered an IDE environment capable of running on Windows, Mac's amd indeed Linux. If were doing python to ARM64 target no problem. But with C/C++ we are currently struck with the 'ARM not supported issue'.

@bigOconstant
Copy link

Sorry my bad, my comment was not clear. I should have said 'path back to VScode'. i.e. Not meaning Visual Studio.

We could have used Visual Studio (with or without VisualGDB) except that some of the team are on Mac's instead of Win10. Although VS is available on the Mac now it is not the same product as on Windows. VScode would have offered an IDE environment capable of running on Windows, Mac's amd indeed Linux. If were doing python to ARM64 target no problem. But with C/C++ we are currently struck with the 'ARM not supported issue'.

There is other options for c++. I've been using kdevelop on my pi4 directly. Use what works for you and your team I just hate to see someone pay for an ide when there are so many good free one's out there.

I do love using VSCode for everything so you don't get that context switch slow down.

@sean-mcmanus sean-mcmanus moved this from In Progress to Done in 1.0.0 Aug 5, 2020
@sean-mcmanus sean-mcmanus removed their assignment Aug 5, 2020
@sean-mcmanus
Copy link
Collaborator

sean-mcmanus commented Aug 5, 2020

0.30.0-insiders adds ARM (armhf) support when using the VS Code Remote Development extension (we tested it using Remote SSH). ARM64/AARCH64 support is still in progress (expected for the final 0.30.0 release). Let us know if there are other ARM targets that you would like us to add support for. Non-remote support would require VS Code to resolve issue microsoft/vscode#6442 . Our license doesn't allow using the C/C++ extension with headmelted/code-server/etc. and the debugger will explicitly disable itself -- someone could open an issue to track how many users would like the license changed if they want.

The install steps are to download https://github.com/microsoft/vscode-cpptools/releases/download/0.30.0-insiders/cpptools-linux-armhf.vsix (on the ARM device), open VS Code (on your non-ARM remote machine), use the Remote-SSH: Connect to Host... command, use the Extensions: Install from VSIX... command and select the vsix file. After we release the final 0.30.0, those manual vsix install steps won't be required since it could be installed via the marketplace or updateChannel mechanism (which doesn't work with 0.29.0 because it has the check to disable itself for ARM before it runs the updateChannel code).

If you find bugs, it would probably be better to create a new issue instead of adding it to this one.

UPDATE: Our clang-format dependency on ARM currently requires libtinfo5 be installed.

@Misery42
Copy link

+1 using code-server on my ARM-32 Revolution Pi

@microsoft microsoft locked as resolved and limited conversation to collaborators Aug 13, 2020
@microsoft microsoft unlocked this conversation Aug 13, 2020
@sean-mcmanus
Copy link
Collaborator

We encourage everyone who wants to use our extension with a local ARM release of VS Code to upvote microsoft/vscode#6442 . It is currently number 24 on VS Code's list of upvotes and behind releasing for ipad and Windows store.

@jgoeders
Copy link

I tried out the insiders build. It is crashing and I see these errors:

/home/byu/.vscode-server/extensions/ms-vscode.cpptools-0.30.0-insiders/bin/cpptools: /lib/arm-linux-gnueabihf/libm.so.6: version `GLIBC_2.27' not found (required by /home/byu/.vscode-server/extensions/ms-vscode.cpptools-0.30.0-insiders/bin/cpptools)
/home/byu/.vscode-server/extensions/ms-vscode.cpptools-0.30.0-insiders/bin/cpptools: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.28' not found (required by /home/byu/.vscode-server/extensions/ms-vscode.cpptools-0.30.0-insiders/bin/cpptools)

My arm system is running Ubuntu 16.04. I believe (could be wrong) this is limited to libc-2.23. Any suggestions? Will this be limited to newer libc versions?

@Misery42
Copy link

Misery42 commented Aug 21, 2020

/home/byu/.vscode-server/extensions/ms-vscode.cpptools-0.30.0-insiders/bin/cpptools: /lib/arm-linux-gnueabihf/libm.so.6:
My arm system is running Ubuntu 16.04. I believe (could be wrong) this is limited to libc-2.23. Any suggestions? Will this be limited to newer libc versions?

I had the same issue on Raspberry Pi, i solved it by downloading the requested version. But this should be done carefully, it can damage the system and prevent it working properly.

http://ftp.de.debian.org/debian/pool/main/g/glibc/libc6_2.28-10_armhf.deb

sudo dpkg -i --auto-deconfigure libc6_2.28-10_armhf.deb

This works for me.

UPDATE
https://github.com/microsoft/vscode-cpptools/releases/tag/0.30.0-insiders4

@ablankenship10
Copy link

Excited to try this out when support is added for the Jetson Nano (arm64/aarch64)! Working with OpenCV is quite unpleasant without intellisense :)

@zengming00
Copy link

我在我的安卓手机上利用linux deploy部署了一个linux环境
I deployed a linux environment using "linux deploy" on my Android phone

然后通过"npm install -g code-server"安装了code-server
Then installed code-server through "npm install -g code-server"

发现两个问题
Two problems found

首先C源码无法格式化
First, the C source code cannot be formatted

原因是以下文件没有可执行权限
The reason is that the following files do not have executable permissions

~/.local/share/code-server/extensions/ms-vscode.cpptools-0.30.0-insiders/LLVM/bin/clang-format

还有libtinfo5不存在,我通过以下命令解决
And libtinfo5 does not exist, I solved it with the following command

chmod +x clang-format
apt install libncurses5

第二个问题是无法启动debug
The second problem is unable to start debug

这三个其中一个没有执行权限:mono.linux-arm64 mono.linux-armhf OpenDebugAD7
One of these three has no executable permission: mono.linux-arm64 mono.linux-armhf OpenDebugAD7

~/.local/share/code-server/extensions/ms-vscode.cpptools-0.30.0-insiders/debugAdapters$ ls
bin  framework  mono.linux-arm64  mono.linux-armhf  OpenDebugAD7

./OpenDebugAD7 是个shell脚本,会根据uname -m的结果来执行"mono.linux-arm64"或"mono.linux-armhf",在我的设备上uname -m的结果是aarch64,所以它会执行"mono.linux-arm64",但实际我设备上只能运行"mono.linux-armhf"
./OpenDebugAD7 is a shell script that will execute "mono.linux-arm64" or "mono.linux-armhf" according to the result of uname -m, and the result of uname -m on my device is aarch64, so It will execute "mono.linux-arm64", but actually only "mono.linux-armhf" can be run on my device

@sean-mcmanus
Copy link
Collaborator

sean-mcmanus commented Sep 28, 2020

VS Code supports Linux ARM now on Insiders at microsoft/vscode#106289 (comment) . However, be careful about installing too many extensions, e.g. with the C/C++ Extension Pack (by Microsoft) it froze/crashed due to memory usage, but just installing the C/C++ (1.0.1) extension worked (with 300+ MB memory usage)....on a machine with 1 GB of memory.

@bigOconstant
Copy link

VS Code supports Linux ARM now on Insiders at microsoft/vscode#106289 (comment) . However, be careful about installing too many extensions, e.g. with the C/C++ Extension Pack (by Microsoft) it froze/crashed due to memory usage, but just installing the C/C++ (1.0.1) extension worked (with 300+ MB memory usage).

I've been using it on a raspberry pi with 8gigs of ram for a week and it works pretty well

@github-actions github-actions bot locked and limited conversation to collaborators Oct 30, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
embedded Feature Request fixed Check the Milestone for the release in which the fix is or will be available. Language Service
Projects
No open projects
1.0.0
  
Done
Development

No branches or pull requests