Category Archives: V43

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

V43 spin me right now

이제 보니 순삼이 사전도 쓸모가 있었군요. 디큐 ㄱㅅ. 그리고 파이썬과 PyQt에게도 ㄱㅅ. 파일은 GPL v2 이후로 배포하며, 파이썬과 PyQt를 설치해야 합니다. DB는 알아서 찾으십쇼.

영한사전

영한사전


한영사전

한영사전


fk040000000037.zip

V43에 USB 사운드카드 인식시키기

집을 뒤지다보니까 엘레콤 상표가 붙어 있는 USB 사카가 나와서, V43에서는 어떻게 인식이 안 되나 고민해 봤다. 내 쿠분투에서도 꼽으면 USB HID 장치로 인식을 하고 출력 방향을 특별히 돌리지 않아도 USB 쪽으로 소리가 나서 V43에도 되는가 실험해 봤다. USB 호스트를 활성화시키고 dmesg를 떄려 보니, USB 사카가 잡히고 /dev/dsp1이 나왔다.
그런데 아무리 쥐어 박아도 /dev/dsp1로는 신호가 안 간다? 프로그램을 뜯어 보니까 /dev/dsp에 직접 쓰도록 하드코딩이 되어 있었다. 홧김에 /dev에 들어가서 dsp와 dsp1을 바꿔치기해 버리니까 그제서야 USB 쪽으로 소리가 났다. 그런데 최대 음량으로 소리가 나서 깜짝 놀래서 꼽고 있던 이어폰을 뺐다. V43의 기본 제공 믹서로는 소리 조절이 되지 않는다는 게 좌절이다.
아놔 alsa, oss, 너희 좀 나와 봐~ 하면서 a 누르고 tab 키를 누르는 순간, amix라는 녀석이 나왔다. 대강 보니까 믹서 같은데…

(여기서 스토리는 중단됩니다.)

증거자료는 디카 꺼내기 귀찮아서 다음에. 그리고 현재 리눅스 시스템이 alsa를 쓰는지, oss를 쓰는지, 아니면 프로그램이 /dev/dsp 같은 데 출력하도록 하드코딩되어 있는지 누가 좀 알려 주세요. 그리고 amix의 자세한 용도도요.

V43 AS 완료

김 모군이 V43을 너무 오랫동안 충전 안 한 채로 방전시켜 두었는지, V43의 슈퍼 캐퍼시터가 방전되어 버렸다. 문제는 이것이 나한테로 넘오 오면서 제대로 충전이 안되는 등의 ㅁㄴㅇㄹ스런 짓을 하면서, 오늘 윤리 수업 마치자마자 서면으로 뛰어가서 디큐랑 싸웠다. 부산 서면에는 디큐 AS가 무려 2개씩 있다. 하나는 디큐 직영이고 하나는 위탁 센터이다. 우선 직영부터 가 봤다. 이 심각한 슈퍼 캐퍼시터 이상을 고치는 데 무슨 1주일 이상이 걸린다고 생쇼를 하던가. 하여간 거기에 전시되어 있던 디큐 PMP나 만지고 나서 그냥 나왔다.
그 다음으로는 길을 걸어가다가 근처의 디큐 센터를 찾았다. i-Station 간판이 안 걸려 있어서 사람들이 거의 오지 않았던 그 센터에 가 보니까 내부 캐퍼시터 이상이라고 하면서 수리에 약 30분 정도 걸린다는 말만 하였다. 아놔 디큐 직영보다 위탁이 이렇게 친절하면 어쩌냐. 결국은 배터리를 뽑아도 시간이 리셋되지 않는다는 것에 만족하면서 디큐 AS를 벗어났다.
AS 직원분의 말대로 1시간 동안 충전시킨 다음 배터리를 뽑았다 끼웠더니 시간이 유지되었다. 이 간단한 것을 가지고 디큐 직영에서는 몇일을 끌더니만 위탁이 더 친절하게 해서 좀 이해가 가지 않았다. 자 이제 수리 후 별로 달라지지 않은 V43 사진을 보자.
사용자 삽입 이미지그 여느 사진과 다를 바 없는 V43이다.
사용자 삽입 이미지흔히들 마삼이라고 부르는 V43/Qtopia 부팅 화면이다. 오리지널 V43과는 조금 다르다. 많은 사람이 Qtopia를 운영체제라고 오해하는데, Qtopia는 그놈, KDE와 같은 데스크탑 환경이다. 단지 임베디드용으로 특화되었을 뿐.
사용자 삽입 이미지배터리를 뽑았다 끼워도 시간은 유지되어 있다. 와 ㅁㄴㅇㄹ!
사용자 삽입 이미지크라스탈과 하이컬러 아이콘을 이식해서 데스크탑 KDE 분위기 내 보려고 삽질하다가 만 것. 설정 탭이 지댄데 못 보여줘서 ㅈㅅ.
사용자 삽입 이미지마지막으로 파이썬 재컴파일 기념 샷.

V43 파이썬 결국 재컴파일

했다. 전번에 T모님이 보내 주셨던 간단한 파이썬 소스 코드가 실행이 되지 않는 초유의 사태가 발생하고 만 것이다. 그것이 아마 md5 모듈을 필요로 했던 path 모듈을 인클루드하는 방식이었다. path 모듈 자체는 문제가 없었지만  인코딩 관련 모듈들이 안 깔리는 등의 일이 생기는 바람에, 포맷한 김에 파이썬을 그냥 V43 위에서 재컴파일 해 보았다.
크로스 컴파일할 때와의 차이점은 네이티브 gcc를 이용한다는 것이다. 파이썬 2.5 현재 버전은 크로스 컴파일 버그가 있어서 2.4.4를 사용했는데, 이제는 네이티브 컴파일이므로 2.5를 써도 되는 척 하고 있다. V43의 RMI Au1200 시퓨 속도와 성능이 좌절이라서 시간이 오래 걸리기 때문에 컴파일을 걸어놓고 자고 일어나니까 다 되어 있었다.
그 다음 make install 과정인데, 저번에 올렸을 때는이 make install을 생략했다. 그래서 일부 모듈이 제대로 등록되지 않았을 수도 있어서 md5가 실행이 안되는 등의 오류가 발생했을 지도 모른다. 파이썬의 Makefile에서는 make test를 권장하고 있지만, 개인적으로 “그냥 다 되겠지” 하는 생각으로 make test를 생략했다가 혼날뻔 했다.
아놔 AMD새끼들 시퓨 만들려면 제대로 좀 만들지! 유닛 테스트에서 너무 많은 부분이 failed가 떠 버렸다. 지금 V43이 없어서 결과를 보여줄 수는 없지만, 하여간 한 네개 걸러 하나에서 FAILED가 warning이 떠 버렸다. 가장 기억에 남는 것이 1.0 is false than true이다. 1이라면 true겠지만 1.0이 false가 뜨는 것은 오묘하다. 역시 AMD.
이제 파이썬이 제대로 올라갔으니까 인클봇 프로젝트에 다시 도전해 보든지 말든지 -_-
사용자 삽입 이미지