안녕하세요.
요크입니다.
해외 판 갤럭시S와 갤럭시탭과 국내판 갤럭시S 와 갤럭시탭의 서로간 통신이 안되는 원인은 바로
" 통신 모듈 " 이 서로 달라서 입니다.
커널루트에서 통신 모듈의 드라이버가 참조하는 소스파일은 다음과 같습니다.
/arch/arm/s5pv210/dev_xx(디바이스 네임명)_phone.c
/drivers/misc/samsung_modemctl/modemctl/modemctl.c 및 헤더
/arch/arm/s5pv210/include/mach/gpio_xx(다바이스 네임명).c
/arch/arm/s5pv210/mach_xx(디바이스 네임명 혹은 코드명).c
본론으로 들어가자면,
국내판 갤럭시S와 갤럭시탭은 퀄컴 칩셋을 사용합니다.
그래서 퀄컴칩셋의 네임명인 " msm " 이 붙습니다.
해외판 갤럭시S와 갤럭시탭은 인피니온 칩셋을 사용합니다.
그래서 인피니온칩셋의 네임명인 " xmm " 이 붙습니다.
dev_xx(디바이스 네임명)_phone.c 를 살펴보면
Onedram 부분은 국내판 이나 해외판이나 모두 일치 합니다.
하지만 ModemControl 부분 부터는 달라집니다.
해외판은 모두 GSM 혹은 CDMA 를 사용합니다.
이는 2G 이고 ,
국내판은 모두 WCDMA를 사용합니다.
이는 3G 입니다.
해외판 갤럭시탭과 갤럭시S의 커널 소스를 보면 WCDMA에 대해 전혀 정의가 되어있지 않습니다.
아예 GSM과 CDMA 코드로 Modem을 컨트롤 하게 되어 있다고 보시면 됩니다.
gpio_xx.c ( 한국판은 gpio_xx_kor.c 라고 붙습니다. ) 을 살펴보시면
국내판과 해외판이 서로 핀배열도 다르게 되어있습니다.
해외판은 mach_xx.c 에서 CDMA 혹은 GSM 관련 모듈을 불러오게 되있습니다.
하지만 국내판의 mach_xx_kor.c 를 살펴보면 GSM 관련 모듈을 불러오게 되있지 않습니다.
국내판은 제가 생각하기엔 dev_xx_phone.c 에서 불러오고 컨트롤 할것으로 예상 됩니다.
Modem의 드라이버는 modemctl.c 에 있습니다.
Modem 드라이버는 왠만하면 맞기 때문에 국내판으로 교체해주시면 작동할것으로 보입니다.
위 소스만 수정하셔도 Bassband가 잡히고, Signal 이 잡힐겁니다.
하지만 가장 중요한 libsec-ril.so 와 libsecril-client.so 와 libril.so 라이브러리를 순정 라이브러리로 필히 교체해주셔야 작동을 할것 입니다.
( rild 도 교체해줘야 작동하는걸로 알고 있습니다. )
요번 Cyanogenmod 팀에서 빌드를 하고 있는 CM9롬이 한국 갤럭시S (SHW-M110S)에 플래싱시 부트가 되지 않더라구요.. ^^
아무래도 많이 바뀐거 같습니다.
맛클 개발자 분들 , 요즘 날씨가 많이 춥습니다 ^ ^
감기 조심하시고 빙판길 조심하시기 바래요 ^^