I've been following this tutorial on how to set-up a basic boot loader configuration on an embedded system. I've been stuck on the U-boot part owing to not being able to build it.

Downloading U-boot

git clone https://github.com/STMicroelectronics/u-boot.git
cd u-boot
git checkout v2018.11-stm32mp-r2.1

Building the software

export CROSS_COMPILE=arm-linux-
make stm32mp15_basic_defconfig
make menuconfig
sudo apt install device-tree-compiler
make DEVICE_TREE=stm32mp157a-dk1

Upon entering make DEVICE_TREE=stm32mp157a-dk1 the terminal shows the following error message:

make: arm-linux-gcc: Command not found
/bin/sh: 1: arm-linux-gcc: not found
dirname: missing operand
Try 'dirname --help' for more information.
scripts/kconfig/conf  --syncconfig Kconfig
./scripts/binutils-version.sh: line 18: arm-linux-as: command not found
  CHK     include/config.h
  CFG     u-boot.cfg
/bin/sh: 1: arm-linux-gcc: not found
make[1]: *** [scripts/Makefile.autoconf:77: u-boot.cfg] Error 1
make: *** No rule to make target 'include/config/auto.conf', needed by 'include/config/uboot.release'.  Stop.

I've added both the tool chain and the U-boot folder to PATH. Alsoarm-linux-gcc pertains to arm-training-linux-uclibcgnueabihf.

I'm new to embedded systems and Linux in general.

I've search for solutions online. The problem seems to be that it is using x86 instead of arm (?) and installing lib32bz1 seem to solve it. However, it does not work for me.

What may be causing this? How do I go about solving this?


The path to the cross compiler is wrong. Check your path to the cross compiler, check if you can acces your gcc from cmd line typing arm-linux-gcc, wether you can acces the cross compiler or not.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.