티스토리 뷰
Edit and Execute code in Raspberry Pi from Visual Studio Code in my computer
주먹불끈 2019. 3. 20. 18:09상황
- 라즈베리파이에서 센서와 연동하는 파이썬 프로그램을 개발하고 있다.
- 윈도우 원격 데스트톱 연결로 접속하여 라즈베리파이에 깔아둔 Spyder3 프로그램을 사용하여 개발하는데 너무 느리다
* 2018-05-30 에 작성하였던 글을, 2019-03-19 에 필요에 따라 다시 따라 해보면서 정리, 블로깅 한다.
목표
Windows PC 의 VSCode 에서, 네트웍으로 연결되어 있는 라즈베리파이의 파일을 편집하자.
- VSCode 의 terminal 에서 ssh로 라즈베리파이에 접근한다.
- ssh terminal 로 접속한 라즈베리파이에서 특정 파일을 VSCode 로 열 수 있고, 바로 실행해볼 수도 있다.
설치 및 설정
1) Windows PC 에서 OpenSSH, Remote VSCode (VSCode extension) 설치 및 설정 2) Raspberry pi 에서 rmate 설치 |
cli 에서 동작하는 OpenSSH 설치하기 (for Windows 7)
설치 - Windows 10은 자체 프로그램이 있는듯 하지만 Windows 7에서는 별도 설치해야 하는 것으로 보임 - 링크: http://www.mls-software.com/opensshd.html - 현시점 (2019-03-19) 최신버전: OpenSSH 7.9p1-1 https://www.mls-software.com/files/setupssh-7.9p1-1.exe
PATH 추가 윈도우의 환경변수 Path에 OpenSSH 의 ssh.exe 경로를 추가 C:\Program Files (x86)\OpenSSH\bin |
Remote VSCode - VSCode extension 설치 (windows)
VSCode 의 확장: 마켓 플레이스에서 설치
설정변경
- Ctrl+comma (,) 를 해주고 remote 검색
- host, port 는 아래와 같이 기본설정으로 두고, remote.onstartup 을 true 로 변경한다
라즈베리파이에 rmate 설치
- VSCode 에 설치한 Remote VSCode 와 쌍을 이뤄서 동작할 녀석.
- 여러가지 설치방법이 있으나 라즈베리 파이의 터미널에서 아래 두 라인을 실행하면 설치된다. (bash 버전)
- GitHub 링크: https://github.com/aurora/rmate
sudo wget -O /usr/local/bin/rmate https://raw.github.com/aurora/rmate/master/rmate sudo chmod a+x /usr/local/bin/rmate |
라즈베리파이의 파일을 Windows PC 의 VSCode 에서 열어보자
VSCode의 terminal 에서 아래와 같이 연결
사용법) ssh -R 52698:127.0.0.1:52698 <raspberry_pi_id>@<raspberry_pi_IP_ADDRESS> |
예1) ssh -R 52698:127.0.0.1:52698 pi@www.naver.com 예2) ssh -R 52698:127.0.0.1:52698 pi@www.naver.com -p 1234 → default port 인 22 가 아니라 1234 로 변경한 경우 (보안) → 변경방법 링크: https://goo.gl/Ry4FuB * 만약 port forwarding 을 통해 외부에서도 이용하려면, 라즈베리파이의 해당 port 를 열어두어야 한다. |
password 를 입력하면 접속된다.
라즈베리파이에서 원하는 파일 열기
아래처럼 라즈베리파이에서 실행하면 해당 파일이 내 컴퓨터에서 열린다
사용법) rmate <원하는 파일> |
예) rmate app.js |
Trouble Shooting
1) vs code terminal 에서 ssh 명령이 실행되지 않음 (Windows 7)
- 위에 이미 언급되었듯 OpenSSH 의 ssh.exe 파일 경로를 환경변수 Path에 추가해줘야 함
- C:\Program Files\OpenSSH\bin
2) VSCode terminal 에서 ssh 로 Raspberry Pi 연결 시도시 접속실패
- "no key alg" 라는 에러 발생
- 참고링크: http://jangiloh.tistory.com/40
- OpenSSH 최신버전을 설치할 것
3) Raspberry Pi 에서 rmate <파일이름> 이 작동하지 않음
처음에 ssh 라즈베리파이로 로긴할때에 warning이 떴었음
Warning: remote port forwarding failed for listen port 52598 |
구글링해 본 결과 해법은
1) netstat 찍어보기
sudo netstat -plant | grep 52698 |
2) 프로세스 12418 이 포트를 잡고 있다.
위 netstat 명령의 의미를 알아보는 것은 생략하고 아무튼 52698 포트를 12418 프로세스가 잡고 있는게 보인다.
3) 이것만 삭제해버리면 정상동작한다. 그리고 라즈베리파이에 재접속하면 된다.
sudo kill -9 12418 |
'embedded' 카테고리의 다른 글
미세먼지 토이 프로젝트 - 센서 원리와 측정단위 변환법 (1) | 2019.04.04 |
---|---|
미세먼지 토이 프로젝트 - 센서 선정 및 라즈베리파이 연결 (1) | 2019.04.03 |
Embedded Project - Modularizing (0) | 2019.01.18 |
Atmega 328p - Software reset (1) | 2019.01.16 |
Atmel Studio, Atmel-ICD - debugWIRE 사용하기 (0) | 2018.12.27 |
- Total
- Today
- Yesterday
- bun
- OpenAI
- notion
- websocket
- intellij
- ChatGPT
- go
- Bug
- 엉클 밥
- github
- agile
- golang
- Gin
- 인텔리제이
- solid
- API
- clean agile
- 제이펍
- 2023
- 체호프
- strange
- 오블완
- folklore
- 클린 애자일
- 영화
- 티스토리챌린지
- 잡학툰
- 노션
- 독서
- 독서후기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |