03. 실전 라즈베리 파이4 연결 - EnglishNo/EmbeddedSystem GitHub Wiki

라즈베리 파이 이미저 설치 및 초기설정

1. 라즈베리 홈페이지에 들어가 라즈베리 파이 이미지 설치.

2. 라즈베리 파이 종류, 운영체제, 저장장치 선택.

  • 주의 : 저장장치는 microSD를 꽂고 있는 해당 기기를 컴퓨터(노트북)에 끼우면 뜨는 저장장치를 클릭.

3. 호스트 이름, 지역 설정, 사용자 이름 입력.

  • 참고 : 필자는 라즈베리 파이 계정에 사용하는 계정명과 똑같이 입력.

4. 와이파이 설정(노트북 핫스팟), SSH 인증, 라즈베리 파이 커넥트 설정.

  • 참고 : 라즈베리 파이 커넥트는 혹시 몰라 사용하는 걸로 설정. 이때 라즈베리 파이 회원가입이 필요.
  • 주의 : 와이파이 설정 때 해당 이미지처럼 와이파이 이름(SSID)가 한글이라면 안될 수도 있음.

5. 기록 검토 후 "기록"버튼 누른 후 다운로드 완료.

6. microSD를 다시 라즈베리 파이에 장착.

라즈베리 파이4 접속 준비

1. 노트북에서 IP 찾기


ipconfig
ping -4 ryu-pi4.local
arp -a

  • 해당 명령어들을 CMD에서 실행.
  • 해당 명령어들을 통해 서브넷 마스크 IP나 라즈베리 파이4 노트북 핫스팟 IP하고 같는지 확인.

2. ssh로 라즈베리 파이4 접근

  • 형식 : ssh (사용자이름)@(노트북 핫스팟 IP)
  • ssh 접근에 성공 시, 이미저에서 설정한 라즈베리 파이 비밀번호 입력하면 ssh 접속 완료.
  • whoami를 입력하면 라즈베리 파이 호스트명 출력.

3. IP 고정 전 확인.


lo               UNKNOWN        127.0.0.1/8
wlan0            UP             192.168.137.113/24

  • ip -br -4 address : IP 주소
    • 상태 : 무선 랜 카드(wlan0)가 정상 동작 중(UP).
    • 할당받은 IP : 192.168.137.113
    • 서브넷 마스크 : /24 (255.255.255.0과 동일)

default via 192.168.137.1 dev wlan0 proto dhcp src 192.168.137.113 metric 600
192.168.137.0/24 dev wlan0 proto kernel scope link src 192.168.137.113 metric 600

  • ip -4 route : 라우팅 경로/게이트웨이 확인
    • 기본 게이트웨이 : 192.168.137.1 (노트북 핫스팟)
    • 설명 : 라즈베리 파이가 외부/인터넷으로 나가는 모든 패킷을 노트북 핫스팟(192.168.137.1)으로 보내도록 DHCP를 통해 올바르게 설정.

NAME                                 UUID                                  TYPE      DEVICE
netplan-wlan0-ThisWiFiIsShinDongWoo  820084d4-94ac-3710-9829-42990f8fb7e3  wifi      wlan0

  • nmcli connection show --active : 활성화된 네트워크 프로필
    • Wi-Fi 이름(SSID) : ThisWiFiIsShinDongWoo (노트북 핫스팟 와이파이 이름)
    • 설명 : NetworkManager(또는 Netplan)를 통해 ThisWiFiIsShinDongWoo라는 핫스팟에 무선 연결.

ARPING 192.168.137.113 from 0.0.0.0 eth0
Sent 3 probes (3 broadcast(s))
Received 0 response(s)

  • sudo arping -D -I eth0 -c 3 -w 4 192.168.137.113 : IP 중복 검사
    • 결과 : 응답 없음 (Received 0 response(s))
    • 이유 : 테스트 인터페이스를 유선 랜 카드인 eth0으로 지정하셨기 때문. 현재 라즈베리 파이는 유선 케이블이 뽑혀 있고 무선(wlan0)으로만 연결되어 있으므로, eth0으로 신호를 보내면 응답이 없음.
    • 참고 : IP 중복 검사(ARP Probe)를 제대로 하려면 인터페이스를 wlan0으로 지정.
  • Received 0 response(s)의 의미 : 정상 상태, 네트워크 상에서 이 IP를 이미 사용 중인 다른 기기가 아무도 없다는 뜻.

4. IP 고정.


# 1. 고정 IP, 게이트웨이, DNS 설정
sudo nmcli connection modify netplan-wlan0-ThisWiFiIsShinDongWoo \
  ipv4.method manual \
  ipv4.addresses 192.168.137.113/24 \
  ipv4.gateway 192.168.137.1 \
  ipv4.dns "192.168.137.1 8.8.8.8"

# 2. 변경사항 적용 (연결 재시작)
sudo nmcli connection up netplan-wlan0-ThisWiFiIsShinDongWoo

  • 명령어 설명)
    • sudo
      • 관리자(루트) 권한으로 명령어를 실행.
      • 네트워크 환경 설정 변경에는 수동 권한 승인이 필요.
    • nmcli connection modify
      • NetworkManager 제어 도구(nmcli)를 통해 기존에 등록된 네트워크 연결 프로필의 설정값을 수정.
    • netplan-wlan0-ThisWiFiIsShinDongWoo
      • 수정 대상이 되는 Wi-Fi 네트워크 프로필의 식별 이름.
    • ipv4.method manual
      • IP 할당 방식을 기존의 자동(DHCP)에서 사용자 지정 수동(Manual/고정 IP) 방식으로 전환.
    • ipv4.addresses 192.168.137.113/24
      • 라즈베리 파이에 고정으로 할당할 IP 주소(192.168.137.113)와 서브넷 마스크(/24 = 255.255.255.0)를 지정.
    • ipv4.gateway 192.168.137.1
      • 외부 인터넷 네트워크로 연결되는 관문인 게이트웨이 주소(노트북 핫스팟 IP)를 설정.
    • ipv4.dns "192.168.137.1 8.8.8.8"
      • 도메인 이름을 IP로 변환해 주는 DNS 서버 목록.
      • 1차 주소로 핫스팟(192.168.137.1), 2차 주소로 구글 공용 DNS(8.8.8.8)를 지정합니다.
    • \ (역슬래시)
      • 길어진 단일 터미널 명령어를 여러 줄로 나누어 가독성 있게 입력하기 위한 줄바꿈 연속 기호.
    • nmcli connection up
      • 지정한 네트워크 프로필을 즉시 활성화(재연결).
    • netplan-wlan0-ThisWiFiIsShinDongWoo
      • 위에서 수정한 프로필을 다시 켜서 변경된 고정 IP, 게이트웨이, DNS 설정을 라즈베리 파이 무선 네트워크(wlan0)에 즉시 적용.

VS Code Remote-SSH 연결

1. 노트북(VS Code)에 확장 설치.

2. 원격 접속 명령.

  • Ctrl + Shift + P을 통해 Remote-SSH : Connect to Host... 선택.

3. 라즈베리 파이4로 VS 작동.

  • Ctrl + Shift + P을 통해 Remote-SSH : Connect to Host...를 선택한 상태로 (사용자 이름)@(IP 주소) 입력.
  • 그 후 목록창에서 리눅스 선택 후 라즈베리 파이 비밀번호 입력.

4. 원격 파일 저장과 Python 실행 확인.

  • 폴더 새로 생성 후, 파이썬 파일 생성 및 작성.
  • 그리고 파이썬 파일이 있는 폴더로 이동 후 파일 실행.

가상환경

  • 가상환경 역할
    • 시스템 Python : 운영체제 도구와 연결된 기본 Python 환경.
    • 프로젝트 가상환경 .venv : 해당 프로젝트에 필요한 패키지 따로 관리.
    • 실행 환경 선택 : VS Code 인터프리터도 .venv/bin/python으로 선택.
    • Git에 남길 내용 : 소스와 패키지 목록을 기록하고 .venv 폴더는 제외.
    • deactivate : .venv 가상환경에서 벗어날 때 사용.

깃허브 연결

GitHub 터미널로 설치.

작성자 설정 : 커밋에 남길 이름표.

  • 작성한 이름하고 이메일 확인.

사용할 깃허브 프로젝트창 설정

커밋 및 푸시

  • 클론된 저장소 폴더로 이동.
  • 그 후 VS Code에도 클론된 저장소 폴더로 이동 후 커밋할 파일 추가.
  • 추가된 파일 확인 후, 커밋할 파일 대기열에 추가 후 커밋.
  • 깃허브에서 토큰(PAT) 발급 받은 후, 푸시.

토큰 발급받는 방법

ssh로 연결된 라즈베리 파이 연결 종료

  • exit : 라즈베리 파이 연결 중 해당 명령어로 안전하게 종료 가능.