일상/삽질

이번주에 했던 삽질 - RISCV, termius

아이스얼그레이 2022. 7. 27. 21:10

개발환경을 셋팅 하다보면 삽질하게 되는 일이 상당히 많습니다. 사실 몇 시간 동안 삽질하고 원하는 결과가 안 나올 때면 엄청난 현타가 밀려옵니다. 시간은 때려 박았지만 결과는 없으며 github, stackoverflow를 다 뒤져봐도 답이 안보이기 때문이죠. 아직 이런 고통스러운 과정을 견디는 게 익숙지 않고 이 과정에 제게 도움이 될지도 잘 모르겠습니다.

 

그렇지만 이번주에 했던 삽질들을 기록해보려고 합니다. 추후에 같은 삽질을 또 안 할 수도 있고 의외의 부분에서 도움이 될 수 도 있으니까요.

 

1. RISC-V toolchain과 compiler 셋팅

저번 주부터 시도했던 삽질입니다. 제가 원하는 목표는 RISC-V compiler를 사용해서 C언어를 compile하고 "Hello RISC-V"를 출력하는 것이었습니다. 결과는 실패입니다.

 

사실 이건 Vortex라는 GPGPU를 시뮬레이션하면서 시도했던 과정입니다. Vortex는 RISC-V ISA를 기반으로 설계된 GPGPU인데, 이걸 simulation 하는 과정에서 RISC-V toolchain이 필요했습니다. 하지만 저는 이 toolchain을 사용해 제 Local PC에서 RISC-V를 compile하려고 시도했고 당연히 실패했습니다. 저는 인텔 CPU를 탑재한 노트북을 사용하니 당연한 결과였죠.

 

Vortex에서 RISC-V toolchain이 돌아간 이유는 RISC-V assembly를 알아먹는 GPGPU이기 때문입니다..!! 저는 정말 기본적인 이 부분을 간과하고 십 수 번의 git clone, make, make install을 반복했습니다ㅠㅠ spike, pk라는 RISC-V simulator가 있기는 한데 32bit, 64bit architecture을 설정하는 과정에서 실수가 있었는지 제대로 동작하지 않았습니다.

 

그래도 추후에 설계할 GPGPU ver2가 RISC-V ISA를 기반이기 때문에 이번에 겪었던 삽질이 개발환경 셋팅과 검증에 도움이 될 것이라고 생각합니다.

 

2. IPad에서 Local PC Ubuntu 접근을 위한 termius 셋팅

IPad를 사용해 코딩을 할 수 있는 방법을 찾던 중 termius라는 어플을 발견했습니다. 무료이며 비교적 간단한 과정을 통해 Local PC의 SSH에 접속할 수 있게 해 줍니다. 저는 network 관련 수업을 들은 적도 없고 공부해본 적도 없어서 관련 지식이 전무합니다. 그래서 무식하게 ip configuration과 port만 입력하면 연결할 수 있는 줄 알았습니다.

 

하지만 이건 삽질의 시작이었고 당장 필요하지도 않은 termius 셋팅 방법을 찾느라 어제 반나절을 꼬박 날려먹었습니다. 같이 공부하던 형의 말을 빌리자면, 외부에서 Local PC로 접속하는 것은 일종의 해킹이니까 쉽게 접속할 수 없는 것이 당연합니다. 그리고 termius 셋팅할 때 카페 와이파이를 사용했는데, 이러면 Local PC의 port와 wifi의 port?를 모두 알아야 해서 연결이 안 되는 것이 당연하다는 겁니다.(틀린 용어가 있을 수 있습니다.)

 

듣고 보니 너무나 당연한 얘기라서 더 이상의 삽질 없이 termius 셋팅을 포기했습니다. 그래도 추후에 집에있는 iptime으로 port forwarding이라는 것을 사용해서 termius 셋팅을 꼭 해보고 싶습니다.