신성혁
실무2025.05 ~ 2025.05 (약 2개월)

SmartResetDevice

원격검침용 DCU/간선망 장애를 실시간 감지해 조치하는 리셋 장치를 설계·개발했습니다.

2인
팀 규모
약 2개월
개발 기간
30일
로그 보관

개요

한국전력 경기북부본부 현장에서 원격검침용 DCU 및 간선망 장애가 지속적으로 발생해, 이를 실시간으로 감지하고 원격에서 조치할 수 있는 전용 리셋 장치를 2인 팀에서 설계·개발했습니다.

STM32MP151 위에 Yocto로 커스텀 리눅스를 빌드하고, libgpiod로 gpiochip1/4를 제어해 DCU·모뎀 전원을 관리하는 NC(Normally Closed) 릴레이 로직을 구현했습니다. BitBake 레시피와 Device Tree를 수정하고 initramfs-overlay 배포 경로를 구성해 부팅 이미지를 최적화했습니다.

임베디드 특성상 저장공간이 제한적이라 일별 로그를 분할하고 30일 보관 정책으로 자동 정리하되, 임계치에 도달하면 긴급 정리로 공간을 확보하도록 했습니다. 원격 F/W 업데이트는 ARIA-128-GCM으로 암호화하고 레거시 시스템과의 호환을 위해 paramiko 기반 SSH/SCP로 전송했으며, MD5 해시로 파일 무결성을 검증하고 실패 시 이전 버전으로 자동 복구되도록 설계했습니다.

핵심

  • libgpiod로 DCU/모뎀 전원 관리, GPIO 리셋 로직 구현
  • Yocto BitBake 레시피 · Device Tree · initramfs-overlay 구성
  • 일별 로그 분할/자동 정리(30일 보관)로 파일시스템 관리
  • ARIA-128-GCM 암호화 + SSH/SCP 원격 F/W 업데이트(무결성 검증, 자동 복구)

기술 스택

커스텀 Linux (Yocto)STM32MP151Python3ShellScriptlibgpiod