Category Archives: 삽질

블랙베리 Z10 10.2 업데이트 시 한글 SMS 오류 해결

그 동안 CrackBerry 사이트에 유출되어서 올라오는 10.2 릴리즈를 계속 모니터링하다가, 최근 10.2.0.1767 버전이 정식 릴리즈되었다는 소식을 듣고 과감하게 올렸다. 10.1 MR 버전에서는 escreen을 사용해도 KT APN을 입력할 수 없었던 문제가 있었지만, 10.1 초기 버전에서는 Google 서비스에 로그인할 때 2단계 인증을 지원하지 않아서(애플리케이션별 암호를 생성해야 함) 어차피 데이터 차단을 걸어 둔 마당에 2단계 인증이 더 중요하다는 생각으로 10.1 MR을 계속 유지해 왔다. 하지만 MMS를 못 받는다는 치명적인 문제가 있었기 때문에 10.2를 과감하게 올렸다. 전에 썼던 N9는 데이터와 MMS가 별개로 놀아서 좋았는데, Z10은 데이터가 죽으면 MMS가 같이 죽어서 불편하다.

그러니까 펌웨어 버전별 상태 요약:

  • 10.1.0.1720 (릴리즈 10.1.0.273): KT APN 편집 가능, Google 2단계 인증 미지원
  • 10.1.0.4633 (릴리즈 10.1.0.4181): KT APN 편집 불가, Google 2단계 인증 지원
  • 10.2.0.1767 (릴리즈 10.2.0.415): KT APN 편집 가능, Google 2단계 인증 지원

Google 2단계 인증 지원이 없으면 안 되기 때문에 과감히 10.2.0.1767로 올렸으나, 이번에는 치명적인 SMS 한글 깨짐 문제가 발생했다. 내가 보내는 메시지는 제대로 한글이 보이나, 받는 메시지의 한글이 상당 부분 깨졌다. 일부 메시지는 깨진 부분이 중요하지 않아서 내용을 유추할 수 있으나, 일부는 메시지 전체가 깨져 버리는 경우가 있다. 페이스북에도 올렸던 이 사진을 참고하면 된다.

야이 개새끼들아

야이 개새끼들아

나는 이 기계를 Qt Contributor’s Summit에서 얻은 거라서 징징댈 판매자가 없었고, KT는 블랙베리를 정식 유통했던 적이 없었기 때문에 이 상황에서의 흔한 해결책인 “너님 통신사에 문의하세요”는 “즐”이라는 응답만 돌아올 게 뻔하다. 설상가상으로 BlackBerry 포럼은 공식 지원을 받을 수 있는 창구가 아니고, Incident Report 서비스를 이용하려면 $49가 나간답니다 고갱님. 1599-5119 한국 서비스 센터에 전화해 봤자 Z10은 한국에 안 들어왔기 때문에 FAIL. 이건 분명히 BB 잘못인데 내 돈 나가는 꼴은 보기 싫어서 조금 더 연구를 해 봤다.

10.2가 정식 릴리즈가 되기 전 CrackBerry에 돌던 방법으로는 하이브리드 롬이 있는데, BlackBerry 10 OS의 구조상 가능한 일이다. BB10 OS 릴리즈 10.a.b.c가 존재하면, 라디오 파일 릴리즈는 10.a.b.c+1로 이루어진다. 하이브리드 롬은 OS 10.a.b.c의 롬 파일과 라디오 10.a.b.d를 같이 밀어넣는다는 것이다. (c != d) OS 업그레이드는 크게 두 개의 .bar 파일로 이루어지는데, OS 업그레이드용 .bar 파일은 실제 데이터인 .signed 및 메타데이터를 포함한 zip 파일이기 때문에 오토로더를 만들 때에는 .signed 파일만 있으면 된다. Darcy’s BlackBerry Tools, Sachesi 모두 사용자가 가지고 있는 .signed 파일에서 오토로더 생성을 지원하며, 이 둘은 모두 cap.exe 실행 파일을 사용하여 .signed 파일에서 오토로더를 만든다. (.exe 파일이 튀어나오고 이 파일을 실행하면 펌웨어를 덮어씀)

2013/11/12 업데이트: 이 방법을 쓰고 며칠 후 폰이 제대로 응답하지 않다가, 재부팅 시 블랙베리 로고에서 진행되지 않는 현상이 나왔다. 라디오 버전과 OS 버전 불일치시 발생할 수 있는 증상 중 하나이며, 버전 불일치가 해결되지 않는 한 이 문제를 잡을 수 없다. 덕분에 Z10을 AS 보냈으며, 이와는 별개의 채널로 BB 측에 이 문제를 통보한 상태이다.

CrackBerry 사이트를 뒤지는 중 10.2.0.1767 OS/1048 라디오 롬을 조합해서 쓴다는 보고를 발견하였고, 이 조합이 성공할 것인지 반신반의하는 상태에서 일단 밀어넣었다. 라디오 파일만으로 오토로더를 생성할 수는 있으나, 이렇게 만들어진 오토로더를 사용하면 예상과는 달리 OS가 없다는 듯인지 빨간 불만 계속 깜빡거리고 부팅이 진행되지 않는다. 따라서 오토로더를 만들 때에는 무조건 OS/라디오를 짝지어 주어야 하고, 오토로더 실행 이후에는 휴대폰이 무조건 포맷된다. 백업 해 두길 잘 했지.

라디오 롬 파일은 여기에서 구할 수 있으며, 내 경우에는 Z10 STL100-1을 쓰기 때문에 STL100-1용 10.2.0.1048 라디오 파일을 구했다. Darcy’s BB Tools를 사용하여 미리 받아 둔 10.2.0.1767 OS 이미지와 1048 라디오를 합친 오토로더를 생성하고 이걸로 밀어넣은 결과…

하이브리드 OS/라디오

하이브리드 OS/라디오

escreen을 사용해서 APN 강제 지정도 가능하고 한글 SMS가 지금까지는 깨지지 않았다. OS 버전과 무선 버전이 따로 놀면 이제 성공이다.

노키아 5800 글로벌 펌웨어에 EUC-KR 인코딩 추가

2013/03/05 추가: 현재 저는 노키아 5800을 더 이상 메인으로 사용하지 않습니다. 본문에 나오는 펌웨어는 V60 EURO1을 받아서 한국 펌웨어에 있는 .r65 파일을 결합하고 인코딩 지원만 추가해 두었습니다. 실제 사용할 수 있는 수준과 거리가 멀기 때문에 제 폰에 플래싱한 펌웨어는 따로 제공하지 않습니다.


아직까지도 노키아 5800/X6을 쓰는 사람이 얼마나 있는지는 잘 모르겠지만, 삽질을 기록해 볼 필요성은 있을 것 같아서 글을 써 본다. 노키아 5800 커펌이 유행했을 때, 해결 불가능한 대표적인 두 가지 문제로 EUC-KR 미지원 및 한글 입력기 문제가 있었다. EUC-KR 미지원 문제는 결국 아무도 풀지 못한 문제가 되었고, 한글 입력기 문제는 외부에서 텍스트를 조합해서 붙여 넣는 방식의 한글 입력기나 Swype에 한글 사전을 추가하여 해결하였다. EUC-KR 인코딩 문제를 쉽게 해결할 수 있을 것 같다고 생각해서 과감하게 글로벌 펌웨어 V60 기반으로 올렸지만, 생각만큼 문제 해결이 쉽지 않았다.

인코딩 문제는 생각보다 복잡하다. 노키아 심비안 휴대폰들의 메모리 영역은 보호가 강한 순서대로 (ROM, CORE, ROFS1), ROFS2, ROFS3으로 나뉘며, 오래 전 디브랜딩에 대해서 썼던 글은 ROFS3 영역을 통신사 소프트웨어가 설치되어 있지 않은 파일로 바꿔서 6210의 경우 폰꾸미기 등을 날려 버리는 방법이다. 커펌들은 ROFS3 이상의 영역까지 손을 대며, 글로벌 펌웨어와 한국 펌웨어는 CORE 영역부터가 달라서 쉽게 왔다갔다할 수 없다.

한국 펌웨어에 추가되어 있는 EUC-KR 인코딩 관련 파일은 ROM 영역에 있는데, 이 영역에 있는 실행 파일은 폰에서는 모두 Z: 드라이브에 있는 것으로 보이지만, ROFS 영역에 있는 실행 파일과 형식이 다르다. ROM 영역에 있는 실행 파일 및 DLL 파일은 XIP 형식으로 되어 있기 때문에 일반적인 S60 실행 파일처럼 실행시킬 수 없다. 또한 XIP 형식 실행 파일에서는 외부 참조를 절대 주소로 불러오기 때문에, ROM의 구조가 바뀌어 버리면 실행할 수 없다. 따라서 제아무리 ROM 영역에 있는 DLL 파일을 추출해서 ROFS2 영역에 붙여넣어도 실행되지 않는다. 게다가 모든 커스텀 펌웨어들이 ROM 영역은 건드리지 못하기 때문에 EUC-KR 인코딩을 쉽게 집어넣을 수는 없다.

ROM 영역에 있는 실행 파일을 ROFS 영역에서 실행되게 하려면 XIP 형식 실행 파일을 일반적인 E32 형식으로 바꿔야 하며, 이걸 위해서는 실행 중인 휴대폰에서 ROMPatcher+를 사용하여 뜬 ROM 덤프가 필요하다. 불행히도 이 글을 쓴 시점에서는 V60 CORE를 올려 버린 상태라서 V20 한국 펌웨어의 ROM 덤프를 뜰 수 없었으며, 설상가상으로 주변에 있는 V20 펌웨어가 깔려 있는 5800을 구할 수도 없었다. 되면 좋고 안되면 말고 하는 마음으로 6210 펌웨어에서 ROM 덤프를 떴다. 어차피 한국어 인코딩에 관한 부분은 크게 바뀌지 않았을 것이라고 생각하였다. 그 다음 aRomAT를 사용하여 ROM 덤프에 있는 실행 파일을 E32 형식 실행 파일로 바꿔야 한다. ROM 덤프에서 추출해야 하는 실행 파일은 CP949.dll, cp949table.dll, EUCKR.dll, iso2022kr.dll, ksc5601.dll이다. aRomAT를 실행하고 파일을 찾은 다음 “Convert to EPOC”을 실행하면 ROFS 영역에서 실행할 수 있는 dll 파일로 변환된다.

이제 커스텀 펌웨어의 ROFS2 영역을 열어서 sys\bin 폴더에 5개의 DLL 파일을 추가하고, V20 ROM에 있는 EUCKR.snm, iso2022kr.snm, ksc5601.snm 파일을 추출하여 resource\charconv 폴더에 복사한다. 실행 파일은 아니므로 복사 그대로 해도 무방하다. 그 다음에는 ROFS1 영역에 있는 private\10009d8f\ecom-0-0.spi 파일을 편집하여 인코딩에 관한 정보를 추가해야 한다.

2013/03/05 추가: ROM 영역을 열 수 있는 펌웨어 쿠커로 열지 않으면 snm 파일이 안 보이므로 한국판 V20 펌웨어에서 추출한 snm을 올려 둔다.

3740057327.zip첨부한 파일은 노키아 6210 펌웨어에서 추출 및 가공한 한국어 인코딩 DLL, ecom-0-0.spi 파일에 추가해야 할 부분이다. 5800 V20 펌웨어에 있었던 snm 파일은 펌웨어에서 추출해야 한다. encodings.spi 파일을 열면 위에 있는 DLL 파일의 등록 정보가 있으며, ROFS1 영역에서 저 파일을 추출한 다음 windows-1258 인코딩 정보 다음에 붙여넣은 다음 ROFS2 영역에 같은 파일 이름으로 저장한다. 같은 방법으로 5800 V20 ROFS1에 있는 resource\TopCharacterSet.rsc 파일을 ROFS2 영역에 붙여넣는다. ROFS1 영역을 편집해도 되지만, 이번 작업의 목표가 ROFS2 이상만 건드린다는 것이므로 생략한다.

2734176526.zip

이렇게 하고 플래싱을 실행하면 그 동안 기존 커펌에서 성공시키지 못했던 KT 망에서의 한국어 MMS 디코딩 및 EUC-KR 웹 페이지가 깨지지 않고 보인다. 성공했는지 보려면 웹 브라우저의 옵션->페이지를 열어서 문자 인코딩을 보면 되며, EUC-KR이 추가되었다면 한국어 (EUC-KR) 및 한국어 (ksc5601) 항목이 추가되어 있다.

웹 브라우저 인코딩 설정

웹 브라우저 인코딩 설정

Swype 한국어 지원 추가 및 한국어 입력기 추가에 관한 글은 차후 추가할 예정이다.

V43 하드 CF 개조기

거의 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 카드 개조 이후의 배터리 시간은 테스트해 볼 필요가 있다. 그리고 배터리 임신에 좀 더 오래 버틸 수 있기를 기대하며.

최신 리눅스에서 심시티 3000 즐기기

알고 계십니까? 심시티 3000에는 네이티브 리눅스 포트가 있다는 사실을. 당장 구글에서 ‘심시티 3000 리눅스’라고 검색을 해도 이 사실은 잘 알려져 있지 않다. 리눅스 포트가 나온 건 심시티 3000이 나왔을 무렵이었고, 지금은 망해버린 로키 소프트웨어(2002년에 망했지만 아직도 웹 사이트는 열려 있다)가 포팅을 하였다. 같은 시기에 나온 윈도용 심시티 3000은 최근의 윈도에서도 잘 돌아가지만, 리눅스 세계는 자고 일어나면 뭔가 바뀌어 있는데다가 유저랜드까지도 오픈소스가 대부분이기 때문에, 이러한 바이너리로만 배포되는 프로그램은 ‘지원하는 배포판’을 벗어나면 삽질의 시작이다. 심시티 3000 또한 그렇다.

어쨌든, 로키 소프트웨어가 망한 이후에 여러 사람들이 저 때 당시 사용되었던 라이브러리를 별도로 패키징해서, 로키 소프트웨어가 포팅했던 게임을 비교적 최근의 배포판에서도 돌릴 수 있도록 해 주는 별도의 라이브러리 패키지를 만들었다. 대개 loki_compat 따위로 검색해 보면 나온다. 우분투 6.xx에서 심시티 3000을 돌리려면 이 패키지를 설치해야 한다는 사실에서 알 수 있듯이, 지원 따위 끊긴 상당히 오래된 버전의 glibc/SDL/기타등등 라이브러리를 사용했기 때문에 이건 필수다. 하지만 주의깊게 지시 사항을 따라하지 않으면 실패하기 십상이며, 나도 이 때문에 loki_compat 라이브러리를 받아 놓고도 이게 제대로 실행되는 걸 본 적이 없다.

최근에 나온 프로젝트 중 loki installers for linux gamers, 줄여서 liflg가 있다. 이 프로젝트는 오픈소스로 공개된 loki_setup을 사용하여, loki_compat 라이브러리와 적절한 설치 스크립트를 하나로 묶어서 게임 인스톨러를 제작하였다. loki_compat 라이브러리를 수동 설치할 때와는 달리 지정한 경로 안에 알아서 압축까지 풀어 주고, 이 라이브러리를 사용하는 실행 스크립트도 알아서 만들어 준다. 그래서 이 방법을 사용하면 설치 및 실행 성공률도 상당히 높다. 심시티 3000 리눅스 버전은 인터넷에서 구하기가 쉽지 않고, 토렌트를 뒤져도 잘 나오지 않는다. 모종의 경로로 구해둔 게 있긴 하지만 괜히 업로드해 뒀다가 저작권 문제가 생길 수 있으므로 여기에서는 생략한다. 심시티 3000 리눅스 버전 iso 파일을 구했으면 인스톨러를 다운로드받는다. 베타라고 쓰여 있지만 잘 작동한다. 32비트 리눅스를 사용하고 있으면 넘어가고, 64비트 리눅스를 사용하고 있으면 미리 32비트 호환용 라이브러리를 설치해 둔다. 데비안 amd64 unstable에서 실험 결과 잘 작동한다.

다운로드가 끝났으면 구해 둔 iso 파일을 CD에 굽는다. 아직까지 loki_installer가 CD-ROM을 인식하는 건 잘하지, 루프백으로 마운트시켜 둔 CD 이미지를 인식하지는 못 하는 것 같다. 방법을 알고 있으면 제보 바란다. 그 다음 다운로드받은 인스톨러 파일에 실행 권한을 준다. Dolphin의 경우 오른쪽 클릭->속성->권한->실행 가능에 체크하면 된다. 그 다음 CD를 삽입하고 인스톨러를 실행시킨다. 일반 사용자로 실행시키면 자기 홈 디렉터리 아래, 루트로 실행시키면 /usr/local/games 아래에 설치한다. 첫 화면이 지나면 설치 경로와 구성 요소를 물어본다. 이 때 언어, Building Arcitect, 인트로 영상 설치 여부를 같이 물어오므로 필요하면 선택한다. 설치가 시작되면 CD에서 파일을 복사하고, 알아서 시작 메뉴 항목도 만들어 준다.

심시티 3000 설치 화면

심시티 3000 설치 화면

K 메뉴 항목

K 메뉴 항목

자 이제 시작 메뉴 항목을 통해서 심시티 3000을 실행시켜 보자. 첫 실행 시 해상도는 640×480이므로, 게임 옵션을 적절히 수정해야 한다. Geforce 8400M GS, 듀얼 모니터 환경에서 테스트해 본 결과, 1280×1024는 게임이 진행될수록 끊김 현상이 나오므로 1024×768이나 1152×864 해상도를 추천한다. 인터페이스, 도시 건설, 글꼴을 비롯한 모든 요소가 윈도용 심시티 3000과 동일하므로, 심지어는 치트키까지 똑같이 쓸 수 있다.

심시티 3000 시작 화면

심시티 3000 시작 화면

심시티 3000 게임 화면

심시티 3000 게임 화면

그러면 즐겜.

노키아 배터리용 24핀 충전 거치대 제작 – 테스트

그렇게 이베이에 주문을 넣고 3주쯤 지나서 소포가 도착했다. BP-4L의 크기가 더 크기 때문에 충전 거치대는 BP-4L용으로 2개 질렀다. 지금 와서 생각해 보니, 실패를 대비해서 2개를 지른 건 잘 한 선택이었다. 하나는 AC 플러그가 달린 버전, 하나는 2mm 잭만 달린 버전이다. 원래는 2mm 잭만 달린 버전을 개조하고 AC 플러그 버전은 그대로 쓰려고 했다. 하지만 2mm 잭에 충전기를 끼웠다 빼는 순간 중간의 극이 삐뚤어져서 ‘아 이것이 중국 퀄리티구나’라는 사실을 깨닫게 되었다. AC 플러그 버전도 하드웨어 퀄리티가 그닥 좋지는 않아서, 학교 잡화점에서 산 돼지코가 끝까지 들어가지도 않아서 ‘내장은 버리고 외장만 사용’하기로 결정하였다.

이베이표 충전 거치대 회로 기판

이베이표 충전 거치대 회로 기판. 판매자 말로는 마이크로칩 내장이라는데 개뿔. 트랜지스터와 저항 뿐이다.

내가 여기서 필요한 건 저 위 전극 뿐인데, 어찌 전극 납땜 상태도 영 안 좋다. 선을 새로 납땜하는데, 인두 열기 때문에 녹은 납이 아래로 흘러내려서 플라스틱을 변형시켜 버렸다. 변형 정도가 점점 커져서 하는 수 없이 상판 중 하나는 버리고, 하나를 더 뜯었다. 작업하기 정말 골때리겠지만, 90도로 세워서 작업하면 그나마 녹는 시간이 좀 늦춰진다. 하지만 이것도 전극이 가열되면 플라스틱이 녹기 때문에 저 부분 납땜은 속전속결이 답이다. 여담이지만 중국산 납은 연기에 무슨 이상한 물질이 섞인 건지 작업하는 동안 문을 열어 놔야만 했다.

그 다음 미리 준비해 둔 24핀 커넥터와 4.7kOhm 저항을 납땜한다. 다행히도 옛날 휴대폰 충전 거치대에서 뜯어낸 24핀 커넥터는 SMD 방식이 아니기 때문에 잘 구부리면 만능 기판에도 들어간다. 배터리 ID는 4.7kOhm으로 이어 버려서 BSI 값이 실수로 전달되는 것을 막는다. 그 대신 충전기를 먼저 꼽으면 빨간 불만 깜빡이므로 배터리를 먼저 꼽아야 한다. 나머지야 배터리 쪽 전극의 양극과 음극을 충전기 쪽과 이으면 되기 때문에 난이도 자체는 어렵지 않다. BP-4L과 BL-5F의 홈 크기가 다르기 때문에 인두기로 홈 부분을 지져서 두 배터리 모두 들어가도록 손봤다.

24핀 커넥터와 저항 납땜

24핀 커넥터와 저항 납땜

다만 이걸 어떻게 깔끔하게 수납하느냐가 문제인데, 원래 기획대로라면 24핀 커넥터가 저 아래로 향해야 한다. 하지만 아래쪽 플라스틱이 상당히 강해서 옆판을 파내기로 계획을 바꿨다. 옆판 플라스틱을 가위로 뭉텅뭉텅 자르고, 회로 기판을 돌려서 24핀 커넥터가 바깥쪽으로 나오게 만든다. 그 다음 나사를 적당히 조여 줘서 케이스가 맞물리도록만 만든다. 일단 배터리를 꽂지 않고 충전기만 꽂았을 때, 빨간 불이 깜빡이는지로 정상 상태를 점검해 보았다. 이건 오래 전에 기존 애니콜 충전 거치대를 사용할 때에도 똑같이 적용된다.

빨간 불이 깜빡이면 BP-4L과 BL-5F 둘 다를 꼽아 보자. 6210에 BL-5F를 꼽고 빈 상태에서 만충전까지 걸린 시간보다 24핀 충전기로 BL-5F를 만충전시키는 데 걸린 시간이 좀 많이 오래 걸려서 처음에는 과연 녹색불이 뜰 지 의심스럽기도 했다. BL-5F 만충전이 한 2시간 30분 정도 걸렸고, 용량이 그거의 1.6배(950mAh vs 1500mAh) 정도 되는 BP-4L은 4시간이 지나도록 만충전에 불이 들어오지 않아서 처음에는 무슨 문제가 생겼나 했다. BP-4L을 시험해 볼 때는 도대체 만충전이 안 되는 것 같아서 이러다가 배터리 터지는 거 아닌가 싶어서 뺐다가 N810에 끼워서 잔량 확인했다가 다시 끼웠다를 반복했다.

여튼 BP-4L은 완전 충전까지는 보지 못했다. BP-4L 거치대에 BP-4L을 끼운 만큼 어긋남은 없었다. 1500mAh 충전시키는 데 시간이 이리 오래 걸릴 줄은 예상하지 못했다. 하긴, 국산 휴대폰 중 1500mAh 배터리 쓰는 걸 본 적이 없었던 게 충전 시간 때문일지도 모르겠군.

BP-4L 충전 시도

BP-4L 충전 시도

추가: 1500mAh 배터리를 사용하는 T*옴니아 2의 배터리 충전 시간이 약 5시간 정도 걸린다고 해서 이번에는 5시간을 기다려 봤다. 5시간쯤 되니 BP-4L도 만충전이 뜬다.

BP-4L 충전 완료

BP-4L 충전 완료

BL-5F는 다행히도 만충전이 떠 줘서 제작이 실패하지는 않았다고 안심할 수 있었다.

BL-5F 충전 시도

BL-5F 충전 시도

BL-5F 충전 성공

BL-5F 충전 성공

여튼 원래 목적이었던 BP-4L 충전 거치대 제작은 충전 시간이 너무 오래 걸려(…) 실용성이 좀 떨어졌지만, 24핀 충전기를 다시 꺼내 쓸 수 있다는 사실 하나만으로도 제작할 이유는 충분하다. 역시 24핀 충전기는 좋은 리튬이온 배터리 충전기지, 좋은 Power Source는 아니다. 배터리 하나 충전 시키는 것도 폰에다가 꼽는 것보다 더 느린 판국에 폰에 이걸 꼽는다고? 비상용 아니면 쓰지도 못하겠군.