0.85인치 초소형 하드디스크 리버스 엔지니어링: SDIO 프로토콜 분석과 AI가 앗아간 낭만


플래시 메모리가 금값보다 비싸던 시절을 기억하십니까? 2000년대 초반, 우리는 용량을 확보하기 위해 주머니 속 기기에 실제로 ‘모터가 도는’ 물리적 디스크를 넣고 다녔습니다. iPod Mini에 들어갔던 1인치 마이크로드라이브가 대표적이죠. 하지만 도시바(Toshiba)는 한 발 더 나아가 2004년에 기네스북에 등재된 0.85인치 하드디스크, MK4001MTD 를 세상에 내놓았습니다.

최근 하드웨어 해커 Will Whang이 이 잊혀진 유물을 리버스 엔지니어링하여 최신 PC에서 읽을 수 있는 커스텀 USB 리더기를 제작했습니다. 하드웨어 엔지니어로서 이 프로젝트의 접근 방식은 감탄을 자아내기에 충분했지만, 결말부에서 등장한 ‘AI(OpenClaw)‘의 개입은 Hacker News 커뮤니티와 저에게 복잡한 감정을 남겼습니다. 이 흥미로운 프로젝트의 기술적 디테일과, 우리가 엔지니어링에서 잃어버리고 있는 것에 대해 이야기해 보겠습니다.

핀아웃의 함정: MMCplus가 아니었다

MK4001MTD의 접점을 보면 전형적인 MMC 스타일, 특히 8-bit 데이터 버스를 지원하는 MMCplus와 매우 흡사하게 생겼습니다.

초기 시도에서 저자는 이 드라이브를 일반적인 SD/MMC 스토리지로 가정하고 USB2240 기반의 커스텀 리더기를 만들었습니다. 하지만 로직 애널라이저로 패킷을 뜯어보니, 드라이브는 SD 카드의 초기화 명령어인 ACMD41, CMD55, CMD8에 전혀 응답하지 않았습니다. 즉, 물리적인 폼팩터만 빌려왔을 뿐 내부는 완전히 다른 프로토콜을 사용하고 있었다는 뜻입니다.

진실의 방: Nokia N91과 로직 애널라이저

스펙 시트가 없는 하드웨어를 해킹할 때 가장 확실한 방법은 ‘정상 동작하는 호스트’를 구해서 통신을 스니핑하는 것입니다. 저자는 이 디스크가 실제로 탑재되었던 노키아 N91 스마트폰을 중고로 구했습니다.

N91의 메인보드와 디스크 사이에 와이어를 납땜하고 부팅 과정을 캡처한 결과, 드디어 진실이 밝혀졌습니다.

  • SDIO Protocol: 일반적인 메모리 카드 모드가 아니라, 주변기기 확장을 위한 4-bit SDIO 인터페이스(CMD52 트래픽 발생)를 사용하고 있었습니다.
  • ATA Tunneling: 더 놀라운 점은, 이 SDIO 인터페이스 위에서 IDENTIFY DEVICE와 같은 표준 ATA 명령어들이 터널링되어 전송되고 있었다는 것입니다.

당시 도시바 엔지니어들의 실용적인 선택이 돋보이는 대목입니다. 기존의 ATA 컨트롤러 로직을 최대한 재사용하면서, 모바일 기기에서 흔히 쓰이는 SDIO 버스를 통해 물리 계층을 해결한 것이죠.

RP2040과 AI의 등장, 그리고 엇갈린 반응

프로토콜의 정체를 파악한 후, 이를 USB Mass Storage로 변환해주는 브릿지 펌웨어를 작성해야 합니다. 저자는 Raspberry Pi Pico(RP2040)를 선택했습니다. RP2040의 PIO(Programmable I/O)는 이런 비표준, 고속 타이밍 인터페이스를 구현하는 데 최적의 하드웨어입니다.

그런데 여기서 논란의 전환점이 발생합니다. 저자는 로직 트레이스 데이터를 ‘OpenClaw’(LLM 기반 AI 에이전트)에게 던져주고 펌웨어 작성을 통째로 위임했습니다.

AI는 SDIO 디코더를 만들고, USB 저장소 요청을 ATA 명령으로 변환하여 SDIO로 터널링하는 PIO 코드를 작성해 냈습니다. 물론 삽질(Local Minima에 빠지거나 디스크 내용을 날려먹는 등)이 있었지만, 결국 GPT-4 수준의 모델이 이를 해결했습니다.

결과물 자체는 훌륭합니다. 커스텀 PCB까지 제작하여 10MHz 클럭으로 동작하는 아담한 리더기를 완성했으니까요.

시니어 엔지니어의 시선: 우리는 무엇을 위해 해킹하는가?

솔직히 말씀드리면, 저 역시 USB 스택을 바닥부터 짜거나 PIO 타이밍을 맞추는 작업이 얼마나 고통스러운지 잘 안팎으로 겪어보았습니다. 프로덕션 환경에서 마감일이 정해져 있다면 AI를 써서 보일러플레이트를 생성하는 것은 완전히 합리적입니다.

하지만 Hacker News의 반응은 싸늘했습니다. “OpenClaw라는 단어가 나오는 순간 읽기를 그만뒀다”, “마치 1시간 59분 동안 용을 잡기 위해 준비하던 기사가 갑자기 화면이 암전되더니 ‘용은 죽었고 공주와 결혼했다’며 끝나는 영화를 본 기분이다”라는 댓글이 많은 공감을 얻었죠. 저 역시 이 의견에 깊이 동의합니다.

리버스 엔지니어링의 본질은 ‘결과물’이 아니라 이해의 과정 에 있습니다. 알 수 없는 바이트 배열 속에서 패턴을 발견하고, 데이터 시트의 빈칸을 내 머릿속에서 채워나가는 그 희열 말입니다. AI가 “나머지 올빼미를 그려버리는(Drew the rest of the f ***ing owl)” 순간, 이 글은 엔지니어링 모험기에서 단순한 툴 사용기로 전락해 버렸습니다. 회로 설계는 어떻게 했는지, PIO State Machine의 타이밍 이슈는 어떻게 해결했는지에 대한 인간 엔지니어의 고뇌가 증발해 버린 것입니다.

결론

기술적으로 이 프로젝트는 20년 된 잊혀진 스토리지 매체를 현대의 기술로 부활시킨 훌륭한 사례입니다. RP2040의 유연성과 SDIO 오버 ATA라는 독특한 아키텍처를 구경하는 재미도 쏠쏠했습니다.

하지만 동시에, AI 도구가 우리의 문제 해결 능력을 보조하는 것을 넘어 ‘엔지니어링의 낭만’과 ‘깊은 기술적 통찰을 공유하는 문화’를 어떻게 갉아먹을 수 있는지 보여주는 완벽한 예시이기도 합니다. 코드를 짜주는 AI는 훌륭한 Throughput을 내는 도구이지만, 그 도구가 내린 결론을 리뷰하고 통찰을 더하는 것은 여전히 인간 엔지니어의 몫으로 남겨두어야 합니다.

References