
옛날옛날에
라즈베리파이 4B 8GB 두 대를 사놓고 먼지만 쌓여가고 있었다.
사놓을 때는 뭐라도 만들 것 같았는데, 막상 손이 안 갔다. 전원도 안 꽂고 책상 서랍에 처박혀 있던 걸 이번에 꺼냈다.
왜 직접 돌리나
요즘 OpenClaw 같은 서비스들을 보면서 꽤 감명받았다. 그리고 비슷한 상용 서비스들이 우후죽순으로 나오고 있다.
상용 서비스에는 분명한 장점이 있다. 가입하면 바로 쓸 수 있고, 서버 관리도, 업데이트도, 장애 대응도 내가 안 해도 된다. 월 몇 천원에서 몇 만원이면 알아서 돌아간다. 대부분의 사람에게는 이게 정답이다.
그런데 나는 직접 돌리기로 했다. 이유는 다섯 가지였다.
- 유지비 — 월 구독료 대신 전기세. 라즈베리파이는 24시간 켜놔도 몇백 원 수준이다.
- 커스텀 — 프롬프트, 스킬, 자동화, 연결할 서비스를 내 방식대로 조합할 수 있다.
- 정보 — 대화와 파일이 내 기기 안에 남는다. 어디로 흘러가는지 내가 안다.
- 보안 — 외부 서비스에 내 계정과 파일 접근 권한을 통째로 맡기지 않아도 된다.
- 정책 — 상용 모델은 제공사 정책에 따라 거부하는 요청이 있다. 회색지대에 걸치는 작업을 시킬 때 이게 걸린다. 직접 돌리면 그 판단을 내가 한다. 물론 불법적인 일은 하지 않고, 책임도 나에게 따른다.
덤으로, 만지다 보면 배운다. 이게 사실 제일 컸다.
SD 카드에 OS 넣기, 그리고 Pi Connect
일단 SD 카드에 OS를 넣는 것부터 시작이다. Raspberry Pi Imager로 이미지를 굽고, 부팅하면 끝.
여기서 Raspberry Pi Connect라는 걸 처음 써봤다. 무료 서비스인데, Pi에 계정만 연결해두면 브라우저에서 해당 기기의 터미널을 바로 열 수 있다.
예전에는 달랐다. 공유기 관리 페이지에 들어가서 DHCP 할당 목록을 보고, 안 보이면 포트 스캐닝으로 같은 대역을 훑어서 기기 IP를 찾아내고, 그 IP로 SSH를 붙였다. 모니터와 키보드를 꺼내야 할 때도 많았다.
지금은 그 과정이 통째로 사라졌다. Pi Connect 켜두면 끝이다.
업데이트 중 Pi Connect가 끊길 때
Pi Connect도 항상 매끄럽지는 않아서, 가끔은 SSH를 같이 썼다. 안정적인 건 역시 SSH다.
진짜 문제는 업데이트할 때 나왔다. 업데이트 도중 Pi Connect가 갑자기 끊기는데, 그 끊김이 업데이트 프로세스까지 함께 죽인다. 브라우저 터미널 안에서 돌던 작업이라, 세션이 사라지면 그 안에서 돌던 것도 같이 사라진다. 업데이트는 중간에 멈추고, 기기는 고장 난 것처럼 보인다.
단서는 재부팅 직전에 1~2초 뜨는 메시지였다. Pi Connect 관련 안내였고, 내용은 결국 linger 설정을 하라는 것이었다. 그 몇 초를 놓치면 남는 게 없어서, 한참 헤맨 끝에야 그 문구가 linger 이야기였다는 걸 알았다.
해결은 그 메시지가 알려준 대로였다. 계정에 lingering을 켜두면 로그아웃하거나 세션이 끊겨도 사용자 서비스가 계속 살아 있다. 이걸 켜고 나서는 업데이트가 세션과 함께 죽는 일이 없어졌다.
sudo loginctl enable-linger "$(whoami)"
참고로 OpenClaw 문서도 headless Pi에서 같은 설정을 권한다. 게이트웨이를 사용자 서비스로 돌리는데, 로그아웃했다고 서비스가 죽으면 안 되니까.
공식 문서를 안 읽어서 생긴 삽질
OpenClaw 공식 문서의 라즈베리파이 가이드는 이렇게 못 박아두고 있다.
Raspberry Pi OS Lite (64-bit) — no desktop needed for a headless server. 64-bit Raspberry Pi OS (required — do not use 32-bit)
나는 이걸 대충 보고 데스크톱 버전으로 밀었다가 한참 헤맸다. headless 서버에 데스크톱 환경은 필요 없고, 메모리만 잡아먹는다. 처음부터 Lite 64-bit로 갔으면 30분은 아꼈을 것 같다.
쿨러 연결에서 또 한 번
쿨러는 따로 산 게 아니라 케이스에 달려서 왔다. 문제는 팬 전원이었다. 옆에 있는 핀 포트에 연결해야 하는데, 핀 배열이 정해져 있어서 아무 데나 꽂으면 안 된다.
설명서도 없이 생김새만 보고 맞추려니 감이 안 왔다. 결국 GPT한테 물어봤고, 바로 알려줬다.
예전 같으면 포럼을 뒤지거나 유튜브 영상을 몇 개 봤어야 했을 일이다. 참 편한 세상이다.