2013-10-19 2 views
3

교육 기간 동안 나는 거의 18 개월 동안 Android iOS 앱과 웹 사이트를 개발 해왔다. 자, 내 마지막 해의 프로젝트로서, Android와 같은 모바일 장치에서 부팅하기 위해 Linux 소스 코드 작업을하고 있습니다. 나는 인터넷에서 튜토리얼을 따라 데비안 패키지로서 성공적으로 가지고있다. 나는 현재 우분투를 사용하고있다.모바일 장치에서 리눅스 커널 수정 및 부팅

저는 전략이 있지만 올바른 길을 가고 있는지 확신 할 수 없습니다. 다음과 같이이다 :

A :

  1. 다운로드 리눅스 소스 코드. 추가 드라이버를 제거하고 컴파일하고 현재 실행중인 우분투에 설치하고 사용하십시오.

  2. 코드를 추가로 사용자 정의하고 자신의 배포판으로 부팅하십시오. 에 대해 나는 LFS을 따르고 있습니다.

  3. 은, 특정 대상 모바일 지정 그것을 위해 코드를 수정, 내가 어떤 필요하면 어느 확실하지 드라이버를 쓰기 (내가 :) 여기있어 그 이유는), 를 그 위에 커널을 부팅합니다.

내 전략의 적합성 여부를 알 수 없습니다.

B를 :

  1. 암 I을 바른 길에 누군가가 말해 줄 수 있다면 정말 감사하겠습니다? 그렇지 않다면, 무엇이 옳은가?

  2. 모바일을 지정하고 에 대한 커널 코드를 사용자 정의해야합니까?

  3. 드라이버 이외의 커널에서 변경해야 할 사항은 무엇입니까?

  4. 마지막으로, 모바일 장치에서 커널을 부팅 할 때 가장 늦지는 않습니다. 거기에 어떤 인터페이스 나 터미널이 있습니까?

죄송합니다. 내 질문에 의미가 없으면 죄송합니다. 나는 학생이며 여전히 사물을 파악하려고 노력하고 있습니다. 누군가 인터넷에서 어떤 주제를 검색 할 지에 대한 힌트를 줄 수 있다면 매우 감사 할 것입니다.

업데이트 : 원하는 것은 내 전략이 올바른지 여부를 확인하는 것입니다. 그렇지 않다면 따라야 할 단계의 이름을 지정하십시오.

답변

2

SoC 및 주변 장치의 드라이버가 닫힌 소스가 드문 경우는 아닙니다. 내가 아는 한, Exynos SoC (삼성의 많은 장치에서 사용하는 것들)의 드라이버는 (partly) closed source입니다.

그래서 일반적으로 말하면 모든 사람과 모든 사람을 위해 드라이버를 작성해야합니다. 특히 실제 무선 연결은 독점적 인 펌웨어 덩어리가 필요한 장치가 없기 때문에 까다 롭습니다 (나머지 드라이버는 오픈 소스 일 수 있음).

또 다른 문제점은 많은 장치에서 부트 로더입니다. 사용자 정의 커널 (커널 해시가 이 아닌 경우 부트하지 않으므로 부트 로더에 저장된 해시 합계)를 쉽게 설치할 수 없습니다.

그래서 이미 Android에서 지원되는 기기를 개발 중이라고 가정 할 때 나는 개인적으로 으로 장치의 해당 장치 트리로 시작하여 수정을 시작합니다. CyanogenMod's github page에 많은 수의 장치 트리를 사용할 수 있습니다.

장점 : 뭔가 나누기 경우 작업 상태

  • 로 시작 할 수

    • 당신은 당신이

    다른 방법으로, Ubuntu Touch 같은 다른 프로젝트에서 엿볼 수 있었다 알고있다. 그들은 Hybris을 사용하여 기존의 안드로이드 커널을 사용할 수 있습니다. 데비안/우분투를 기반으로 배포하고 싶다면 우분투 터치를 시도하고 수정하는 것이 좋습니다.

  • +0

    답변 해 주셔서 감사합니다. 그러나 아직도 내 전략이 모바일 장치에서 커널을 부팅하는 나의 목표에 접근하고 있다고 생각합니까? – Sikander

    +0

    당신이 알고있는 하드웨어로 놀아 보는 것은 항상 좋은 생각처럼 x86 우분투 용 커널을 수정하여 Linux 해킹에 익숙해지며 좋은 생각입니다. 가상 머신은 또한 많은 도움이됩니다 : qemu는 특히 리눅스 커널을 테스트하기위한'-kernel' 플래그를 가지고 있습니다. – nemo