Cross Development Environment: Dependency on Host Components Print

 

The cross development environment distribution has the following dependencies on Linux-host software components:

  • The U-Boot, busybox and Linux kernel build systems require that certain host packages be installed on the development host to function correctly. These packages are: make, gcc, perl and some others. Please refer to linux/Documentation/Changes for a list of host tools required to build the Linux kernel. The same set of tools is required for the U-Boot and busybox build.
  • On the 64-bit Linux, install the following packages:
    • On the Ubuntu or Debian distribution:

    $ sudo dpkg --add-architecture i386
    $ sudo apt-get update
    $ sudo apt-get install ia32-libs libc6-dev gcc-multilib

    • On the Fedora or CentOS distribution:

    $ sudo yum install glibc.i686

  • The Linux Cortex-M GNU debugger (tools/bin/arm-v7-linux-uclibceabi-gdb) and the configuration scripts require that the following dynamically-linked libraries to be installed on the host:
    • libncurses.so.5 (the libncurses package);
    • libexpat.so.1 (the expat package);
    • libpython2.7.so.1.0 (the libpython package);
    • For example, to be able to run arm-v7-linux-uclibceabi-gdb you'll have to do the following (once):
      • On Ubuntu-10.04 (x32):

      $ sudo vim /etc/apt/sources.list
      # Add the following lines to the begin of the file:
      deb http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu lucid main
      deb-src http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu lucid main
      $ sudo apt-key adv --keyserver keyserver.ubuntu.com \
      --recv-keys DB82666C

      $ sudo apt-get update
      $ sudo apt-get install libncurses5 python2.7 python2.7-dev
      $ sudo ln -s /usr/lib/libncurses.so.5 /usr/lib/libtinfo.so.5

      • On CentOS 7 (x64):

      $ sudo yum install glibc.i686 ncurses-devel.i686 zlib.i686 \
      expat-devel.i686

      $ sudo yum install glibc-devel.i686 glibc-devel zlib-devel.i686 \
      bzip2-devel.i686 openssl-devel.i686 ncurses-devel.i686 \
      sqlite-devel.i686 readline-devel.i686
      tk-devel.i686 \
      gdbm-devel.i686 db4-devel.i686 libX11-devel.i686

      $ wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tar.xz
      $ unxz Python-2.7.12.tar.xz; tar xf Python-2.7.12.tar; \
      cd Python-2.7.12

      $ mkdir /opt/python-2.7.12.i686
      $ BASECFLAGS=-m32 LDFLAGS=-m32 CFLAGS=-m32 ./configure \
      --prefix=/usr --enable-shared

      $ make install altinstall

  • The tools/bin/mkimage utility. It is expected that the utility will work as is on most of today's Linux distributions. If it fails to run on a certain host, you can build it for your specific Linux host from the sources included in the Linux Cortex-M distribution by running make tools from the top of the U-Boot tree.
  • To build the run-time projects included to the distribution, you need to install the following host packages:
    • NFS server;
    • TFTP server;
    • Terminal emulator (picocom, minicom, kermit or PuTTY).
  • If your target board uses USB for the serial console connection you might need to install the FTDI USB-UART driver from http://www.ftdichip.com/Drivers/VCP.htm for your host.