모니터 키보드 없이 라즈베리파이 제어하기

모니터 키보드 없이 라즈베리파이 제어하기

목차

  1. 준비물
  2. SSH Enable
  3. 랜선으로 연결
  4. 와이파이로 연결
  5. ping 응답이 없을때
  6. 와이파이 연결이 안될때

준비물

  1. 라즈비안이 설치된 라즈베리파이
  2. 이더넷 케이블
  3. Apple 썬더볼트 기가비트 이더넷 어댑터(필수X)
  4. SD카드 리더기(USB모양)

SSH Enable

SSH로 라즈베리파이에 접속하기 위해서는 먼저 라즈베리파이에 SSH접속을 허용시켜줘야한다. 우선은, 라즈베리파이에 있는 SD카드를 빼서 SD카드 리더기에 꽂고 맥북과 연결해 준다. Terminal을 열어서 cd /volumes/boot 로 SD카드 내부에 들어가서, 빈 ssh파일을 하나 만들어준다(touch ssh). 이렇게 하면 라즈베리파이를 딱 켰을때 SSH접속을 허용시킨다. (다만, 이게 1회성이라서 라즈베리파이를 껏다가 키면 다시 SSH접속이 안되게 설정된다.)

이제 SD카드를 라즈베리파이에 다시 꽂아준다. 아직 전원을 키면 안된다.

랜선으로 연결

라즈베리파이 IP부여하기

SSH를 통해 라즈베리파이에 접속하려면, 라즈베리파이의 IP주소가 필요하다. 이 IP주소는 라우터가 부여하는데, 내 맥북을 라우터로 만들고 라즈베리파이와 랜선으로 연결시키면 알아서 IP가 부여된다.

맥북의 시스템 환경설정 -> 공유 에 들어가서 아래와 같이 설정해 주면 된다.


이제 맥북과 라즈베리 파이를 아래와 같이 연결시킨다.

그리고 라즈베리파이에 전원을 꽂아서 부팅하면 알아서 IP주소가 할당될것이다.

IP주소 알아내기

라즈베리파이는 내 맥북으로 부터 IP주소를 할당받았을것이다. 이제 이 주소를 알아내야한다. 우선은 맥북 terminal에서 ping raspberrypi.local 을 치면 아래와 같이 나온다.

라즈베리파이에 SSH로 접속

192.168.2.2가 라즈베리파이의 IP주소이다. 이제 저 주소로 로그인을 시도한다.

ssh pi@192.168.2.2

default password는 raspberry이다.

SSH접속을 영구적으로 허용하기

SSH로 접속해서, sudo raspi-config 를 치면 여러가지 옵션이 나오는데, 거기서 Interfacing Options에 들어가면 SSH enable이 있다. 이걸 enable로 바꿔주면 된다.

이제 앞으로는 랜선만 연결되어있으면, 모니터나 키보드 없이도 라즈베리파이에 쉽게 접속할 수 있다.

와이파이로 연결

라즈베리파이와 내 맥북이 같은 와이파이에 연결되어있으면 SSH로 접속할 수 있다. 랜선이 없으면 이 방법이 좋다.

wpa_supplicant.conf 파일 생성

라즈베리파이의 SD카드를 빼서 SD카드 리더기에 꽂고, 그 리더기를 내 맥북에 연결시켜준다. 맥북 터미널에서 cd /volumes/boot으로 boot 폴더로 이동해주고, touch wpa_supplicant.conf로 wpa_supplicant파일을 생성해 준다. 이제 그 안에다가, 아래와 같이 와이파이 정보를 적어준다.

ctrl_interface=DIR=/var/run/wpa_supplicant
country=US
update_config=1
network={
    ssid="my-ssid"
    psk="my-password"
    key_mgmt=WPA-PSK
}

이렇게 wpa_supplicant.conf 파일을 만들면, 라즈베리파이가 처음에 부팅할때 저 파일을 보고 와이파이를 찾는다. 그리고 그 다음부터는 저 파일이 라즈베리파이의 /etc/wpa_supplicant 폴더로 이동된다.

주의할점은, network안에 있는 ssid / psk / key_mgmt 왼쪽에있는거는 tab이다! spacebar가 아니다.

라즈베리파이에 SSH로 접속

위에서 랜선으로 했던것처럼, IP주소 얻고, SSH로 접속해서 영구적으로 SSH접속 허용으로 바꿔주면 된다.

ping 응답이 없는경우

우선, 라즈베리파이에 키보드와 모니터를 연결해야한다. 그리고 cd /etc/network로 network폴더까지 들어가서, 아래와 같이 해준다.

정확하진 않지만 최신 버전의 라즈베리파이 운영체제(Stretch)는 저런 설정을 안해줘도 된다고 들었다.

참고로, 와이파이가 아니라 랜선을 통해서 라즈베리파이와 통신을 할때는 ping이 안먹힌다.

와이파이 연결이 안될때

연결 상태 확인

iwconfig 라고치면 위처럼 나온다. 근데, 저렇게 Access Point : Not-Associated라고 나오면 와이파이에 연결되어있지 않은거다.

주변 와이파이 검색

sudo iwlist wlan0 scan을 치면 위처럼 나온다. 근데 더 심플하게 보고 싶다면, sudo iwlist wlan0 scan | grep ESSID를 사용하면 된다.

국적 바꾸기

country=GB
network={
        ssid="와이파이-이름"
        psk="와이파이-비밀번호"
        scan_ssid=1
}

country를 US에서 GB로 바꿔보자.

국적을 바꿔야 하는 이유는 아래와 같다.

from : https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md

5G를 위해서!

wpa_supplicant 프로세스 종료

wpa_supplicant 프로세스가 동시에 2개 켜져있으면 안될수도 있다. 둘다 꺼주고 다시 실행해보자.

process 확인 하기 : ps aux | grep wpa_supplicant
process 종료 하기 : sudo killall wpa_supplicant

참고자료

  1. https://medium.com/@viveks3th/how-to-bootstrap-a-headless-raspberry-pi-with-a-mac-6eba3be20b26
  2. https://medium.com/a-path-to-pi/adding-ssh-and-wifi-to-a-headless-raspberry-pi-3-fresh-install-54be6634716e
  3. https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md
  4. https://www.withover.com/2018/08/wifi.html

마지막으로

잘 안되는 부분을 댓글로 남겨주시면 아는만큼 답글 달아드리겠습니다. 읽어주셔서 감사합니다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

Up Next:

Network관련 참고 링크

Network관련 참고 링크