Я пытаюсь скомпилировать OpeniBoot на устройстве ARM, а именно PocketCHIP, в соответствии с данным руководством (но с некоторыми незначительными изменениями, учитывая, что я не использую Raspberry Pi.). OpeniBoot - это специальный низкоуровневый загрузчик, предназначенный для установки на устройства Apple, такие как iPod Touch или iPhone. Это позволяет пользователю запускать ядро Linux вместе со стандартным ядром iOS, а также выполнять другие операции низкого уровня.
Мне удалось скомпилировать и установить почти все перечисленные зависимости, чтобы скомпилировать бинарный файл для OpeniBoot. Однако при запуске scons iPhone4
я получаю сообщение об ошибке:
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.
Я исследовал эту ошибку, и я нашел это решение:
Исправлено это путем добавления «-mcpu = cortex-a8» к опциям компилятора.
Я уже пытался добавить опцию к самой команде scons, используя синтаксис, подобный следующему:
scons -mcpu=cortex-a8 iPhone4
но безрезультатно.
Итак, вопрос: как я могу передать опции компилятору при использовании scons
?
--РЕДАКТИРОВАТЬ--
С тех пор я решил этот вопрос, изменив строку в файле «ARMEnviroment.SConscript "на лайки этого:
plat_flags = ['-mlittle-endian', '-mfpu=vfp', '-mthumb', '-mthumb-interwork', '-fPIC', '-mcpu=cortex-a8']
Тем не менее, я теперь сталкиваюсь с новой ошибкой при компиляции:
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.
Я считаю, что это потому, что scons
все еще использует старый набор инструментов, установленный с помощью apt-get
, GCC-4.9.2, вместо того, чтобы использовать openiboot-toolchain
(и я считаю, что это необходимо для компиляции этой программы).
Итак, вопрос в том, как мне изменить, какие scons
инструментов используют для компиляции кода?