Estou tentando compilar o OpeniBoot em um dispositivo ARM, ou seja, o PocketCHIP, conforme este guia (abeto com algumas pequenas modificações, considerando que não estou usando um Raspberry Pi.). O OpeniBoot é um bootloader de baixo nível projetado para ser instalado em dispositivos Apple, como o iPod Touch ou iPhone. Ele permite que o usuário execute um kernel Linux ao lado do kernel do iOS padrão, bem como execute outras operações de baixo nível.
Eu consegui compilar e instalar quase todas as dependências listadas para compilar o binário do OpeniBoot. No entanto, ao executar scons iPhone4
, recebo um erro:
chip@chip:~/openiBoot$ scons iPhone4
...
arch-arm/asmhelpers.sx: Assembler messages:
arch-arm/asmhelpers.sx:212: Error: selected processor does not support 'wfi'
scons: *** [arch-arm/iPhone4_asmhelpers.o] Error 1
scons: building terminated because of errors.
Eu pesquisei esse erro e descobri esta solução :
Fixed it by adding "-mcpu=cortex-a8" to the compiler options.
Eu já tentei anexar a opção ao comando scons, em uma sintaxe semelhante a esta:
scons -mcpu=cortex-a8 iPhone4
sem sucesso.
Então a pergunta é: Como posso passar opções para o compilador ao usar scons
?
- EDITAR
Eu já resolvi essa questão, alterando uma linha no arquivo "ARMEnviroment.SConscript" para os gostos deste:
plat_flags = ['-mlittle-endian', '-mfpu=vfp', '-mthumb', '-mthumb-interwork', '-fPIC', '-mcpu=cortex-a8']
No entanto, vejo agora um novo erro ao compilar:
chip@chip:~/openiBoot$ scons iPhone4
...
arch-arm/entry.sx:0: error: bad value (cortex-a8) for -mcpu= switch
scons: *** [arch-arm/iPhone4_entry.o] Error 1
scons: building terminated because of errors.
Acredito que isso seja porque scons
ainda está usando o conjunto de ferramentas antigo instalado com apt-get
, GCC-4.9.2, em vez de usar o openiboot-toolchain
que eu tinha compilado (e acredito que seja necessário para compilar este programa ).
Então a questão é, como eu altero qual toolchain scons
usa para compilar o código?