거의 4년만에 이 분류에 글을 쓰는 것 같다. 사실 내 손에서 V43이 떠나서 동생에게 간 지도 꽤나 오래 되었고, 하드디스크가 고장났다는 말을 듣기 전까지는 V43을 쳐다볼 필요도 없었기 때문이다. 작년 말인가 하드디스크가 고장나 주신 이후, 동생이 인강 듣겠다고 PMP를 사기 전까지는. 실제로도 갤럭시 탭 Wi-Fi를 샀다가 메가스터디가 안 되는 문제로 환불했고, 갤럭시 플레이어 5인치 모델을 사기 직전까지 갔다. 물론 V43을 고칠 수 있으면 사지 않는다는 조건이 있었다.
인터넷을 좀 찾아 보니 V43에 CF 카드를 설치했다는 삽질기가 있어서 나도 CF 카드를 달아 보기로 했다. 준비물은 CF 카드와 CF to 1.8인치 IDE 젠더, 그리고 인두기와 기타 피크/신용 카드다. 어차피 스펙의 한계 때문에 고 비트레이트 파일은 틀 수 없을 것이라 판단하여 트랜센드 32GB 133x CF 카드를 샀다. CF to 1.8인치 IDE 젠더는 인터넷을 검색하면 점퍼가 달려 있는 젠더를 싸게는 3000원에 살 수 있다. 점퍼의 높이 때문에 V43 케이스가 안 닫힐 수도 있으며, 인두기를 통해서 점퍼를 떼내고 마스터로 고정시켰다. 인두기가 없다면 두 선을 꺾어서 이어도 되지만 추천하지는 않는다. 기타 피크는 V43 분해 시 필요하다.
V43을 분해하려면 일단 나사를 다 풀어야 한다. 플라스틱 클립으로 맞물려 있기 때문에 나사만 다 푼다고 해서 절대로 빠지지 않는다. 기타 피크나 신용 카드를 사용해서 모서리 부분에 있는 클립을 공략한다. 클립 몇 개만 맞물려 있던 것을 풀면 V43의 하판은 쉽게 따낼 수 있다. 하드 디스크만 교체하려면 하판만 뜯어내면 된다. 달리 말하면, 하판 바로 아래에 하드디스크가 있어서 배터리가 임신하면 하드 디스크는 직격탄을 맞는다. 어쨌든 하드를 보자.
저기 저 쇳덩어리가 하드다. 내가 이걸 뜯을 때 상황은 전원을 켜면 달그락 달그락거리기만 하고 V43 | Qtopia 화면에 멈춰 있었다. 여기 있는 이 1.8인치 하드를 뽑아 내고 CF 카드를 꼽는 것이 개조의 핵심이다. 젠더를 샀으면 CF 카드를 꼽기 전에 마스터/슬레이브 전환 점퍼를 인두로 지져서 빼내 놓고, 선을 이어서 항상 마스터로 보이게 만들면 된다.
CF 카드를 꼽기 전에 컴퓨터에 꼽아서 파티션을 나눠 놓아야 한다. 윈도에서 이걸 하려면 삽질이 많이 필요하지만, 리눅스에서는 쉽게 할 수 있다. 좋아하는 GUI 파티션 편집기를 열어서 맨 끝 1GB 정도를 ext2 파티션으로 잡아 놓고, 나머지를 fat32로 만들어 놓는다. 레이블이니 뭐니 하는 건 상관없고 핵심은 ext2다. 파티션을 만들 때나 만들고 나서 fat32 쪽의 레이블을 V43으로 바꿔 두지 않으면 넷싱크 DRM 적용 기기에 연결할 때 문제가 될 수 있다. ext2 파티션까지 다 만들었으면 CF 젠더에 꼽고 V43에 젠더를 꼽자. 젠더가 들뜬다면 테이프로 붙여도 되고, 어차피 케이스 안에 있으니까 케이스에 의해서 눌릴 수도 있다.
젠더를 다 끼우면 이렇게 된다. 만약 사진에 보이는 저 젠더를 샀다면. 1.8인치 하드 연결부 끝의 플라스틱을 잘라내서 V43 쪽의 하드 연결부를 보존하고, CF 카드가 위로 가게 연결하면 된다. 1번 핀 시작 지점이라고 되어 있는 곳 왼쪽의 선 3쌍은 어차피 V43 메인보드에도 연결되어 있지 않으니까 걱정 뚝. 이제 케이스를 덮고 나사를 조이고, AC 어댑터를 연결한 채로 전원을 켜면 복구 모드로 들어간다. 1.4.9 펌웨어가 가장 최근 복구 모드용 펌웨어이므로 거기에서 시작해서 순서대로 패치하면 된다.
시스템 정보를 보면 V43 32G라는 유니크한 용량이 뜬다. 바로 32GB CF를 끼웠기 때문이다. 30GB 하드에 비하면 나름 옆그레이드이다. CF 개조를 머뭇거리는 이유 중 하나가 바로 맨 오른쪽의 인증 때문인데, T43의 경우에는 나올 때부터 Qtopia였기 때문에 사전을 제외하면 별도의 인증이 필요없지만 V43은 나올 때는 Qtopia가 아니었기 때문에 인증을 통과하지 못하면 PMP 자체를 쓸 수 없다는 문제가 있다. 다행히도 트랜센드 133x CF 카드는 인증 탭을 누르면 일련 번호를 보여 주기 때문에 어떻게 잘 하면 인증이 가능하다. 물론 원래 들어있던 하드 디스크보다 일련 번호가 길다는 건 유의해야 한다. 일부 CF 카드는 여기 번호가 뜨지 않아서 아무것도 못 하는 경우가 있다.
하지만 여기까지만 해서는 별로 만족스러운 속도가 안 나온다. 터미널을 열고 dmesg를 입력해 보니 DMA 모드가 활성화되지 않았다고 뜬다. hdparm -tT로 속도를 구해 보면 3.7MB/s 정도밖에 나오지 않는다. PMP 안에서는 문제될 것 없는 속도지만, 이 속도 그대로 PC와 연결했을 때 복사되기 때문에 속이 터질 확률이 상당히 높다. dmesg를 입력해 보면 DMA 화이트리스트에 없는 하드 디스크라고 DMA 활성화를 거부한다. 이건 리눅스 커널의 Au1200 IDE 드라이버가 일부의 DMA를 제대로 지원하지 못하는 하드 디스크 때문에 목록에 없는 하드디스크는 PIO 모드를 사용한다. Au1200의 구조 상 USB와 IDE가 같은 버스를 공유하므로, PIO 모드로 CF 카드가 잡혀 있으면 전송 속도가 속터지게 느려진다. 이 문제를 해결하려면 커널을 수정해야 하는데, V43의 커널 소스 코드나 빌드 방법은 현재 사라져서 커널 바이너리 이미지를 건드려야 한다.
최근의 리눅스 커널에서는 위의 제한이 사라졌지만, V43에 탑재된 리눅스 2.6.11 커널 소스 코드의 au1xxx-ide.h에는 이러한 제한이 있다. 링크를 건 코드는 2.6.17이지만 2.6.11과 크게 다를 바가 없다. 디큐에서 공개한 커널 소스 코드에는 저 위에 V43에 탑재되는 도시바 1.8인치 하드디스크가 화이트리스트로 추가되어 있다. kernel.bin 파일에 도시바 하드의 모델명이 보이는 이유도 이것 때문이다. dmesg | grep hda를 통해서 CF 카드의 모델명이 어떻게 인식되는지를 알아낸 다음, 헥사 에디터로 kernel.bin 파일을 열어서 적당한 것 하나를 CF 카드 모델명으로 바꾸자. 내 경우에는 CF 카드 모델명 “TS32GCF133″과 “ST3120026A”의 글자 수가 같아서 그걸 바꿨다. kernel.bin 파일을 디스크에 복사하면 부팅이 될 줄 알았는데…
V43의 kernel.bin 파일은 체크섬 정보가 들어 있다. 이 외에도 로더 주소, 파일 크기, 장치 정보가 기록되어 있기 때문에 글자 하나 고치면 체크섬이 틀어져서 큐토피아 대신 복구 모드가 뜬다. 디큐가 공개한 커널 소스 중에 kernel.bin 파일을 만드는 부분이 있는데, 그걸 잘 사용하면 체크섬을 어떻게 계산하는지 알 수 있다. 대강 이 코드를 받아다 컴파일하면 된다. 맨 앞 40바이트를 지우고 이 프로그램으로 체크섬을 계산한 다음, 헤더가 있는 파일의 28~32바이트 부분에 리틀 엔디안 순서(이 프로그램이 뱉는 값의 역순)로 집어넣으면 된다. 아 뭐 간단한 거니까 이게 귀찮으면 고쳐서 써도 된다.4206390033.c이제 이렇게 커널을 고쳐서 집어 넣으면 dmesg에 무시무시한 DMA 경고가 뜨지도 않고, 속도도 9.7MB/s로 상승한다. CF 카드의 한계도 있고, 리눅스 Au1200 IDE 드라이버가 MWDMA 모드 2까지만 지원하도록 되어 있기 때문에 최대한으로 나올 수 있는 속도는 16.7MB/s이다. 좌절스러운 속도에도 다 이유가 있었군.
CF 카드 개조 이후의 배터리 시간은 테스트해 볼 필요가 있다. 그리고 배터리 임신에 좀 더 오래 버틸 수 있기를 기대하며.