티스토리 뷰

안녕하세요~

이번에는 device소스를 짜보도록 하겠습니다


저번 강좌를 따라하셨다면 device/제조사/기기명 폴더가 있을겁니다

만약 벤더를 짜시지 않으셨다면 저번 강좌를 확인해 주시면 감사드리겠습니다 (본문 아래 배치되어 있습니다)



구하실수 있으시다면 포팅할 기기와 스펙/사양이/칩셋이 비슷하거나 같은 기기의 cm7작업 소스를 구해두시면 작업이 아주 편해지고 수월해 집니다

(구하실수 없으시면 포팅할 기기와 사양이 비슷한 기기를 cm소스/device폴더에 들어가 보시면 찾으실수도 있을겁니다 코드네임으로 찾아야 합니다)


전 http://cafe.naver.com/skydevelopers/86106 의 hPa님의 이자르 cm7소스를 참고하였습니다

cm7dev.zip

다음은 이자르의 cm7작업파일 입니다 (hPa님 게시글 첨부파일)



그럼 좀 까다롭고 어려운 작업을 시작해 보도록 하겠습니다


device/제조사/기기명 폴더에 들어가 주세요

그다음 cm7작업소스에 있는 overlay폴더를 가져와 주세요

다른 기기의 overlay를 가져와도 될겁니다


그다음 vendorsetup.sh등 작업 소스에 있는 파일을 하나씩 가져옵니다


setup-makefiles.sh도 가져옵니다

setup-makefile.sh를 열어보시면

VENDOR=pantech

DEVICE=a630k

이 있는대요 이걸 자신에게 맞게 수정합니다 VENDOR은 제조사 DEVICE는 기기명이 되겠죠?


그리고 setup-makefiles.sh을 실행합니다


이제 BoardConfig.mk를 수정해야 합니다

제가 포팅할 기기와 비슷한 기기의 cm7 작업소스를 구해두라는건 이런 작업에서 아주 편하기 때문입니다

칩셋이 같은 기기라면 더욱 말이죠


TARGET_BOARD_PLATFORM := msm7k

TARGET_ARCH_VARIANT := armv6-vfp

TARGET_CPU_ABI := armeabi-v6l

TARGET_CPU_ABI2 := armeabi

TARGET_BOARD_PLATFORM_GPU := qcom-adreno200


다음과 같은 구문을 복붙합니다

작업소스/BoardConfig.mk에 다른 특별한게 있다면 그것도 추가해 줘야 합니다


BoardConfig.mk은 포팅하며 아주 많이 수정할거니 많이 친해지셔야 합니다

오류가 날때마다 여기에 구문을 추가해서 오류를 해결할수가 있습니다


device_기기명.mk를 열어주세요

여기에 우리가 순정에서 가져와야 하는 순정파일을 넣어주는 매크로를 작성해야 합니다


PRODUCT_COPY_FILES += \

    device/제조사/기기명/파일경로:system/파일경로 \


다음과 같은 양식으로 쓰이게 됩니다

참고로 :이후는 out/target/product/기기명/ 입니다



이제 vendor폴더로 이동합니다

vendor/cyanogen/vendorsetup.sh에 add_lunch_combo cyanogen_기기명-eng 을 추가합니다


vendor/cyanogen/products/AndroidProducts.mk에도 다른 기기처럼     $(LOCAL_DIR)/cyanogen_기기명.mk \을 추가합니다


vendor/cyanogen/products/cyanogen_ef32k.mk를 직접 만들어야 합니다

같은 폴더내에 있는 다른 기기 파일을 참고하시거나 작업소스를 참고하시면 쉽게 짜실수 있을거라 생각되어 간략한 설명한 하기로 하겠습니다

이 파일은 다른 기기의 mk를 보시면서 작업하시면 편합니다 경로 확인해 가시며 작업해 주세요


그럼 대충 50%는 마쳤습니다

이제 vendor/제조사/기기명 폴더에 들어갑시다

다른건 필요없고 기기명-vendor-blobs.mk만 수정하면 됩니다

순정에서 가져와야 하는 파일의 목록입니다


이자르는 wifi칩셋이 ar6000을 쓰므로 파일이름도 우리와 다릅니다

이부분을 고려해 두시면서 파일이름을 확인해 주세요

vendor/제조사/기기명/proprietary 폴더에 순정 파일을 같다 넣으시면 됩니다



이제 소스 짜는대 지장은 없으실거라 생각됩니다

사실 이보다 더 많은 작업을 해야 합니다

init.rc를 수정해야 하기도 하고...

램디스크를 쪼개서 파일 가져와야 하기도 하죠 ㅎㅎ


더욱더 자세한 내용은 제가 cm7을 마스터 한뒤(?)에 따로 포스팅 하겠습니다



이제 터미널로 돌아가서 빌드를 해주시면 됩니다


(좀 횡설수설한 감이 없지 않네요... 이해가 안되는건 덧글로 알려주시면 제가 아는한도에서 도와드리겠습니다 ㅎㅎ)



이 강좌는 다음글과 연관되어 있습니다

2013/01/28 - [강좌/팁/Kernel/Build 강좌] - 나도 CM7 포팅해 보자 - CWM을 포팅해보자

이번 강좌를 읽기 전 위 강좌를 한번 읽어 보시면 이해가 빠르실 겁니다

댓글
  • optimustic 혹시 큼7말고도 다른 롬을 나의 폰 기종에 맞게 포팅하는 방법도 포스팅 해주실 수 있나요?

    예를 들면 다른 사람들이 만들어논 갤럭시 s2용 롬을 옵티머스 lte에 포팅 하는 방법 등

    포스팅 해주실수 있나요?
    2013.03.31 14:15
  • Favicon of https://itmir.tistory.com Mir(whdghks913) MIUI처럼 일부 파일을 변경하여 포팅하는 방법은 저보다 설명을 잘하시는 분께서 포스팅 한것 같습니다
    빌드롬은 디바이스 소스가 필요한대 이걸 기종에 맞게 재수정 해야 합니다 포팅도 그 안을 들어다 보면 사양이 비슷한 기기의 정보를 가져와 적용해 보는것이지요 ㅎ
    제가 다양한 기기를 가지고 있지 않아 자세한 부분까지 도움을 드리진 못할것 같습니다 ㅜ 저보다 많은걸 알고 계신 분들께 여줘보면 그 답을 쉽게 알 수 있지 않을까요..?
    2013.03.31 16:32 신고
  • optimustic 네 알겠습니다 ㅋ
    근데 제가 많은 검색과 많은 질문들을 한 100번 정도는 해본것 같습니다
    그런데 님처럼 성의있게 답변해주는 사람은 100명 중에 꼽아서 1명 정도 있었던것 같습니다 그사람이 바로 미르 님입니다
    감사하게 느끼고 있습니다
    그리고 굳이 말씀드리자면 아주 많은 질문을 해보았으나 핵심만 알려주고 제가 모르는 것들은 잘 안알려주더라구요
    그래서 님께 물어본 겁니다
    전 이제 혼자힘으로 독학을 해보아야겠네요 ㅋ
    2013.04.01 20:52
  • Favicon of https://itmir.tistory.com Mir(whdghks913) 감사드립니다~ 제 블로그에 방문해 주신것만으로도 감사할 따름이지요 ㅎ~ 2013.04.03 17:26 신고
  • Favicon of https://lucycle.tistory.com LuCycle 미르님 안녕하세요 ㅎㅎ
    뒤늦게와서 묻지만 혹시 요즘기기들의 디바이스트리 작성법도 포스팅해주실수 있나요??
    2014.01.22 16:41 신고
  • Favicon of https://itmir.tistory.com Mir(whdghks913) ~2월 중으로 작성할 예정입니다 2014.01.22 16:42 신고
댓글쓰기 폼