ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • m1에서 usb없이 wifi로만 라즈베리파이 zero w 연결하기
    IT 2021. 10. 5. 21:45
    반응형

    이미지 다운로드

    일단 라즈베리파이 공식 홈페이지에서 os 이미지를 받아준다.

    라즈베리파이 공홈

    무선으로 wifi만 연결하고 터미널에서 ssh로 연결해서 쓸 생각으로 라즈베리파이제로w를 샀기 때문에
    굳이 gui 환경을 쓸 일이 없어서 lite를 다운받았다.

    sd 카드 포멧

    그리고 sd카드를 꼽아주자 다음처럼 finder에서 인식된다. m1에는 sd카드 꼽는 구멍이 없어서 나는 sd카드 슬롯이 있는 익스텐더? 독? 을 따로 사용한다.

    alt + spacebar를 눌러 spotlight로 디스크 유틸리티를 찾아준다.

    오른쪽 위에 지우기로 sd를 포멧해준다.

    FAT32로 해주면 된다.

    지운 후 5MB도 정도 용량을 사용하고 있는 게 정상이다.

    sd 카드 굽기

    https://ichi.pro/ko/hedeuliseu-raspberry-pi-zero-seoljeong-68088309740148
    이 글을 보면 etcher로 sd 카드에다가 이미지를 굽는 방법이 나오는데
    결론은 앱이 m1 arm 아키텍처를 지원하지 않는지 fail이 뜬다.

    https://lucidmaj7.tistory.com/196
    이 글을 참고했다.

    디스크 유틸 명령어로 연결된 sd의 경로를 알아낸다.

    diskutil list

    32GB짜리 sd카드 경로가 /dev/disk6로 나와있다.

    디스크를 언마운트해준다. (언마운트 안 해주면 디스크가 사용 중이라 resource busy라고 뜸)

    diskutil unmountDisk /dev/disk6

    dd 명령어를 사용해서 이미지를 블록 단위로 복사한다. (그냥 finder에서 복사 붙여 넣기 하면 라즈베리파이가 부팅이 안 된다.)
    bs 오퍼랜드로 인풋과 아웃풋 블록 사이즈를 32메가로 설정하자

    sudo dd if=[라즈베리파이이미지경로] of=[SD카드장치경로]
    sudo dd if=/Users/min-gi_jo/Downloads/2021-05-07-raspios-buster-armhf-lite.img of=/dev/disk6

    조금 오래 걸리지만 끝날 때까지 기다린다.

    이런 식으로 복사가 끝난다.

    라즈베리파이 세팅

    다음 두 글을 참고했다.
    https://m.blog.naver.com/21ahn/221311535318
    https://ichi.pro/ko/hedeuliseu-raspberry-pi-zero-seoljeong-68088309740148

    finder에서 파일을 열고 수정해도 되지만 나의 경우는 권한 문제인지 sd 카드의 문제인지 쓰기가 안 돼서 파일을 복사해서 새로 만들고 수정하고 번거롭기 때문에 그냥 finder 말고 터미널에서 파일 수정하길 권한다.

    루트 디렉토리에 /Volumes를 가보면 연결된 볼륨들이 보인다.

    cd /Volumes

    cmdline.txt 수정

    sd카드 안으로 들어가서 cmdline.txt를 수정해준다. vim이나 nano 그밖에 텍스트 에디터로 수정하면 된다.

    cd /Volumes/boot
    vim cmdline.txt

    원래 파일이 아래처럼 되어있을 텐데

    console=serial0,115200 console=tty1 root=PARTUUID=9730496b-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh

    i나 a를 눌러 text eidt mode로 들어가고
    rootwait과 quiet 사이에 modules-load=dwc2,g_ether를 써주고
    esc를 눌러 visual mdoe로 나와서 :wq를 눌러 저장 후 나오면 된다.

    a
    이동, 수정 modules-load=dwc2,g_ether
    esc
    :wq

    다음과 같이 수정하면 된다.

    console=serial0,115200 console=tty1 root=PARTUUID=9730496b-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether quiet init=/usr/lib/raspi-config/init_resize.sh

    config.txt 수정

    config.txt를 열어서 마지막 줄에 dtoverlay=dwc2를 넣어준 후

    vim config.txt
    dtoverlay=dwc2

    빈 ssh 파일 만들기

    ssh 사용을 위해 빈 ssh파일을 만들어 준다.

    touch ssh

    ssh라는 이름을 가진 파일이 없으면 ssh가 안 된다고 한다.

    와이파이 설정 wpa_supplicant.conf 파일 만들기

    와이파이를 연결하기 위해 wpa_supplicant.conf 라는 이름의 파일을 만들고
    (vim 파일이름) 쳤을 때 파일이름이 없으면 새로 만들고 바로 수정 가능

    vim wpa_supplicant.conf

    다음 내용을 넣는다.

    개인 와이파이

    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1
    network={
        ssid="와이파이이름"
           psk="와이파이비밀번호"
        key_mgmt=WPA-PSK
    }

    회사, 학교 와이파이

    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1
    network={
        ssid="와이파이이름"
        key_mgmt=WPA-EAP
        eap=PEAP
        identity="계정정보(아이디)"
        password="비밀번호"
    }

    꼭 소프트웨어적으로 장치 제거를 먼저 해주고 sd카드를 제거하자

    꼭 finder에서 저 화살표를 눌러 접속을 끊고 sd카드를 뽑자, 접촉부에 스파크가 튀어서 먹통이 될 수 있다. (usb 베드섹터 생긴 적 있음;;)
    아까 확인했던 디스크 이름을 가지고 diskutil 명령어를 통해서도 제거할 수 있다. disk 디렉토리 안에 있으면 터미널이 디스크를 사용 중이라 제거할 수 없으니 밖으로 나와 사용해준다.

    cd ~
    diskutil eject /dev/disk6

    라즈베리파이 전원 on

    sd카드를 라즈베리파이에 꽂고 전원을 넣어주자 컴퓨터랑 usb로 연결하는 게 아니기 때문에 usb 단자에 꼽던 전원만 들어가는 pwr 파워 단자에 꼽던 상관없고, usb선으로 연결할 필요도 없고 dc어댑터에서 바로 micro 5핀으로 꽂아도 된다.

    접속

    usb? 댓츠 ㄴㄴ

    다른 데서는 컴퓨터에 usb로 연결하고 아래 그림처럼 이더넷 가뎃으로 하고 그러는데
    와이파이로만 연결할 사람들은 usb 연결할 필요가 없다

    위는 usb 연결할 때 거치는 상황인데 처럼 할 필요 없다

    라즈베리가 할당받은 ip확인

    집에서 공유기를 쓰는 사람들은 웹브라우저에 192.168.0.1을 입력하면 공유기에 접근할 수 있다. 공유기에 연결된 기기들이 어떤 아이피를 할당받았는지 볼 수 있는데 여기서 확인 가능하고

    또는 dns-sd 명령어를 통해 확인 가능하다. -G옵션은 ip를 Get 하는 옵션이고 v4는 4자리 ip를 가져오겠다는 뜻이다.

    dns-sd -G v4 raspberrypi.local

    라즈베리파이들은 초기 세팅에 raspberrypi.local이라는 호스트네임을 가지고 있는 듯하다.

    ssh 접속

    ssh로 pi라는 유저 이름으로 확인한 ip에 접속하면 된다. 비밀번호는 raspberry 또는 raspberrypi이다.

    ssh pi@192.168.0.13

    그냥 ssh 192.168.0.13을 치게 되면 root라는 이름으로 접속을 시도하게 되고 권한이 없다고 뜰 것이다.
    처음 접속을 시도하면 호스트의 해쉬(fingerprint)를 처음 만났다고 연결하겠냐고 묻는데 yes를 타이핑해주면 된다.

    짜잔

     

    트러블 슈팅

    sd카드를 포맷하고 재설치하고 ssh 접속하는 것을 여러 번 시도하다 보면 라즈베리파이 호스트가 바뀌면서 이런 상황이 발생할 수 있다.

    ssh 접속을 시도하다 리모트 키 hash가 이전과는 다르다고 컴퓨터와 라즈베리파이 중간에 사람이 껴서 공격을 하는 것 같다고(man-in-middle-attack) 알려주는 거다!! 어썸...

    유저 디렉토리에 .ssh 폴더에 가보면 known_hosts라고 이전에 접속했던 호스트의 해쉬들을 저장해놓는 파일이 있는데

    내용을 출력해보면

    cat known_hosts

    라즈베리파이가 할당받았던 아이피인 192.168.0.13과 ssh 연결을 하는데 썼던 해쉬 키가 있다. 이 부분만 vim이던 nano이던 에디터로 지워주고 다시 ssh 접속을 시도하면 된다.

    참고

    https://m.blog.naver.com/21ahn/221311535318
    https://ichi.pro/ko/hedeuliseu-raspberry-pi-zero-seoljeong-68088309740148
    https://lucidmaj7.tistory.com/196

     

    반응형

    댓글

Designed by Tistory.