안녕하세요. 

코드를 작성할 때, 시간 단축 및 가독성을 위하여 에디터를 많이 사용하게 됩니다. 가장 많이 사용하는 것이 아무래도 가벼우면서도 (200MB 안팎의 용량) 여러 Extension을 제공하는 VS code라고 말할 수가 있습니다.

VS code의 경우에는 Microsoft에서 코드를 공개하고 있습니다. 또한, Windows 뿐만이 아니라, Mac, Linux에서도 사용되고 있어요. 하지만 VS Code는 ARM 칩셋에서는 예외적인 경우말고는 정식적인 지원을 하지 않고 있습니다.

이는 VS Code만의 문제가 아닌 x86(Intel 및 AMD 칩셋, 대부분의 노트북과 데스크탑이 해당됩니다.)에서 최적화되게 설계되어있는 대부분의 데스크톱과 노트북 운영체제 특성상 간혹 가다 ARM에서 출시한 컴퓨터가 나오면 에뮬레이터를 거쳐서 사용하기 때문에 속도가 매우 느리거나, 아예 실행이 안 되는 경우가 있었습니다. 

제가 이전에 소개했던 Chromebook Duet의 경우에도 ARM 기반의 MeidaTek의 Helio 칩셋을 사용하고 있기 때문에 특정 라이브러리가 돌아가지가 않거나, 직접 빌드를 해주어야하는 귀찮음이 존재를 합니다. (하지만 공부용으론 이만한 게 없어요!)

하지만 저 x86의 특유의 떨어지는 전성비와 최근 인텔의 삽질로 인하여, 점점 ARM 칩셋이 데스크탑-노트북에 많이 사용하려는 시도를 하면서 (애플의 애플 실리콘으로 이주 및 삼성의 Galaxy book S, Microsoft의 Surface Pro X) 프로그램 호환에 대한 걱정도 많아지고 있습니다. 실제로 Galaxy Book S의 경우에는 그 부분 때문인지 중고시장에서 매우 저렴하게 팔리고 있더라고요. 

때문에 코딩에서 필수적인 요소 중 하나인 VS code를 어떻게 ARM을 구비한 장치에서 설치할 수 있는지에 대해서 알아보려고 합니다.

 

1. MS 유저의 경우 

친절한 마이크로소프트

https://code.visualstudio.com/Download

만약 ARM 칩셋을 기반으로 윈도우 노트북을 사용하고 있으면 그냥 쓰시면 됩니다. 

아무래도 MS사에서 이미 Surface Pro X라는 자사의 제품에다 스냅드래곤 칩을 사용한 노트북을 내놓았기 때문에 이를 위해서라도 공식 다운로드 홈페이지에 올려놓은 것 같습니다. 

지금까지 이것을 활용하는 기종은 2020년 9월 기준으로 이전에나온 Galaxy Book2, 그리고 Galaxy Book S, Surface Pro X밖에는 없을 것 같지만 차츰 기종이 늘어나면서 더 많은 기기에서 사용할 수 있을 것 같습니다.

 

2. Linux (Debian) 기반

리눅스 + ARM, 사람들이 어떤 이런 특이한 조합에서 VS code를 사용할까 싶지만, 생각보다 저 기기를 쓰는 사람은 많을 것 같습니다.

바로, Raspberry PI의 존재인데요, Raspberry PI에서는 Debian 기반의 Raspberry OS (구 Raspbian)과 Ubunutu Mate를 사용하는 사람들이 많기 때문에 생각보다 수요가 많은 것 같습니다. 

저 같은 경우에는 Raspberry에서는 코드를 다른 곳에서 짠 것을 넣거나, 조금의 수정해야 할 것 같으면 Vim Editor를 사용하여 곧바로 수정하는 것을 선호합니다. 하지만 이번에 새로 영입한 Chromebook Duet에서는 이전의 크롬북과 다르게 설치가 되지 않아서 이를 해결해야 할 방법이 있는데 두 가지가 있습니다. 

 

VNC 오른쪽에 설치 된것이 VS code Insiders 및 Code-oss 입니다.

 

2-1 Headmelter Code-oss .

 

https://code.headmelted.com/

HeadMelted 대문

이전의 Vscode를 찾는 사람들을 어여삐(?) 여겨 개발자들이 따로 VS code를 맞게 수정하여 빌드시켜놓은 HeadMelter입니다. 여러 버전이 있어서 (통상적으로 6개월마다 하나씩 나오는 것 같습니다.) 알맞게 설치할 수가 있고, CLI에 code-oss라고 치면 나오게 됩니다.

설치하게 될 경우 다음과 같이 나오게 됩니다.

 

다음과 같이 웬만한 기능들이나 Extension설치가 가능하다고 나옵니다. ARM64가 지원이 안된다고 나와있지만, 사용해본 결과 대부분의 기능에서 이상이 없습니다.

 

장점:

1. 이전의 아예 vs code를 사용할 방법이 없었던 사람들에게 되게 유용합니다.

2. 기존의 VS code보다 더 가볍고, 용량을 적게 잡아먹어서 코딩할 때 상당히 유용한 것 같아요.

3. 웬만한 extension 다 돌아갑니다.

 

단점:

1. 제 컴퓨터에서만 그런지는 모르겠지만, 패키지 업데이트할 때 버전을 못 읽어서 패키지 업데이트가 진행이 안 되는 경우가 있습니다. 때문에 이를 해결하기 위해서 패키지 경로에서 지워야 했습니다.

2. 몇몇 Extension이 돌아가지를 않습니다.

3. C언어 실행 시에 gcc 명령어를 입력하여 컴파일을 해주어야 합니다. Vs code에서는 키보드 단축키로 사용이 가능하지만(Windows와 WSL 모두), Code-oss에서는 실행이 되지 않습니다.

2-2 MS Visual Studio Code Insiders

(사실 이것을 쓰기 위해 블로그에 글을...)

Reddit에서 올라온 정보인데, MS Vscode Insiders에서 ARM에서 작동할 수 있도록 Insiders 방식으로 하여 올려놓았다는 글을 보게 되었고, 당장 설치하여 사용하게 되었습니다.

https://github.com/microsoft/vscode/pull/106289#issuecomment-691076575

이때, VS code와 Insiders의 차이가 무엇이냐 하면, 정규 버전과 베타 버전이라고 보시면 될 것 같습니다.

실행의 경우 code-insiders라는 명령어로 실행하게 됩니다.

아까와 달리 지원하지 않는다라는 알림 창이 뜨지 않는 것을 확인할 수가 있습니다.

 

장점

1. C언어 컴파일이 단축키로도 돌아갑니다.

2. 그전보다는 더 많은 Extension을 사용할 수 있습니다.

3. Code-oss은 수동으로 지웠다 다시 설치하는 식으로 업데이트를 하고, 이를 계속 확인을 해주어야 하고, 패키지 관리자에 등록이 될 경우 오류를 뿜어내었는데(Chromebook Duet 기준), 그럴 필요가 없습니다.

 

단점.

1. Code-oss보다 살짝 느리다는 느낌이 주관적으로 들었습니다.

 

저는 이런 이유 때문에 Code-oss에서 Visual Studio Code Insiders로 넘어가게 되었지만, 아마 Raspberry PI에서 사용하게 되면은 다시 Code-oss를 사용할 것 같습니다.

ARM VS Code를 정식 출시되는 날이 빨리 왔으면 좋겠습니다. 

'개발 환경 설정 > Linux' 카테고리의 다른 글

Linux 볼륨을 조정해보자. Alsamixer  (0) 2020.05.09

I. Linux 실행에서의 어려움

지난 번 Ubuntu 설치에서 말했던 것처럼 Linux 설치의 경우 Window 설치보다 안정성이 떨어질 가능성이 높습니다. (특히 Debian 직접 설치의 경우) 많은 하드웨어를 직접 인식을 시켜주거나 혹은 성능이 전부 발휘되지 않을 때가 많은데요. 저같은 경우에도 Lubuntu를 쓸 때는 Bluetooth를 여러 개 돌려가면서 쓸 때, 인식을 다시 시켜주거나, Chromebook Ubunutu를 쓸 때에는 블루투스가 잘 작동이 되지 않는 듯한 문제가 있었습니다.

오늘 들어갈 문제도 바로, Ubuntu에서 소리가 제대로 나오지 않아서 생기는 문제들을 해결하기 위한 조치를 이야기를 하고자 합니다. 비록 저번에 간단한 툴을 Github에서 다운받아서 사용하긴 했는데, 이게 이어폰이나 스피커를 전환할 때마다 다시 명령어를 치고 껐다켜야하는 문제점이 있어서 다른 해결책을 찾다가 발견한 것이 Alsamixer입니다.

일단 먼저 Ubuntu에서의 Sound 부분을 체크해보도록 하겠습니다.

 

Ubuntu Sound 부분

 

보통은 저기 사운드 옆의 그림이 X 표시가 쳐져있는 경우도 있고, 아니면 잘 인식하는 경우도 있습니다. 하지만 저같은 경우에는 인식을 하더라도 스피커나 이어폰 하나만 되고, 나머지는 잘 안되는 경우가 있었는데요, 앞서 말한 것으로 하면 되긴 하지만, 전환하면서 사용할 경우에는 불편함을 상당히 느꼈습니다. 

그럼 이 해결 책으로 Alsamixer를 다운로드 받아보도록 하겠습니다.

 

sudo apt-get install alx-utils

다음과 같이 터미널에 입력을 하여 다운을 받을 수가 있습니다.

 

이후 터미널에서

alsamixer

를 사용하게 되면 사운드 카드에서 사운드를 조정가능한 alsamixer가 켜지게 됩니다.

 

II. Sound output 조정하기

alsamixer 처음 화면

먼저, 켜지게 되면 우선 순위가 되는 alsamixer가 켜지게 됩니다. 보통은 여기서부터 알록달록한 그래프가 보이게 되는데, 저 같은 경우에는 Chromebook에 운영체제를 두 개를 올려서, 그것도 sd카드에 설치를 하였기 때문에 사운드 카드에서는 바로 찾을 수 없는 것 같습니다. 때문에 F6를 눌러서 다른 부분을 켜줘야합니다.

카드 변경 및 헤드폰

이렇게 카드가 바뀌면 왼윗쪽에 HDA Intel에서 chtrt5650으로 바뀌게 되는데, 그래프가 보이는 쪽으로 변경을 해주시면 됩니다. 일단 먼저, F1을 눌러 도움말을 켜도록 하겠습니다.

 

F1 도움말

보시면 알 수 있듯이 많은 기능들이 나와있습니다. 저희가 주로 쓸 것은 화살표와 M 밖에 없긴하지만

 

좌우 스피커 조종 Q W E (볼륨 증가) ZXC (볼륨감소)

도 유용하게 사용을 하고 있습니다. 가장 많이 쓸 것은 M이라는 각 하드웨어를 끄고 키는 기능입니다.

 

저의 컴퓨터에는 이어폰이 먼저 On으로 설정 되있고, Speaker가 Off로 설정이 되어 있습니다.

 

Headphone On 상태

 

 

Speaker Off 상태

때문에 Ubuntu 기본 사운드 설정에서 아무리 소리를 올려봐도 소리가 나오지 않는 부분이 볼륨은 문제가 없는데, 하드웨어 채널이 꺼져있었기 때문입니다. 이를 M을 눌러서 켜주면, 소리가 잘 나오는 것을 확인 할 수가 있습니다.

이 때, Speaker를 키더라도 Headphone을 끄지 않으면 둘 다 소리가 나오니 한 쪽을 마저 끄는 것도 중요할 것 같습니다.

 

III. 마치며

이런 방법을 통해서 자동 전환이 가능한데, 보통은 사운드 카드에서 Automate 부분을 켜주면 이어폰과 헤드폰이 자동으로 전환이 된다고 합니다. 하지만 저는 이 부분을 사용할 수가 없었는게, Chromebook에서 간접적으로 운영체제를 설치하여 사용하고 있기 때문에 Automate 부분을 사용할 수 가 없었습니다. 컴퓨터나 사운드 카드마다 다른 것 같아, 따로 글은 올리지는 않지만, 보통은 Alsamixer에 정상적으로 사용이 가능하며, 다른 명령어를 통해서도 전환이 가능합니다.

(다른 운영체제에 듀얼부팅으로 설치만 안한다면)

이상으로 Alsamixer에 대한 글을 마치도록 하겠습니다.

'개발 환경 설정 > Linux' 카테고리의 다른 글

VScode를 ARM CPU에서 사용해보자!  (0) 2020.09.26

+ Recent posts