Armadilloフォーラム

Hermit-AT 3.11.0 のビルドに失敗する

arai-hideyuki

2020年12月7日 8時44分

ATDE5で Hermit-AT のビルドを試みたところリンクエラーが発生しました。
ソースパッケージは hermit-at-3.11.0-source.tar.gz です。
何がまずかったのでしょうか?

以下は make config と make のログです。

atmark@atde5:~/hermit-at/hermit-at-3.11.0$ make config
HOSTCC scripts/basic/fixdep
HOSTCC scripts/basic/docproc
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/kxgettext.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/lex.zconf.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
*
* Hermit-At Configuration
*
*
* TARGET
*
build a bootloader image for your board (TARGET_BUILD) [N/y] (NEW) y
*
* Target System Type
*
Platform type
> 1. Armadillo-9 (PLATFORM_ARMADILLO9) (NEW)
2. Armadillo-2x0 (PLATFORM_ARMADILLO2X0) (NEW)
3. Armadillo-3x0 (PLATFORM_ARMADILLO3X0) (NEW)
4. Armadillo-4x0 (MACHINE_ARMADILLO4X0) (NEW)
5. Armadillo-Box WS1 (MACHINE_ARMADILLO_BOX_WS1) (NEW)
6. Armadillo-IoT Gateway Standard (PLATFORM_ARMADILLO_IOTG_STD) (NEW)
7. Armadillo-5x0 (PLATFORM_ARMADILLO5X0) (NEW)
8. Armadillo-800 EVA (PLATFORM_ARMADILLO800EVA) (NEW)
9. Armadillo-810 (PLATFORM_ARMADILLO810) (NEW)
10. Armadillo-840 (PLATFORM_ARMADILLO840) (NEW)
11. Suzaku (PLATFORM_SUZAKU) (NEW)
choice[1-11]: ^[[D
Platform type
> 1. Armadillo-9 (PLATFORM_ARMADILLO9) (NEW)
2. Armadillo-2x0 (PLATFORM_ARMADILLO2X0) (NEW)
3. Armadillo-3x0 (PLATFORM_ARMADILLO3X0) (NEW)
4. Armadillo-4x0 (MACHINE_ARMADILLO4X0) (NEW)
5. Armadillo-Box WS1 (MACHINE_ARMADILLO_BOX_WS1) (NEW)
6. Armadillo-IoT Gateway Standard (PLATFORM_ARMADILLO_IOTG_STD) (NEW)
7. Armadillo-5x0 (PLATFORM_ARMADILLO5X0) (NEW)
8. Armadillo-800 EVA (PLATFORM_ARMADILLO800EVA) (NEW)
9. Armadillo-810 (PLATFORM_ARMADILLO810) (NEW)
10. Armadillo-840 (PLATFORM_ARMADILLO840) (NEW)
11. Suzaku (PLATFORM_SUZAKU) (NEW)
choice[1-11]: 4
force use old(4x0) mtd parts for Armadillo-411 and Armadillo-441 (FORCE_MTDPARTS4x0) [N/y/?] (NEW)
Profile name (PROFILE_NAME) [] (NEW) txc
*
* Target Configurations
*
prompt for experimental options (SYSTEM_EXPERIMENTAL) [N/y] (NEW)
prompt for debugging options (SYSTEM_DEBUGGING) [N/y] (NEW)
*
* Core settings
*
entry-point selection
> 1. flash (SYSTEM_ENTRYPOINT_FLASH) (NEW)
2. ram (SYSTEM_ENTRYPOINT_RAM) (NEW)
choice[1-2]:
region to load image selection
> 1. kernel/userland (SYSTEM_BOOT_REGION_KERNEL) (NEW)
2. image (SYSTEM_BOOT_REGION_IMAGE) (NEW)
choice[1-2]:
"mtdparts" assign method
1. fixed (MTDPARTS_FIXED) (NEW)
> 2. auto (MTDPARTS_AUTO) (NEW)
choice[1-2]:
Support for Autoboot (AUTOBOOT) [Y/n] (NEW)
Support for Autoboot cancel by Tact-SW (AUTOBOOT_CANCEL_BY_TACTSW) [Y/n] (NEW)
Support for password lock (PASSWD_LOCK) [N/y] (NEW)
*
* Support Devices
*
Console
> 1. ttymxc1 (CONSOLE_TTYMXC1) (NEW)
2. ttymxc2 (CONSOLE_TTYMXC2) (NEW)
3. ttymxc3 (CONSOLE_TTYMXC3) (NEW)
4. ttymxc4 (CONSOLE_TTYMXC4) (NEW)
5. none (CONSOLE_NONE) (NEW)
choice[1-5]: 4
Flash memory support (FLASH) [N/y] (NEW)
Ethernet support (ETHERNET) [N/y] (NEW)
MMC/SD support (MMCSD) [N/y] (NEW)
Watchdog support (WDT) [N/y] (NEW)
*
* Commands
*
*
* Standard Commands
*
boot/linux (CMD_BOOT) [Y] (NEW) y
download (CMD_DOWNLOAD) [Y/n] (NEW)
frob (CMD_FROB) [Y/n] (NEW)
help (CMD_HELP) [Y/n] (NEW)
jump (CMD_JUMP) [N/y] (NEW)
medium (CMD_MEDIUM) [Y/n] (NEW)
memmap (CMD_MEMMAP) [Y] (NEW) y
upload (CMD_UPLOAD) [N/y] (NEW)
version (CMD_VERSION) [Y/n] (NEW)
*
* Optional Commands
*
info (CMD_INFO) [N/y] (NEW)
md5sum (CMD_MD5SUM) [N/y] (NEW)
passwd (CMD_PASSWD) [N/y] (NEW)
setbootdevice (CMD_SETBOOTDEVICE) [N/y] (NEW) y
Default Device (CMD_SETBOOTDEVICE_DEFAULT_DEVICE) [] (NEW)
setenv/clearenv (CMD_SETENV) [N/y] (NEW) y
*
* Optional Functions
*
*
* HOST
*
build an application for hosts (HOST_BUILD) [N/y] (NEW)
#
# configuration written to .config
#
atmark@atde5:~/hermit-at/hermit-at-3.11.0$ make
HERMIT_VERSION = 3.11.0
CC src/target/armadillo4x0/board.o
AS src/target/armadillo4x0/boot.o
LD src/target/armadillo4x0/built-in.o
CC src/target/command/download.o
CC src/target/command/frob.o
CC src/target/command/peek.o
CC src/target/command/poke.o
CC src/target/command/quit.o
CC src/target/command/help.o
CC src/target/command/medium.o
CC src/target/command/version.o
CC src/target/command/memmap.o
CC src/target/command/linux.o
CC src/target/command/setbootdevice.o
CC src/target/command/setenv.o
CC src/target/command/param.o
LD src/target/command/built-in.o
CC src/target/core/assert.o
CC src/target/core/command.o
CC src/target/core/crc.o
CC src/target/core/entry.o
CC src/target/core/gunzip.o
CC src/target/core/loader.o
CC src/target/core/boost.o
AS src/target/core/boost_arm.o
CC src/target/core/print.o
CC src/target/core/scan.o
CC src/target/core/map.o
LD src/target/core/built-in.o
CC src/target/core/ctype.o
CC src/target/core/delay.o
CC src/target/core/eth_util.o
CC src/target/core/ffs.o
CC src/target/core/fls.o
CC src/target/core/led.o
AS src/target/core/lib1funcs.o
CC src/target/core/list.o
CC src/target/core/mac.o
CC src/target/core/memcmp.o
CC src/target/core/memcpy.o
CC src/target/core/memset.o
CC src/target/core/memzero.o
CC src/target/core/mm.o
CC src/target/core/strchr.o
CC src/target/core/strcmp.o
CC src/target/core/strcpy.o
CC src/target/core/strlen.o
CC src/target/core/strncmp.o
CC src/target/core/strncpy.o
CC src/target/core/strpbrk.o
CC src/target/core/strrchr.o
CC src/target/core/strstr.o
CC src/target/core/strtol.o
AR src/target/core/lib.a
CC src/target/driver/memdev.o
CC src/target/driver/mx25_clock.o
CC src/target/driver/mx25_iomux.o
CC src/target/driver/mx25_uart.o
CC src/target/driver/pmic_mc34704.o
LD src/target/driver/built-in.o
LD src/target/built-in.o
LDS src/target/armadillo4x0/loader.lds
LD src/target/armadillo4x0/loader-armadillo4x0-colonia-v3.11.0.elf
src/target/armadillo4x0/built-in.o: In function `armadillo4x0_init':
board.c:(.text+0x20c): undefined reference to `mx25_setup_i2c'
board.c:(.text+0x2a0): undefined reference to `mx25_i2c_xfer'
board.c:(.text+0x2b4): undefined reference to `mx25_i2c_xfer'
board.c:(.text+0x2cc): undefined reference to `mx25_i2c_xfer'
board.c:(.text+0x2e0): undefined reference to `mx25_i2c_xfer'
board.c:(.text+0x4a4): undefined reference to `flash_initialize_cfi'
board.c:(.text+0x4ac): undefined reference to `flash_get_size'
board.c:(.text+0x5d2): undefined reference to `flash_memdev_init'
src/target/armadillo4x0/built-in.o:(.data+0x50c): undefined reference to `mx25_fec'
src/target/armadillo4x0/built-in.o:(.data+0x514): undefined reference to `mx25_mmcsd'
src/target/command/built-in.o: In function `download_cmdfunc':
param.c:(.text+0xb0): undefined reference to `dlbuf'
param.c:(.text+0xb8): undefined reference to `dlbufsize'
src/target/driver/built-in.o: In function `mc34704_read':
pmic_mc34704.c:(.text+0x360): undefined reference to `mx25_i2c_xfer'
src/target/driver/built-in.o: In function `mc34704_write':
pmic_mc34704.c:(.text+0x388): undefined reference to `mx25_i2c_xfer'
make[1]: *** [src/target/armadillo4x0/loader-armadillo4x0-colonia-v3.11.0.elf] エラー 1
make: *** [build-target] エラー 2

コメント

at_akihito.irie

2020年12月7日 17時02分

入江です。

> ATDE5で Hermit-AT のビルドを試みたところリンクエラーが発生しました。
> ソースパッケージは hermit-at-3.11.0-source.tar.gz です。
> 何がまずかったのでしょうか?
default configを適用していないためかと考えられます。

以下の手順でビルドしなおし、動作確認をお願いできますでしょうか。

1. Armadillo-4x0のdefault configを適用する

[ATDE]$ pwd
/home/atmark/hermit-at/hermit-at-3.11.0
[ATDE]$ make armadillo4x0_defconfig

2. (必要であれば)追加したいconfigを追加する

[ATDE]$ make menuconfig

menuconfigの使い方はatmark-distと同様です。
Armadillo-4x0のdefault configで使用される場合は、本手順を行う必要はご
ざいません。

3. ビルド

[ATDE]$ make

4. 生成物の確認

[ATDE]$ ls src/target/armadillo4x0/*.bin
src/target/armadillo4x0/loader-armadillo4x0-v3.11.0.bin

以上、よろしくお願いいたします。

arai-hideyuki

2020年12月7日 19時19分

> 入江です。
>
> > ATDE5で Hermit-AT のビルドを試みたところリンクエラーが発生しました。
> > ソースパッケージは hermit-at-3.11.0-source.tar.gz です。
> > 何がまずかったのでしょうか?
> default configを適用していないためかと考えられます。
>
> 以下の手順でビルドしなおし、動作確認をお願いできますでしょうか。
>
> 1. Armadillo-4x0のdefault configを適用する
>
> [ATDE]$ pwd
> /home/atmark/hermit-at/hermit-at-3.11.0
> [ATDE]$ make armadillo4x0_defconfig

atmark@atde5:~/hermit-at/hermit-at-3.11.0$ make armadillo4x0_defconfig
atmark@atde5:~/hermit-at/hermit-at-3.11.0$ make
でビルド出来ました。
ありがとうございました。