본 글은 제가 직접 쓴 글이 아니라, 저희 PinkLAB의 유투브 채널의 공개 강의 영상들을 읽고, 따라한 한 수강생의 글을 제 블로그에 공유한 내용입니다.
https://youtu.be/RUcO1RTdsoQ?feature=shared
안녕하셨나요 !!
오늘은 비가 올 듯 말 듯 , 그렇지만 하늘은 예쁜 날이랍니다. 선물이에요 ㅋ_ㅋ
오늘은 [ VNC 서버를 라즈베리파이에 설치하는 과정 ] 에 관련된 강의를 듣고 글을 써 보았어요.
지금 우리는 라즈베리파이 이야기를 하고있어요.
ROS하다가 왜 갑자기 RPi !? 하실 수 있는데요..!
강사님께서 ROS를 하실 때, 하나의 pc에서만 작업을 한 적은 잘 없다고 하셨어요.
다수의 pc를 사용하게 되셨다고 해요. ( 여기서 말하는 pc는 os가 올라가는 모든 친구들! rasberrypi 포함! )
그런 pc들을 여러 대와 연결을 하게 되는데요, 로봇 안에 들어 가 있을 수도 있고, 다른 pc일 수도 있어요.
그래서 수업 때 라즈베리파이를 이용해서 다수의 디바이스와 연결하는 이야기를 함께 해 봐야겠다고 생각을 하셨다고 해요.
현재 이 영상을 찍고 있는 시점에 로스 실전편으로 막 들어갔는데,
그것과 보조를 좀 맞춰서 진행을 하다가 ROS2를 설치 할 거란 말이예요,
그리고 여기에서 어떻게 연결을 하는지와 ROS이야기를 해 보려고 해요.
현재 라즈베리파이는 어떤 상황이냐면... 라즈베리파이를 수업용으로 셋팅을 해 뒀단 말이죠,
강사님께서는 라즈베리파이에서 어떻게 작업하는지를 보여주고싶다 하셨어요.
우리가 보통 라즈베리파이가 있으면 여기에 가장 쉽게 접근하는 방법은 모니터, 키보드, 마우스를 연결하는거죠.
그러면 이제 pc랑 같아요.
그런데 라즈베리파이는 이렇게 연결하면 좀 불편해요. 왜냐하면..
첫 번째는 일단 내 책상. 책상이 이렇게 있는데, 책상 위에 노트북이든 데스크탑이든 이렇게 있을 거잖아요,
그런데 여기에 라즈베리파이가 '딱' 있단 말이예요, 근데 여기에 또 모니터 키보드 마우스를 연결해요,
그럼 책상이 좁아져요.
그 다음에 또 하나는 뭐냐면...
보통 라즈베리파이가 작은 로봇에 포함 돼 있을 때가 많아요.
다시 이렇게 로봇이 있으면, 로봇 안에 라즈베리파이가 들어가고, 나는 밖에서 노트북으로 작업을 할 때가 많단 말이에요.
그런데 여기에다 키보드 마우스 모니터를 달면 불편하죠.
지금부터 연습을 해야해요. 그리고 실제 라즈베리파이 보드가 약해요.
보드의 측면에 hdmi 를 연결해야하는데, 그리고 키보드 마우스 usb를 꽂아야하죠, 이게 불편해요. 약해요.
보드니까 피씨비 보드에 바로 커넥터만 나와 있잖아요. 그래서 이걸 쓰다 보면 약해지거나 부러지거나 뭐 이런 경우도 많아요.
그래서 강사님께서 선호하는 방식을 계속 소개 해 주셨어요. '환경설정'이라는 이름으로..!!! 시행착오를 줄여드리기 위해!
강사님께서 제안하는 방식은 지금까지 영상으로 보여드린 방식인거예요.
라즈베리파이가 있으면 내 피씨가 이렇게 있구요,
라즈베리파이에서 터미널을 띄우고싶으면 여기에서 ssh로 터미널로 접근을 하면 된답니다.
맥 유저들은 터미널을 실행하시고, 윈도우 유저들은 명령 프롬프트를 실행하시면 되는거예요.
그리고 키보드, 마우스, 모니터는 필요가 없는 거예요.
만약 여기에서 코드를 짜야한다,
그러면 내 pc에서 vs code를 실행하고 여기서 ssh extension을 설정해서 코드를 작성하면 된다 라고 설명을 한거예요.
그런데 하나가 남았어요. 뭐냐면... 새창입니다.
이게 새 창을 띄워 카메라에서 나오는 영상을 본다던지 할 때 이 새창 띄우는게 되게 많이 필요한데, 여기서 그게 좀 안되거든요,
그래서 오늘 그 이야기를 한 번 해 보려고 해요.
그러니까 vnc가 원격 데스크탑 설정인데.
이게 원격 데스크탑을 설정하고 거기에서 바로 코드를 작성하는 분들이 있긴 해요.
근데 강사님은 그걸 선호하지 않으세요. 키감의 딜레이가 있어서요.
키감이 좀 나쁘죠... 그냥 새창을 띄우는 용도로만 이걸 쓰는 거랍니다. 그래서 조금만 다시 정리하자면..
라즈베리파이가 있으면,
여기에 터미널을 띄우싶다, 그러면 내 pc에서 ssh로 터미널을 연결하면 된다,
윈도우 유저들은 명령 프롬프트,
여기에서 코드를 작성하고 싶다, 그러면 난 여기에서 vscode 같은걸 이용해서 ssh extension을 설치하면 된다,
여기서 새 창을 띄워서 뭔가를 하고싶다, 그러면 vnc를 쓴다,
이렇게 정리를 하는 거예요.
그러면 라즈베리파이는 최초로 ip address를 알아내는 그 순간을 제외하면
나는 키보드, 마우스, 모니터를 연결 할 필요가 없는 거예요.
이따 설명을 드릴 텐데, 그 최초 한 번 연결하는 것조차도 안 하게 하는 이야기도 환경설정에서 할 거랍니다.
이제 들어가보도록 해요.
일단은 회사 같은 데서 하시는 분들도 많으니 무료 버전 위주로 할게요.
그래서 일단 tightvncserver라는걸 apt install 명령어로 설치해요.
이 터미널은 rasberrypi에요. 혹시 정말 자신이 없으면, 라즈베리파이를 켜시면 된답니다.
라즈베리파이는 켜야해요. 모니터, 키보드, 마우스를 연결하시면 되는데,
현재 강사님께서는 이 화면이 뭐나하면, 내 노트북에서 원격으로 ssh 접근을 한 거예요.
ip address를 미리 알아내서
그래서 여기에 이렇게 rpi라고 적혀있잖아요.
그럼 라즈베리파이에요.
sudo apt install 명령어로 타이트 vnc 서버를 설치해요.
그 다음에 이것도 좀 설치를 해 주시구요.
그러고 난 다음에 이거 설치하면 이 화면이 나오거든요, 이건 그냥 이렇게 엔터키를 누르고 지나가시면 된답니다.
혹시 모르니 방화벽 해제하시구요, vnc 서버 붙을 때 보통 5901번 많이 들어가요. 그래서 이거 해지를 하시면 되구요,
그 다음에 vnc 서버를 최초로 실행하면 암호를 물어봐요.
리눅스 암호 말구요, 우분투 암호 말고 vnc 서버용 암호를 묻거든요.
그거 입력하시면 되구요,
별표 안 나와요. 그러니 커서 왜 안움직이지! 할 필요 없어요. ㅋㅋ
강사님께서는 화면상 캡쳐를 해서 Y 되어 있는데, 여러분들은 N 하셔도 돼요.
여기 켜면서 vnc 서버가 하나 돌거든요, 그걸 죽이는 명령이에요.
이거 그 다음에 다시 나노 에디터로,
루트 홈에 있는 .vnc 폴더 안에 있는 xstartup을 편집하셔서
이거 한 줄을 넣어 주셔요.
나가는건 컨트롤 x 누르고 나가시면 된답니다.
그 다음에 다시 vnc 서버를 실행해요.
다시 그러고 난 다음에 뷰어 설치를 해야해요. 뷰어는 여기 이 경로에 가셔서 remote 리플 닷컴에 다운로드 해요.
가셔서 자기 os에 맞게 다운로드 받으시면 된답니다.
밑에 있어요. mac 윈도우 오픈 투 라즈베리파이 이렇게 있어요.
그리고 뉴커넥스티션 누르시고
내 라즈베리파이 Ip와 5901을 허용했죠, 여기에 들어가요.
그러면 암호를 물어보는데, 이 때 vnc 서버용 암호를 입력하는거예요.
그러고 난 다음에 시간이 조금 걸릴 수 있는데, 이 생쥐 ,그러니까 내 라즈베리파이 그 데스크탑에 뜨는게 아니에요.
vnc가 이걸 띄워요. 그래서 여기서 이제 터미널을 실행하시면 되는데,
이 터미널을 실행할 때 시간이 좀 걸려요.
그러고 난 다음에 이게 뜨면
여기에 엑소스트 더하기 로컬이라고 입력을 해줘요.
이게 뭐냐면.. 아까 강사님께서 내가 vnc를 쓰는 이유가 새창을 띄우기 위해서라고 했잖아요,
확인하기 위해서 그래서 외부에서 데스크탑 접근을 허용해 주는 명령이에요.
그러고 난 다음에 하나 더 해야해요.
디스플레이 넘버를 확인한다 이거에요. 한번은 확인을 하셔야해요.
이제 이건 뭘까요? 위 화면까지는 vnc 화면이구요,
이건 강사님 노트북이에요.
원격으로 접속한 강사님 노트북이에요. 기억해야해요.
여기는 터미널상으로는 라즈베리파이구요, 이걸 실행시킨 터미널은 강사님노트북이에요.
그러고나서 엑스포트 명령으로 아까 거기를 출력으로 잡아라 라고 시켜주는거예요.
디스플레이 출력을 vnc 서버로 연결된 데스크탑에다가 출력을 해라 라고 설정을 한 거예요.
그러고 난 다음에 이거 시계 프로그램이거든요,
시계프로그램 엑스클럭 한 번 실행을 해요.
그러면 원래대로 하면 어떻게 해야할까요.
이게 라즈베리파이에 키보드 버스 모니터를 직접 연결하고 이걸 실행하면 내 모니터에 시계가 떠요.
근데 난 지금 이게 ssh로 접근한 터미널이란 말이에요.
그럼 이걸 실행하면 ssh로 접근한 터미널에서 떠야하는데 Ssh로 접근한 터미널은 새 창이 안 열린다고
그러면 얘는 어디서 실행되느냐, 원래는 에러가 나죠. 근데 어디서 실행되나면,
여기서 실행되도록 된 거예요.
이게 중요한 거예요.
요게 되고 나면 나중에 이제 할 수 있는 일들이 많아져요.
따랄해봐요. 강사님은 이미 설치가 대부분 다 되어있으셔서 그냥 명령만 입력을 해 보는걸 보여주셨어요.
먼저 이 화면 이 창은 이 창은 이 창 자체는 강사님 핏이에요. 강사님은 Mac을 쓰고계셔요. 맥, pc 의 터미널이에요.
이따가 윈도우도 보여주셔요. 터미널이에요.
그리고 강사님은 여기에서 곧 ssh로 라즈베리파이에 접근을 할 거에요.
ssh 명령어로 라즈베리파이의 유저 이름을 pw로 강사님께서 셋팅을 하셨구요,
그리고 Ip는 지난 영상에서 ifconfig 명령어로 알아내는 방법을 말씀 드렸잖아요,
그래서 내가, 내 라즈베리파이가 접속한 ip address, 이게 한 공유기여야해요.
회사에다 라즈베리파이 놔두고 집에 가서 하겠다, 하면 글로벌 ip가 있어야 하거든요, 안돼요.
그래서 유저 ID, PW, 그리고 한 공유기 한 사무실 내에서 나의 라즈베리파이의 Ip가 192.168.0.123이란 말이에요.
들어가요. 암호 묻고요,
이제 보시면 이게 맥일 때의 프롬프트에요.
이게 뭘까요,
나의 라즈베리파이에서의 프롬프트죠. 라즈베리파이일 때 강사님께서 이렇게 세팅을 해 두셨거든요.
이제 이 상태에서 sudo apt install 명령어로 tightvncserver를 설치해요.
이미 설치가 되어있어서 ..
그리고 sudo apt install 명령어로 xfce4랑 xfce4-goodies 이것도 설치를 해요.
이미 되어있어요.
저는 그러고 난 다음에 sudo ufw allow 5901 / tcp 허용을 해요.
아직 vnc 서버를 실행하지 않았거든요.
강사님은 이미 암호 설정을 다 하셨기 때문에 vnc 서버를 이렇게 실행을 한단 말이에요.
실행했잖아요,
그러고 나서 이걸 내가 어떤 이유로 죽여야겠다, 하면 보통 킬 명령으로 죽이게 되구요.
가장 먼저 실행된 게 1번이거든요, 그래서 죽이면 된답니다.
2번은 혹시 없나요 ? 하면
네, 2번은 없으면 그냥 이렇게 돼요. 네 , 없다, 라고 떠요.
이제 설정판을 편집하는 부분 보여드릴게요.
나노 명령어로 vnc 폴더에 있는 xstartup,
x 하고 탭 누르시면 된답니다.
들어가서 이걸 입력하시면 돼요.
startxfce4입력하신 다음에 여기 밑에 보면 ctrl 보이잖아요, < ctrl + x > 를 누르면 빠져나와요.
근데 여러분들이 실제로 여기다가 뭘 했잖아요, 이렇게 하고 난 다음에
내용이 바뀌었잖아요, 컨트롤 x를 누르면 어 바꿀래?(save modified buffer?) y 누르시면 된답니다.
와이 : 뭘로 저장할래 인데, 원래 이름이 나오거든요, 엔터만 누르시면 된답니다.
이렇게 하면 저장해서 나와요.
이제 끝났구요,
vnc 서버 아까 죽였잖아요, 다시 실행해야해요.
vnc 서버, 네, 실행 해 두었어요.
이러면 끝! 라즈베리파이에서할 일은 끝났어요.
이제 구글로 갈게요. 지금 이건 강사님 피씨에서 실행한 터미널이에요.
하지만 이 내용은... ssh로 접근한 강사님의 라즈베리파이구요,
이 웹브라우저는 당연히 강사님 pc에서의 웹브라우저에요.
Remote Ripple VNC Viewer 하고 들어가면
여기 떠요.
Remote Ripple VNC Viewer 들어갔어요.
여기에서 다운로드를 누르시구요, 나한테 맞는 걸 받으시면 된답니다. 강사님은 mac이셔서 이걸 받았어요.
윈도우를 위해서 이걸 받으셔도 돼요.
이제 돌아가서 vnc서버가 이렇게 실행되고 있어요.
그리고 New Connection 누르고
192.168.0.123 강사님 라즈베리파이의 ip에요.
그리고 5901 누르시고,
세이브 하면 여기 생성되어있어요.
더블클릭 하면 암호를 물어요. 암호를 입력하구요,
그 다음에 여기에서는 이건 뭐냐면 나의 라즈베리파이 암호에요.
눌러주시면 된답니다.
데스크탑은 vnc가 그냥 바꾸는거에요. vnc 기법이 그래요.
이렇게 되어 있잖아요, 여기에서 이제 오픈 터미널을 누르시면 되는데 터미널 실행이 조금 느려져요.
나중에 이것도 자동화하는 부분을 말씀 해 주고싶다 하셨어요.
이 상태 이게 지금 강사님의 mac ssh 로 접근한 터미널,
이게 지금 vnc로 접근한 desktop이에요. 여기 이상태에요.
이 상태에서 하나 보여드릴게요.
이게 지금 xclock이라고, 강사님께서 그냥 한번 입력을 해 보셨어요.
아무것도 안 떠요.
xclock이 뭐냐면... 아날로그 시계인데, 원래는 실행을 하고 나면 떠야하거든요.
떠야하는데 ssh로 접근한 터미널에서는 이게 안떠요.
새 창이 안떠요. 되게 쾌적한데 이거 하나가 문제에요.
사실 원리상 문제일 리는 없고, 그게 특성인건데 이걸 어떻게 할 거냐,
여기서 입력을 해서 새 창이 떠야되는거면,
나의 라즈베리파이 vnc에서 뜨게 하고싶은거에요.
그럼 나는 이 vnc를 그냥 관찰용 새 창으로 보고싶은거에요.
그럼 어떻게 하느냐!
일단은 xhost 명령을 vnc에서 입력하시면 된답니다.
명령을 로컬이라고 하나 잡아주시구요, 그 다음에 물어봐요.
에코 디스플레이 이렇게 하면 이거구나, 이게 안 변해요. 항상 똑같아요.
여기에서 export 명령으로 여기서도 에코 명령으로 디스플레이 변수니까 달러를 붙이고 이렇게 해 주면
아 다르네요, 그쵸.
여기는 콜론 1.0이고
여기는 콜론 10.0이에요. 달라요.
그래서 강제로 디스플레이를 콜론 붙이셔야해요. 1.0으로 해라 라고 한거죠.
그리고 에코를 이렇게 잡아줬어요.
이렇게 그러고 난 다음에 export 디스플레이를 1.0으로 해라 라고 잡아줬어요.
이제 에코 명령으로 다시 디스플레이를 확인 해 보면, 1.0이라고 되어있어요.
그러니까 내가 지금 여기서 어떤 출력을 내보내야 되는 디스플레이를
여기로 지정을 한 거예요.
그러니까 내가 여기에서 이 떠야 될 게 여기서 전송돼서 여기서 뜨게 되는 거에요.
역사적인 순간이니까.
이걸 좀 줄이고 이렇게 해 두고
xclock 하면 여기에 뜨는 거죠. 별거 뭐하시는거지 ..?
별거 아닌데 되게 별거에요. 이게 나중에 여러분들에게 매우 쾌적한 환경을 유지시켜 줄 거랍니다.
아하 좀 이따가 윈도우 얘기 해 볼게요. 잠시 기다려주세요 !
오늘도 공부 하시느라 고생 많으셨습니다 ^-^
'Hardware > SBC (rasp, jetson, latte panda)' 카테고리의 다른 글
[RPi5] 1-4 MS Windows의 명령프롬프트로 SSH 연결하기|산.기.정.| (0) | 2025.08.22 |
---|---|
[RPi5] 1-3 SSH로 라즈베리파이5에 Python 개발 환경 구축하기 |산.기.정.| (2) | 2025.08.18 |
[RPi5] 1-2 라즈베리파이5에 Ubuntu24.04 설치하고 SSH 연결하기|산.기.정.| (5) | 2025.08.11 |
[RPi5] 1-1 라즈베리파이5 하드웨어 셋팅하기|산.기.정.| (3) | 2025.08.08 |
Ubuntu가 설치된 Raspberry Pi 5에 picamera 설치하기 (1) | 2025.02.04 |
라즈베리파이 VNC 설정 - tightvnc server - (2) | 2025.01.06 |
라즈베리파이와 원격 연결 - VNC (3) | 2024.10.03 |