Git Product home page Git Product logo

arm-cross-sysroot's Introduction

arm-cross-sysroot

ARM Cross Sysroot is a script bundle to cross-compile libraries on a host computer for an ARM target. This git repo contains just scripts to build the libraries for an ARM target. It does not contains any of the the source. They will be downloaded during the build process.

Usage

By default clone the script into your home development directory.

$ git clone https://github.com/Illuminux/arm-cross-sysroot.git

Change into the arm-cross-sysroot directory and copy/rename the file config.cfg.sample to config.cfg:

$ mv config.cfg.sample config.cfg

Open config.cfg with an editor of your choice and and customize it according to your system.

  • UV_sysroot_dir Directory in which the sysroot should be installed.
  • UV_download_dir Directory in which the downloads are to be loaded
  • UV_toolchain_dir Directory where the toolchain is located (exclude bin directory)
  • UV_target Target architecture/Tollchain prefix

To build the cross sysroot just run the following command:

$ ./sysroot --build

Dependencies

Linux:

Host Packages installation:

  • $ sudo apt-get install build-essentials gettext curl glib intltool autogen autoconf automake cmake libxml2-dev

GCC ARM Cross ToolChain:

  • arm-linux-gnueabihf
    Hardfloat - Linaro Toolchain Binaries 4.9 (BeagleBone etc.)
  • gcc-linaro-arm-linux-gnueabihf-raspbian (Raspberry PI): $ git clone https://github.com/raspberrypi/tools.git
  • arm-none-linux-gnueabi:
    Softfloat CodeSourcery Toolchain Binaries (QNAP etc.)

Mac OS X

Host Packages installation:

  • Xcode Command Line Tools:
    $ xcode-select --install
  • Homebrew:
    $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)
  • Homebrew packages:
    The required packages will be installed automatically during the script will be executed.

GCC ARM Cross ToolChain:

Supported libraries:

  • Image Libraries:

    • libjpeg - Independent JPEG Group's JPEG runtime library
    • jasper - JPEG-2000 runtime library
    • limpng - PNG library
    • libtiff - Tag Image File Format library
    • libraw - raw image decoder library
    • liblcms2 - Little CMS 2 color management library development headers
  • Audio and Video Libraries:

    • gstreamer - pipeline-based multimedia framework
    • gst-plugins-base - GStreamer libraries from the "base" set
    • gst-plugins-good - GStreamer development files for libraries from the "good" set
    • alsa - Advanced Linux Sound Architecture
    • liboog - Ogg bitstream library
    • libvorbis - Vorbis General Audio Compression Codec
    • libtheora - Theora Video Compression Codec
    • libvisual - Audio visualization framework
    • wavpack - Audio codec (lossy and lossless) encoder and decoder
    • lib - Open source audio and video processing tools
    • lame - MP3 encoding library
    • taglib - Library for reading and editing the meta-data of audio formats
    • x264 - Video coding library
    • Libav - Codec library
  • Compression Libraries:

    • zlib - Compressing File-I/O Library
    • bzip2 - High-quality block-sorting file compressor
    • liblzma - XZ-format compression library
  • Markup Language/JSON Libraries:

    • expat - XML parsing C library
    • libxml2 - GNOME XML library
    • json-glib - GLib JSON manipulation library
    • QJson - Qt-based library that maps JSON data to QVariant objects and vice versa.
  • Hardware Libraries:

    • tslib - Abstraction layer for touchscreen
    • i2c-tools - Heterogeneous set of I2C tools for Linux
    • bluez - Bluetooth protocol stack library
    • libusb - userspace USB programming library
    • wiringPi - GPIO Interface library for the Raspberry Pi 2.
    • BlackLib - GPIO Interface library for Beaglebone Black 3.
  • Communication:

    • libmodbus - Library for the Modbus protocol
    • curl - Command line tool for transferring data with URL syntax
  • Mathematic and Scientific Libraries:

    • gsl - GNU Scientific Library
    • gmp - Multi precision arithmetic library developers tools
    • mpfr - Multiple precision floating-point computation developers tools
  • Database:

    • sqlite - Database management system libraries
  • Framework and System Libraries:

    • Qt - development files and development programs for host. Selectable in config.cfg:
      • Qt 4.8.6
      • Qt 5.4.1 (experimental)
    • glib - GLib development library
    • dbus - Simple interprocess messaging system
    • libffi - Foreign function interface library
    • ncurses - text-based user interfaces library
    • readline - GNU readline and history libraries
    • cryptodev - Access to Linux kernel cryptographic drivers
    • openssl - Secure Sockets Layer toolkit
    • liborc - Library of Optimized Inner Loops Runtime Compiler
    • freetype - FreeType 2 font engine
    • fontconfig - Generic font configuration library
    • cairo - The Cairo 2D vector graphics library
    • liblqr - Converts plain array images into multi-size representation
    • libssh2 - SSH2 client-side library
    • libdirectfb - Direct frame buffer graphics library
    • libconfig - Configuration File Library
    • libsoup - HTTP library implementation in C
    • libevent - API for asynchronous event notification
    • libical - iCalendar library implementation
  • X11 Libraries:

    • libX11 - X11 client-side library
    • libXext - X11 miscellaneous extensions library
    • pixman - pixel-manipulation library for X
    • xtrans - X transport library
    • xproto
    • xextproto
    • inputproto
    • xcb-proto - X C Binding
    • libpthread-stubs - pthread stubs not provided by native libc
    • libXau - X11 authorisation library
    • libgpg-error - Library for common error values and messages in GnuPG components
    • libgcrypt - LGPL Crypto library
    • libxslt - XSLT 1.0 processing library
    • libxcb - X C Binding
    • videoproto - X11 Video extension wire protocol
    • kbproto - X11 XKB extension wire protocol
    • libXv - X11 Video extension library

**1.)** Linux only.
**2.)** Raspberry Pi only. **3.)** Beaglebone Black only.

arm-cross-sysroot's People

Contributors

illuminux avatar olivergesch avatar theoriginalgri avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

arm-cross-sysroot's Issues

Openssl build fail because of cross compiler path error

While building sysroot, I ran into openssl trouble.

arm-linux-gnueabihf-/usr/local/linaro/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DZLIB_SHARED -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DHAVE_CRYPTODEV -DTERMIO -O3 -fomit-frame-pointer -Wall -I/Users/cede/Developpement/BeagleBone/arm-cross-sysroot/../sysroot/include -I/Users/cede/Developpement/BeagleBone/arm-cross-sysroot/../sysroot/include/glib-2.0 -I/Users/cede/Developpement/BeagleBone/arm-cross-sysroot/../sysroot/lib/glib-2.0/include -I/Users/cede/Developpement/BeagleBone/arm-cross-sysroot/../sysroot/include/dbus-1.0 -I/Users/cede/Developpement/BeagleBone/arm-cross-sysroot/../sysroot/lib/dbus-1.0/include -c -o cryptlib.o cryptlib.c make[1]: arm-linux-gnueabihf-/usr/local/linaro/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc: No such file or directory
I will try to look at the formula

-licucore not present on OS X 10.11

I tried to build the sysroot with ./sysroot -b. Unfortuanetely it stopped with an error compiling libxslt. The linker command tried to link against -licucorewhich is not found on OS X 10.11.
Building icu myself and integrate it into the sysroot failed..
Any ideas?

sysroot --list failure

While trying to figure what's wrong with my sysroot build, I tried to run ./sysroot -l.

Here is the error I got:

ccortezia@zeronull:~/git/personal/arm-cross-sysroot$ ./sysroot -l
/Users/ccortezia/git/personal/arm-cross-sysroot/include/tools.sh: line 244: FU_tools_print_list: command not found

Expat, tslib and libusb cannot be downloaded

Build expat:
Download expat-2.1.0.tar.gz... 
######################################################################## 100,0%
Extract expat-2.1.0.tar.gz... faild
tar: Unrecognized archive format
tar: Error exit delayed from previous errors.

*** Error in expat ***

It seems sourceforge does not allow the direct links. I had to open the links in the browser and copy the files to the download directory used by your script.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.