Segue um tutorial para quem gosta de se aventurar no OUYA e tem um conhecimento mais avantajado sobre o assunto:
Construindo seu próprio Kernel Ouya
Tradução: EvertonSSJ4
Criado e méritos para:
leonardopires
Link do tópico oficial:
https://forum.xda-developers.com/ouya/help/builing-ouya-kernel-t2803019
Eu criei este tutorial explicando como compilar o Kernel do OUYA desde o princípio.
Eu fiz este tutorial porque eu precisava ativar o Protocolo NFS nas versões 3 e 4 para utilizar o compartilhamento de arquivos no meu Synology NAS. O Kernel do OUYA vem por default ativado apenas com a versão 2 e eu tive problemas em montar meu compartilhamento em NFS.
Primeiro faça o download dos arquivos necessários, eu inicio este tutorial com a ideia de que vocês tenham o Linux Ubuntu instalado em sua maquina.
*** DOWNLOAD DO FIRMWARE OUYA ***
1. Abra seu navegador e digite:
https://devs.ouya.tv/api/firmware_builds
2. Procure por uma linha como esta:
http://cds.t2z5c2q6.hwcdn.net/ota/RC...084-r1_ota.zip (esta é a ultima versão do firmware ouya)
3. Faça o Downloadt:
$ wget
http://cds.t2z5c2q6.hwcdn.net/ota/RC...084-r1_ota.zip
4. Crie um diretorio e coloque o arquivo baixado lá:
$ mkdir ouyafiles
5. Extraia:
$ unzip RC-OUYA-1.2.1084-r1_ota.zip
6. Agora você tem vários arquivos e diretórios. Nós precisamos de apenas 1, o nome do arquivo é: boot.img.
Precisamos agora extrair este arquivo para recuperar o arquivo ramdisk que será necessário junto com o Kernel compilado, para isso será necessário baixar o seguinte perl script:
$ wget
http://www.enck.org/tools/split_bootimg_pl.txt
7. Renomeie o script e mude as permissões para executar:
$ mv split_bootimg_pl.txt split_bootimg.pl
$ chmod 755 split_bootimg.pl
8. Execute este comando para extrair o arquivo:
$ ./split_bootimg.pl boot.img
9. Agora você tem 2 arquivos: boot.img-kernel e boot.img-ramdisk.gz. Nós apenas precisamos do boot.img-ramdisk.gz. Vamos extrair novamente e renomear o arquivo extraído:
$ gzip -dc ../boot.img-ramdisk.gz | cpio -i
$ mv boot.img-ramdisk ramdisk
10. OK, agora você tem este arquivo que será usado mais tarde no Tutorial.
*** DOWNLOAD ANDROID NDK ***
1. Abra seu navegador e cole esta URL:
http://developer.android.com/tools/sdk/ndk/index.html
2. Faça o download do arquivo Linux 64-bit (x86):
$ wget
http://dl.google.com/android/ndk/and...x86_64.tar.bz2
3. Extraia:
$ tar -jxvf android-ndk-r9d-linux-x86_64.tar.bz2
4. Renomeie o diretório para "ndk":
$ mv android-ndk-r9d ndk
5. Carregue as variáveis de ambiente:
$ export CROSS_COMPILE=/seu_diretório_padrão/ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-
$ export ARCH=arm
Obs.: (lembre-se que/seu_diretório_padrão/ é seu diretório padrão, que usuários do linux usam para trabalhar).
*** DOWNLOAD THE OUYA KERNEL SOURCE ***
1. Inicie seu navegador e acesse a URL:
https://github.com/ouya/ouya_1_1-kernel
2. No lado direto da página você encontrará o botão para download, chamado de "Download ZIP". Clique e baxe o arquivo.
3. Extraia e renomeie o diretório extraído para "kernel"
4. Talvez o /kernel/drivers/pci/Kconfig file ficará corrompido após extraído. O arquivo Kconfig é um link simbólico, remova ele e baixe este novamente usando o comando abaixo dentro de kernel/drivers/pci/ directory:
$ wget
https://raw.githubusercontent.com/ou...rs/pci/Kconfig
6. Agora você tem o kernel padrão do OUYA para compilar!
*** RECOVER .CONFIG FILE FROM OUYA ***
1. Você precisa recuperar um arquivo que está no OUYA, para recuperar este arquivo, será necessário instalar o pacote android-tools-adb, use seguinte comando:
$ sudo apt-get install android-tools-adb
2. Agora você terá que conectar seu OUYA via USB, por padrão o OUYA não vem com o adb ativado, você terá que ir na tela de DESENVOLVEDOR no OUYA e ativar o ADB.
3. Ótimo, agora teste se o ADB está conectado, teste este comando:
$ adb start-server
$ adb devices (Isto mostrará algo tipo “dispositivo 1234567890ABCDEF”)
PS.: Se nenhum dispositivo aparecer, você terá que procurar na internet sobre "como usar adb para conectar dispositivos Android”.
4. Agora você irá inserir o arquivo de configuração:
$ adb pull /proc/config.gz config.gz (isto colocará o config.gz no seu computador)
5. Extraia e copie para o diretório do kernel:
$ gunzip config.gz
$ cp config /seu_diretório_padrão/kernel/.config
6. Agora o seu Kernel está pronto para ser compilado. Estamos aqui garantindo que os padrões estejam em default.
Daqui pra frente esta sobre sua responsabilidade com relação ao que ativar ou desativar no Kernel.
*** REBUILDING KERNEL ***
1. Vá no diretório do Kernel:
$ cd /seu_diretório_padrão/kernel/
2. Tenha certeza de executar as variáveis CROSS_COMPILE e ARCH descritas no tutorial acima.
$ export CROSS_COMPILE=/seu_diretório_padrão/ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-
$ export ARCH=arm
3. Use este comando para modificar algumas configurações:
$ make menuconfig
4. Use este comando para criar o kernel após você mudar suas novas configurações:
$ make
5. Alguns avisos irão aparecer no teu console, isto é normal.
6. Se o processo for executado da forma correta, você terá um arquivo .bz embaxo do diretório kernel/arch/arm/boot
7. Copie este arquivo para o mesmo diretório onde você guardou o arquivo ramdisk.
*** UPLOAD THE NEW KERNEL AND THE RAMDISK TO OUYA ***
1. Você terá que instalar o fastboot no linux usando este comando:
$ apt-get install android-tools-fastboot
2. Agora você deve reiniciar seu aparelho em modo bootloader:
$ adb reboot-bootloader
3. Você pode verificar se o seu aparelho iniciou neste modo usando este comando:
$ fastboot devices
4. Se tudo deu certo, você poderá fazer o upload do seu novo Kernel e do ramdisk padrão:
$ fastboot flash:raw boot ./zImage ./ramdisk
O Sistema deverá iniciar com seu Kernel custom instalado.