【问题标题】:How to integrate libtomcrypt into u-boot?如何将 libtomcrypt 集成到 u-boot 中?
【发布时间】:2013-07-25 11:11:28
【问题描述】:

对于一个研究项目,我需要将不同的加密函数(PRNG、SHA1、对称加密/解密)合并到 u-boot 的 MLO 部分。

我的问题:

1.) 以前有人做到过吗?

2.) 你们知道吗,考虑到 MLO 的有限大小和 libtomcrypt 的大小,这甚至是可能的吗?

3.) 除了将它们从 /usr/include/ 复制到 {u-boot-src}/include/ 的直接方法之外,有人知道解决丢失的 *.h 文件错误的优雅方法吗?

非常感谢。

make 输出:

arch/arm/cpu/armv7/omap-common/libomap-common.o:在函数selectSecretBytes': /home/andre/tmp/working/chipsee/u-boot-ics-chipsee-panda-0524/arch/arm/cpu/armv7/omap-common/hwinit-common.c:777: undefined reference toregister_prng' /home/andre/tmp/working/chipsee/u-boot-ics-chipsee-panda-0524/arch/arm/cpu/armv7/omap-common/hwinit-common.c:778:未定义对find_prng' /home/andre/tmp/working/chipsee/u-boot-ics-chipsee-panda-0524/arch/arm/cpu/armv7/omap-common/hwinit-common.c:778: undefined reference torng_make_prng的引用' /home/andre/tmp/working/chipsee/u-boot-ics-chipsee-panda-0524/arch/arm/cpu/armv7/omap-common/hwinit-common.c:779:未定义引用error_to_string' /home/andre/tmp/working/chipsee/u-boot-ics-chipsee-panda-0524/arch/arm/cpu/armv7/omap-common/hwinit-common.c:783: undefined reference tofortuna_start ' /home/andre/tmp/working/chipsee/u-boot-ics-chipsee-panda-0524/arch/arm/cpu/armv7/omap-common/hwinit-common.c:784:未定义引用error_to_string' /home/andre/tmp/working/chipsee/u-boot-ics-chipsee-panda-0524/arch/arm/cpu/armv7/omap-common/hwinit-common.c:788: undefined reference tofortuna_add_entropy ' /home/andre/tmp/working/chipsee/u-boot-ics-chipsee-panda-0524/arch/arm/cpu/armv7/omap-common/hwinit-common.c:789:未定义引用error_to_string' /home/andre/tmp/working/chipsee/u-boot-ics-chipsee-panda-0524/arch/arm/cpu/armv7/omap-common/hwinit-common.c:793: undefined reference tofortuna_ready ' /home/andre/tmp/working/chipsee/u-boot-ics-chipsee-panda-0524/arch/arm/cpu/armv7/omap-common/hwinit-common.c:794:未定义引用error_to_string' /home/andre/tmp/working/chipsee/u-boot-ics-chipsee-panda-0524/arch/arm/cpu/armv7/omap-common/hwinit-common.c:797: undefined reference tofortuna_read ' /home/andre/tmp/working/chipsee/u-boot-ics-chipsee-panda-0524/arch/arm/cpu/armv7/omap-common/hwinit-common.c:805:未定义引用fortuna_done' /home/andre/tmp/working/chipsee/u-boot-ics-chipsee-panda-0524/arch/arm/cpu/armv7/omap-common/hwinit-common.c:806: undefined reference toerror_to_string ' /home/andre/tmp/working/chipsee/u-boot-ics-chipsee-panda-0524/arch/arm/cpu/armv7/omap-common/hwinit-common.c:816:未定义引用fortuna_desc' arch/arm/cpu/armv7/omap-common/libomap-common.o: In functioncreateKey ': /home/andre/tmp/working/chipsee/u-boot-ics-chipsee-panda-0524/arch/arm/cpu/armv7/omap-common/hwinit-common.c:1088:未定义引用register_hash' /home/andre/tmp/working/chipsee/u-boot-ics-chipsee-panda-0524/arch/arm/cpu/armv7/omap-common/hwinit-common.c:1094: undefined reference tofind_hash ' /home/andre/tmp/working/chipsee/u-boot-ics-chipsee-panda-0524/arch/arm/cpu/armv7/omap-common/hwinit-common.c:1104:未定义引用sha1_process' /home/andre/tmp/working/chipsee/u-boot-ics-chipsee-panda-0524/arch/arm/cpu/armv7/omap-common/hwinit-common.c:1114: undefined reference tosha1_desc ' /home/andre/tmp/working/chipsee/u-boot-ics-chipsee-panda-0524/arch/arm/cpu/armv7/omap-common/hwinit-common.c:1114:未定义对“hash_descriptor”的引用 arm-none-linux-gnueabi-ld: BFD (Sourcery G++ Lite 2011.03-41) 2.20.51.20100809 断言失败 /scratch/janisjo/arm-linux-lite/obj/binutils-src-2011.03-41-arm-none-linux -gnueabi-i686-pc-linux-gnu/bfd/elf32-arm.c:13036 arm-none-linux-gnueabi-ld: BFD (Sourcery G++ Lite 2011.03-41) 2.20.51.20100809 断言失败 /scratch/janisjo/arm-linux-lite/obj/binutils-src-2011.03-41-arm-none-linux -gnueabi-i686-pc-linux-gnu/bfd/elf32-arm.c:13036 arm-none-linux-gnueabi-ld: BFD (Sourcery G++ Lite 2011.03-41) 2.20.51.20100809 断言失败 /scratch/janisjo/arm-linux-lite/obj/binutils-src-2011.03-41-arm-none-linux -gnueabi-i686-pc-linux-gnu/bfd/elf32-arm.c:13036 arm-none-linux-gnueabi-ld: BFD (Sourcery G++ Lite 2011.03-41) 2.20.51.20100809 断言失败 /scratch/janisjo/arm-linux-lite/obj/binutils-src-2011.03-41-arm-none-linux -gnueabi-i686-pc-linux-gnu/bfd/elf32-arm.c:13036 arm-none-linux-gnueabi-ld: BFD (Sourcery G++ Lite 2011.03-41) 2.20.51.20100809 断言失败 /scratch/janisjo/arm-linux-lite/obj/binutils-src-2011.03-41-arm-none-linux -gnueabi-i686-pc-linux-gnu/bfd/elf32-arm.c:13036 arm-none-linux-gnueabi-ld: BFD (Sourcery G++ Lite 2011.03-41) 2.20.51.20100809 断言失败 /scratch/janisjo/arm-linux-lite/obj/binutils-src-2011.03-41-arm-none-linux -gnueabi-i686-pc-linux-gnu/bfd/elf32-arm.c:13036 arm-none-linux-gnueabi-ld: BFD (Sourcery G++ Lite 2011.03-41) 2.20.51.20100809 断言失败 /scratch/janisjo/arm-linux-lite/obj/binutils-src-2011.03-41-arm-none-linux -gnueabi-i686-pc-linux-gnu/bfd/elf32-arm.c:13036 arm-none-linux-gnueabi-ld: BFD (Sourcery G++ Lite 2011.03-41) 2.20.51.20100809 断言失败 /scratch/janisjo/arm-linux-lite/obj/binutils-src-2011.03-41-arm-none-linux -gnueabi-i686-pc-linux-gnu/bfd/elf32-arm.c:13036 arm-none-linux-gnueabi-ld: BFD (Sourcery G++ Lite 2011.03-41) 2.20.51.20100809 断言失败 /scratch/janisjo/arm-linux-lite/obj/binutils-src-2011.03-41-arm-none-linux -gnueabi-i686-pc-linux-gnu/bfd/elf32-arm.c:13036 arm-none-linux-gnueabi-ld: BFD (Sourcery G++ Lite 2011.03-41) 2.20.51.20100809 断言失败 /scratch/janisjo/arm-linux-lite/obj/binutils-src-2011.03-41-arm-none-linux -gnueabi-i686-pc-linux-gnu/bfd/elf32-arm.c:13036 arm-none-linux-gnueabi-ld: BFD (Sourcery G++ Lite 2011.03-41) 2.20.51.20100809 断言失败 /scratch/janisjo/arm-linux-lite/obj/binutils-src-2011.03-41-arm-none-linux -gnueabi-i686-pc-linux-gnu/bfd/elf32-arm.c:13036 arm-none-linux-gnueabi-ld: BFD (Sourcery G++ Lite 2011.03-41) 2.20.51.20100809 断言失败 /scratch/janisjo/arm-linux-lite/obj/binutils-src-2011.03-41-arm-none-linux -gnueabi-i686-pc-linux-gnu/bfd/elf32-arm.c:13036 arm-none-linux-gnueabi-ld: BFD (Sourcery G++ Lite 2011.03-41) 2.20.51.20100809 断言失败 /scratch/janisjo/arm-linux-lite/obj/binutils-src-2011.03-41-arm-none-linux -gnueabi-i686-pc-linux-gnu/bfd/elf32-arm.c:13291 /bin/sh: Zeile 1: 20550 Speicherzugriffsfehler (Speicherzugriffsfehler) arm-none-linux-gnueabi-ld -pie -T u-boot.lds -Bstatic -Ttext 0x80E80000 $UNDEF_SYM arch/arm/cpu/armv7/start.o --start-group api/libapi.o arch/arm/cpu/armv7/libarmv7.o arch/arm/cpu/armv7/omap-common/libomap-common.o arch/arm/cpu/armv7/omap4/libomap4。 o arch/arm/lib/libarm.o common/libcommon.o disk/libdisk.o drivers/bios_emulator/libatibiosemu.o drivers/block/libblock.o drivers/dma/libdma.o drivers/fpga/libfpga.o drivers/ gpio/libgpio.o 驱动程序/hwmon/libhwmon.o 驱动程序/i2c/libi2c.o 驱动程序/input/libinput.o 驱动程序/misc/libmisc.o 驱动程序/mmc/libmmc.o 驱动程序/mtd/libmtd.o 驱动程序/mtd /nand/libnand.o 驱动程序/mtd/onenand/libonenand.o 驱动程序/mtd/spi/libspi_flash.o 驱动程序/mtd/ubi/libubi.o 驱动程序/net/libnet.o 驱动程序/net/phy/libphy.o 驱动程序/pci/libpci.o 驱动程序/pcmcia/libpcmcia.o 驱动程序/power/libpower.o 驱动程序/rtc/librtc.o 驱动程序/serial/libserial.o 驱动程序/spi/libspi.o 驱动程序/twserial/libtws.o 驱动程序/ usb/eth/libus b_eth.o 驱动程序/usb/gadget/libusb_gadget.o 驱动程序/usb/host/libusb_host.o 驱动程序/usb/musb/libusb_musb.o 驱动程序/usb/phy/libusb_phy.o 驱动程序/usb/ulpi/libusb_ulpi.o 驱动程序/视频/libvideo.o 驱动程序/watchdog/libwatchdog.o fs/cramfs/libcramfs.o fs/ext2/libext2fs.o fs/fat/libfat.o fs/fdos/libfdos.o fs/jffs2/libjffs2.o fs/reiserfs /libreiserfs.o fs/ubifs/libubifs.o fs/yaffs2/libyaffs2.o lib/libfdt/libfdt.o lib/libgeneric.o lib/lzma/liblzma.o lib/lzo/liblzo.o lib/zlib/libz。 o net/libnet.o post/libpost.o board/ti/panda/libpanda.o --end-group /home/andre/tmp/working/chipsee/u-boot-ics-chipsee-panda-0524/arch/ arm/lib/eabi_compat.o -L /opt/CodeSourcery/Sourcery_G++_Lite/bin/../lib/gcc/arm-none-linux-gnueabi/4.5.2/armv4t -lgcc -Map u-boot.map -o u-boot make[1]: * [u-boot] 费勒 139 make[1]: Verlasse Verzeichnis '/home/andre/tmp/working/chipsee/u-boot-ics-chipsee-panda-0524' 制作:* [omap4_panda] 费勒 2

【问题讨论】:

  • 我的问题是,你为什么要使用 libtomcrypt?它几乎被废弃了,并且有许多高级库可用,包括 Botan、Cryptlib、Crypto++ 和 OpenSSL。

标签: cryptography shared-libraries u-boot


【解决方案1】:

1.) 以前有人做到过吗?

我没有。

2.) 你们知道吗,考虑到 MLO 的有限大小和 libtomcrypt 的大小,这甚至是可能的吗?

libtomcrypt 似乎几乎被遗弃了。可能有更好的选择。警告购买者。

3.) 除了将它们从 /usr/include/ 复制到 {u-boot-src}/include/ 的直接方式之外,有人知道解决丢失的 *.h 文件错误的优雅方法吗?

使用--sysroot 传递arm 头文件和库的根目录或SYSROOT。在SYSROOT下,应该有include/lib,编译器和链接器会找到需要的头文件和库。

或者,使用-I 传递标头路径,使用-L 传递库路径。

【讨论】:

    猜你喜欢
    • 2018-12-10
    • 1970-01-01
    • 2022-01-26
    • 2019-12-09
    • 1970-01-01
    • 2018-01-03
    • 2020-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多