Modifique e inicialize o kernel do linux no dispositivo móvel [closed]

3

Durante minha formação, desenvolvi aplicativos e sites Android para iOS por quase 18 meses. Agora, como meu projeto final, estou trabalhando no código-fonte do Linux com o objetivo de inicializá-lo em um dispositivo móvel - como o Android. Eu tenho isso com sucesso como um pacote Debian seguindo os tutoriais da Internet. Atualmente estou usando o Ubuntu.

Eu tenho uma estratégia, mas não tenho certeza se estou no caminho certo. É o seguinte:

A:

  1. Faça o download do código-fonte do Linux. Remova drivers extras, compile e instale-o no Ubuntu atualmente em execução e use-o.

  2. Personalize o código ainda mais e inicialize-o como minha própria distribuição. Para isso eu estou seguindo o LFS .

  3. Especifique um celular alvo específico, modifique o código para ele, escreva drivers se eu precisar de algum, não sei qual (é por isso que estou aqui :)), e inicialize o kernel nele.

Eu não sei se minha estratégia está certa ou não. Eu realmente aprecio se alguém puder me dizer:

B:

  1. Estou no caminho certo? Se não, qual pode ser a certa?
  2. Preciso especificar um celular e personalizar o código do kernel para esse?
  3. Diferente de drivers, o que mais preciso alterar no kernel?
  4. Por último, mas não menos importante: quando inicializo o kernel em um dispositivo móvel; terei alguma interface ou terminal lá?

Desculpe se minha pergunta não faz sentido. Eu sou um estudante e ainda estou tentando descobrir as coisas. Eu ficaria muito grato se alguém pudesse me dar dicas sobre quais assuntos pesquisar na Internet.

Atualização: O que eu quero é confirmar se minha estratégia está correta ou não. Se não, por favor, apenas nomeie os passos que devo seguir.

    
por Sikander 10.10.2013 / 23:26

1 resposta

1

Não seria muito mais fácil tentar compilar o kernel do Android Linux primeiro e não apenas o kernel vanilla do kernel.org? Em princípio, isso deve estar disponível para todos os dispositivos Android, pois o kernel é GPL. Se você não conseguir obter a fonte do kernel para o seu dispositivo alvo, porque o fabricante é ignorante ou um violador GPL conhecido, sua próxima aposta é baixar e compilar o código-fonte para um dispositivo com um SoC semelhante (Tegra 3, RK3188, etc).

Note que inicializar em um dispositivo móvel executando uma infinidade de projetos SoC é uma proposta muito mais duvidosa do que inicializar a partir de um desktop ou laptop com os já conhecidos processadores AMD ou Intel. Na verdade, você nem tem certeza se consegue copiar o kernel ou colocá-lo em flash no dispositivo móvel (a menos que o dispositivo móvel seja um laptop). Então você precisa pesquisar isso também.

Então, a primeira coisa que eu pesquisaria seria o dispositivo alvo. É uma boa idéia escolher um dispositivo que possa inicializar seu cartão SD externo, já que, em teoria, você pode rodar o Linux simplesmente copiando seu kernel e outras coisas do sistema operacional para o cartão SD. Fora isso, escolha um dispositivo com uma partição de recuperação que permita que você faça o flash do kernel para a partição de inicialização apropriada. Tal dispositivo terá efetivamente duas partições de inicialização, a partição de inicialização do Android e a partição de recuperação. Portanto, caso algo dê errado e torne o seu dispositivo não inicializável, você pode pressionar uma combinação especial de botões de hardware em seu dispositivo para poder inicializar a partição de recuperação e retornar o dispositivo a um estado utilizável.

    
por 11.10.2013 / 04:16