Raspberry Pi × LTE Hat – Raspberry Pi 4 Model B에 LTE Hat (SIM7600E-H 4G HAT)을 추가해서 LTE를 써보자!

※ 원본은 여기(링크)에 써놓고 이 게시물보다 더 주기적으로 업데이트합니다. 참고해주세요.

라즈베리파이에서 사용할 수 있는 LTE Cat-4 Hat으로 모바일 데이터를 사용해보자!‌

준비물

  • Raspberry Pi 4 Model B with 4GB RAM
  • USB Power Supply (5V 2.1A is sufficient)
  • SD Card (class 10 or more required for your mental health safety)
  • LTE Hat: SIM7600E-H LTE Cat.4 Hat
    • You should select specific model, because SIM7600X-series chipset varies by your country’s LTE wireless bandwidth. I’m currently testing it at South Korea, so I would use SIM7600E-H. See here

1단계 – Raspberry Pi OS 설치

  • Raspberry Pi OS 설치는 매우 간단하다. 여기를 참고해서 SD 카드에 Raspberry Pi OS 32bit를 설치하도록 하자. (일반 PC에 설치할 수 있는 Raspberry Pi OS도 있다! 헷갈리지 말자.)
  • 설치가 완료된 뒤에는, SIM7600E-H의 포장을 뜯어보도록 하자.

2단계 – SIM7600E-H HAT 장착

  • Raspberry Pi의 전원을 끄고 분리한다.
  • SIM카드 슬롯에 Full-Size SIM을 삽입한 뒤 SIM7600E-H Hat을 Raspberry Pi에 장착한다. (이 때, Raspberry Pi에 고정해버리면 SIM카드를 빼기 힘드므로 유의하자)
  • 같이 동봉된 짧은 USB Cable를 Raspberry Pi와 SIM7600E-H Hat의 ‘USB’ 포트에 연결한다.
  • 장착한 뒤 Raspberry Pi를 켠다.

3단계 – Raspberry Pi 세팅

  1. 라즈베리파이 내의 UART를 Disable한다.
[1] raspi-config를 실행한다.
[2] 세번째 “Interface Options”를 선택한다.
[3] “P6 Serial Port”를 선택한다.
[4] No를 선택한다.

4단계 – SIM7600E-H RNDIS 세팅

  • Raspberry Pi나 Jetson Nano 자체에 커널 모듈을 빌드하고 물리기 쉬운 일이 아니다. 머나먼 과정을 거치면 되긴 하지만 귀찮기 때문에, 모뎀을 RNDIS 모드로 변경해보도록 하자.
  • 모뎀을 RNDIS 모드로 변경하면, Android 스마트폰에서 USB 테더링을 연결하듯이 간단하게 작동시킬 수 있다.
  1. 먼저 Raspberry Pi가 SIM7600E-H와 잘 연결되었는지 확인하자. USB 디바이스 목록을 확인하여 ttyUSB가 연결되었는지 본다.
  2. 연결된 디바이스 네이밍이 어디에 매칭되는지 아래 정보에서 확인해보자. (출처: https://simcom.ee/documents/SIM5360/How%20to%20use%20linux%20driver.pdf)
  3. 이제 socat을 이용하여 ATCOM interface (줄여서 AT interface)에 연결해서 각종 명령어를 보내보자. 실질적으로 SIM7600E-H 보드와 통신하기 위해서는 AT Interface를 이용한다. 해당 인터페이스는 짧은 AT 명령어들로 통신하는 인터페이스이다.
  4. AT라는 테스트 명령어를 치고 Enter를 누르면 OK라고 뜬다. 정상적으로 연결되었다는 의미이다.
  5. 이제 아래와 같이 RNDIS 인터페이스 활성화 명령어를 입력한다. AT+CUSBPIDSWITCH=9011,1,1 > OK
  6. 이제 socat이 종료되고 칩셋이 재시작된다. 이를 조금만 더 기다리고 다시 시작하면 ip link를 했을때 아래처럼 usb 인터페이스가 뜬다. (보통은 usb0으로 뜨지만, 본인이 쓰는 Jetson Nano에는 usb0이 이미 있어서 usb1으로 할당되었다.)

5단계 – APN 설정

  • 사실 APN은 자동 설정이 가능하다. 여기서는 APN을 기지국으로부터 자동으로 가져오고 이를 사용해 LTE 네트워크에 연결하는 방법을 기술한다.
  1. 4-3단계와 같이 AT Interface에 연결한다.
  2. AT+CGDCONT? 명령어로 현재 사용되는 APN 프로필 리스트를 확인한다.
  3. +CGDCONT: 11은 프로필 ID를 나타낸다. 1부터 6까지 존재하는데, 여기서는 프로필 1번(셀룰러 네트워크 등록 과정에서 사용)과 프로필 6번(RNDIS 연결 과정)
  4. 기지국에서 APN을 자동으로 가져올 수 있도록 AT+CGDCONT=1,"IPV4V6","" 명령어와 AT+CGDCONT=6,"IPV4V6",""를 각각 입력하여 프로필을 비운다.
  5. AT+CGAUTH? 명령어로 현재 APN 인증 프로필을 확인한다.
  6. 마찬가지로 AT+CGAUTH=1,0, AT+CGAUTH=6,0 명령어로 인증 프로필을 비운다.
  7. 마지막으로 AT+CFUN=0 명령어로 SIM 카드를 껐다가, AT+CFUN=1 명령어로 다시 켠다.
  8. 이 뒤에는 인터넷이 정상 연결될 것이다. (다만 IP를 아직 받아오지 못한 상태이다.) 위 4, 5번 단계에 설정한 값들은 보드 자체의 NVRAM에 저장되므로 재시작하여도 RNDIS 모드나 APN 설정들을 다시 해줄 필요는 없다.

6단계 – DHCP 설정 및 Ping 테스트‌

  • 여기서는 1회성 DHCP를 설정해보도록 하자. 간단하다.‌
  1. dhclient -v usb0 (USB 디바이스명)으로 DHCP 클라이언트를 돌려서 IP를 할당한다.
  2. 이제 IP가 할당되었다. 이 후에 원하는대로 사용하면 될 것이다.
  3. 한번 ping 테스트를 해보자. ping -I usb0 명령어로 USB 인터페이스로 Ping을 날릴 수 있다. 통신사마다 다르겠지만, LGU+ 기준으로는 Ping이 잘 작동한다.
  4. 이제 이 위에 우리가 원하는 각종 Application을 얹어보자. 어디서든 인터넷 환경이 되기 때문에 가능성이 무궁무진하다(?)

Miscellaneous

각 통신사별 APN 설정 (출처)

[SKT 3G APN 설정] APN: web.sktelecom.com MMSC: http://omms.nate.com:9082/oma_mms MMS 프록시: smart.nate.com MMS 포트: 9093 MCC: 450 MNC: 05

[SKT LTE APN 설정] APN: lte.sktelecom.com MMSC: http://omms.nate.com:9082/oma_mms MMS 프록시: lteoma.nate.com MMS 포트: 9093 MCC: 450 MNC: 05

[KT 3G APN 설정] APN: alwayson.ktfwing.com MMSC: http://mmsc.ktfwing.com:9082 MMS 포트: 9093 MCC: 450 MNC: 08

[KT LTE APN 설정] APN: lte.ktfwing.com MMSC: http://mmsc.ktfwing.com:9082 MMS 포트: 9093 MCC: 450 MNC: 08

[LG U+ LTE APN 설정] APN: internet.lguplus.co.kr MMSC: http://omammsc.uplus.co.kr:9084 MMS 포트: 9084 MCC: 450 MNC: 06

“Raspberry Pi × LTE Hat – Raspberry Pi 4 Model B에 LTE Hat (SIM7600E-H 4G HAT)을 추가해서 LTE를 써보자!”에 대한 4개의 댓글

  1. 궁금한 점이 잇습니다!
    조금 생소해서요
    라즈베리파이가 임베디드된 리눅스를 올려서 사용을하고
    그 라즈베리파이가 인터넷을 사용하기위해 sim을 꽂아서 lte를 사용하는건가요?
    아니면 라즈베리파이를 PC나 폰에서 테더링을 사용하기위한 일종의 라우터? LTE 허브? 식으로 사용하는 건가요?

    1. 말씀주신 부분 둘 다 맞습니다. 라즈베리파이에는 Raspbian(현재는 Raspberry Pi OS로 이름이 바뀌었습니다)라는 Debian 계열의 Linux가 올라가 있습니다. 이 위에 SIM7600E-H LTE 캐리어 보드(추가 모듈)를 장착하고 작업하였습니다.
      기본적으로는 캐리어 보드에 내장된 모뎀/안테나와 장착한 SIM을 통해 LTE망에 연결하여 인터넷 접속이 가능하게 됩니다. 이는 말씀주신 부분중에서 전자에 해당합니다.
      추가로 라즈베리파이에 내장된 WLAN 인터페이스와 각종 세팅을 통해서 WiFi AP를 활성화할 수도 있습니다. 이렇게 하면 LTE 허브나 라우터로도 사용할수도 있습니다만 본 포스트에서는 다루지 않았습니다 🙂

  2. 안녕하세요, 동일한 환경에서 테스트 중인데 동작하지 않아 문의 드립니다.
    LGUplus usim 사용중인데요, APN 설정을 써주신 것처럼 기입하지 않더라도 자동으로 할당되는 것이 맞는지요?
    저의 경우 통신모뎀이 지속적으로 재부팅하고,
    CREG: 0,3으로 반환되고 있는 상황 입니다.
    3일째 제자리 걸음..ㅎ RNDIS 모드 말고 컴파일 하여 사용할 때도 마찬가지네요.

    답변 부탁 드려요.

    1. 안녕하세요.
      SIM의 개통이 문제이거나, 아니면 APN을 직접 써줘야 하거나 둘 중 하나가 원인이 아닐까 합니다.
      제 환경에서는 U+ LTE USIM으로 개통할때 IMEI를 통신사에 직접 알려주고 개통하는 방식으로 진행했습니다. 기존에 사용중이던 USIM이라면, KT USIM과 같은 타 통신사 SIM으로도 테스트해보심이 어떨까요?
      APN을 수동으로 쓰는 방식은 https://ablog.jc-lab.net/158 이분께서 시도해보신거같습니다.
      지금은 제가 해당 보드를 더이상 가지고있지 않아서 디테일하게 도와드리기는 어려울것 같네요.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다