u-boot зависает после включения защищенной загрузки: на overo
Я пытался включить защищенную загрузку в u-boot для gumstix overo storm. основано на http://www.denx-cs.de/doku/?q=m28verifiedboot
После того как я подготовил SD-карты, u-boot не может загрузиться и выдает следующее сообщение об ошибке.
U-Boot SPL 2015.07 (Apr 28 2016 - 13:53:06)
SPL: Please implement spl_start_uboot() for your board
SPL: Direct Linux boot not active!
reading u-boot.img
spl_load_image_fat: error reading image u-boot.img, err - -1
SPL: Please implement spl_start_uboot() for your board
SPL: Direct Linux boot not active!
Failed to mount ext2 filesystem...
spl_load_image_ext: ext4fs mount err - 0
================
Это файл u-boot.dts, который я использую.
/dts-v1/;
/ {
model = "Keys";
signature {
key-dev {
required = "conf";
algo = "sha1,rsa2048";
key-name-hint = "my_key";
};
};
};
для создания u-boot.dtb, dtc -p 0x1000 /work/u-boot.dts -O dtb -o /work/u-boot.dtb
И это конф, который я добавил, чтобы включить /configs/omap3_overo.h
#define CONFIG_OF_CONTROL
#define CONFIG_OF_SEPARATE
#define CONFIG_FIT
#define CONFIG_FIT_SIGNATURE
#define CONFIG_RSA
#define CONFIG_FIT_VERBOSE
и я компилирую u-boot, используя следующую строку:
make ARCH = arm CROSS_COMPILE = arm-linux-gnueabi- EXT_DTB = / work / u-boot.dtb all -j4
Пожалуйста, дайте мне знать, если у вас есть идеи по устранению этой проблемы.
===================
Есть обновление.
- изменил имя u-boot-dtb.img на u-boot.img.
- тогда плата может загрузиться, но выдает следующее сообщение, когда я пытался использовать bootm.
**
Overo #
## Loading kernel from FIT Image at 82000000 ...
Using 'conf@1' configuration
Verifying Hash Integrity ... sha1,rsa2048:my_keyRSA: Can't find Modular Exp implementation
RSA: Can't find Modular Exp implementation
- Failed to verify required signature 'key-my_key'
Bad Data Hash
ERROR: can't get kernel image!
Overo #
**
Как уже упоминалось в doc/uImage.FIT/beaglebone_vboot.txt, я попробовал скрипт - tools/fit_check_sign, и его вывод нормальный. Возможность проверить подпись.
Так что до сих пор не знаю, в чем именно проблема, почему я получаю сообщение об ошибке выше. Я искал UCLASS_MOD_EXP, /* устройство RSA Mod Exp */, но не смог получить много информации.
Что такое устройство RSA Mod Exp и как убедиться, что оно у меня есть?
Любой вклад в отладку будет очень полезен.
РЕДАКТИРОВАТЬ:
diff include/configs/omap3_overo.h ../../u-boot2015.07/include/configs/omap3_overo.h
191a192,199
>
> #define CONFIG_OF_CONTROL
> #define CONFIG_OF_SEPARATE
> #define CONFIG_FIT
> #define CONFIG_FIT_SIGNATURE
> #define CONFIG_RSA
> #define CONFIG_FIT_VERBOSE
>
1 ответ
Ну, первая проблема, которую нужно исправить здесь:
reading u-boot.img
spl_load_image_fat: error reading image u-boot.img, err - -1
Так есть ли на вашей SD-карте u-boot.img? Обратите внимание, что пример, на который вы ссылаетесь, НЕ выполняет SPL, но вместо этого использует формат imximage старого стиля (но все еще функциональный и поддерживаемый), как на i.MX, и вы используете платформу OMAP3. В этом случае чтение doc/uImage.FIT/beaglebone_vboot.txt было бы очень полезным для вас, поскольку am335x (то, что можно найти на платах beaglebone) является эволюцией частей OMAP3, а не другого поставщика SoC (как i.MX против OMAP3).).
РЕДАКТИРОВАТЬ: Теперь, когда мы загружаем правильный файл, в v2015.07 они не были перенесены в Kconfig. Вы включили CONFIG_RSA? Посмотрите, что сделано в ENABLE_VBOOT в различных заголовках конфигурации и остальной части дерева, вам нужно будет сделать подобное.