Personal tools

Log in

Changes

From IGEP - ISEE Wiki

Jump to: navigation, search

Ubuntu 12.04 Multiarch

6,571 bytes added, 12:46, 9 June 2014
no edit summary
Ubuntu 12.04.4 LTS MultiArch(i386 <-> ARM Hard float)
We will learn about configure & amp; install multi-arch packages in our host machine Ubuntu 12.04.4 LTS. This is required when we wish cross compile software using our host machine under Ubuntu/debian environment.
= Overview =
What we learn? Configure our environment and install cross packages in Ubuntu, after install the packages we will cross compile programs using our ubuntu host.
__TOC__
= Host Enviroment =
This how to is done using 12.04.4 LTS (32 bits) in your host, you can download it from our server using this [http://downloads.isee.biz/pub/igepv5_ce/devel/iso/ubuntu-12.04.4-desktop-i386.iso link]&nbsp;or directly from Ubuntu (Canonical) website. You can install it in a Virtual Machine enviroment using any Virtualization software or directly in your PC. == Host Configuration == We will modify dpkg &amp; apt for use a multi arch environment but what extacly is a multi arch environment?  *https://help.ubuntu.com/community/MultiArch In our case we will add the architecture ARM Hard float and after that we can install the packages or cross compile packages using our host machine.  The first step is add the multi arch option in dpkg.  Go to /etc/dpkg/dpkg.cfg.d and if the directory is empty you must create one file named: multi arch and inside the file we will put this line: foreign-architecture armhf  So this is the result: <pre>pwd/etc/dpkg/dpkg.cfg.dls -almcaro@mcaro-vm-u12:/etc/dpkg/dpkg.cfg.d$ ls -altotal 12drwxr-xr-x 2 root root 4096 May 8 10:25 .drwxr-xr-x 4 root root 4096 May 8 09:43 ..-rw-r--r-- 1 root root 27 May 8 10:25 multiarchmcaro@mcaro-vm-u12:/etc/dpkg/dpkg.cfg.d$ cat multiarch foreign-architecture armhf</pre> <div>Now we're ready for modify the apt repo sources for our wished new architecture, you should edit the file /etc/apt/sources.list and change the repositories as (I left here a sources.list sample file) If we want to set any repository you must add the tags: <br> [arch=i386] intel 32 bits <br> [arch=armel] ARM soft float 32 bits <br> [arch=armhf] ARM hard float 32 bits <br> or both: <br> [arch=armel,armhf] ARM soft/hard float repo 32 bits <br> The sources repositories not need to be tagged due sources repositories be the same for all architectures. </div> <pre># deb cdrom:[Ubuntu 12.04.4 LTS _Precise Pangolin_ - Release i386 (20140204)]/ precise main restricted# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to# newer versions of the distribution.deb [arch=i386] http://us.archive.ubuntu.com/ubuntu/ precise main restricteddeb-src http://us.archive.ubuntu.com/ubuntu/ precise main restricted deb [arch=armel,armhf] http://ports.ubuntu.com/ubuntu-ports precise main universe ## Major bug fix updates produced after the final release of the## distribution.deb [arch=i386] http://us.archive.ubuntu.com/ubuntu/ precise-updates main restricteddeb-src http://us.archive.ubuntu.com/ubuntu/ precise-updates main restricted deb [arch=armel,armhf] http://ports.ubuntu.com/ubuntu-ports precise-updates main restricted ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu## team. Also, please note that software in universe WILL NOT receive any## review or updates from the Ubuntu security team.deb [arch=i386] http://us.archive.ubuntu.com/ubuntu/ precise universedeb-src http://us.archive.ubuntu.com/ubuntu/ precise universedeb [arch=i386] http://us.archive.ubuntu.com/ubuntu/ precise-updates universedeb-src http://us.archive.ubuntu.com/ubuntu/ precise-updates universe ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## multiverse WILL NOT receive any review or updates from the Ubuntu## security team.deb [arch=i386] http://us.archive.ubuntu.com/ubuntu/ precise multiversedeb-src http://us.archive.ubuntu.com/ubuntu/ precise multiversedeb [arch=i386] http://us.archive.ubuntu.com/ubuntu/ precise-updates multiversedeb-src http://us.archive.ubuntu.com/ubuntu/ precise-updates multiverse ## N.B. software from this repository may not have been tested as## extensively as that contained in the main release, although it includes## newer versions of some applications which may provide useful features.## Also, please note that software in backports WILL NOT receive any review## or updates from the Ubuntu security team.deb [arch=i386] http://us.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiversedeb-src http://us.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse deb [arch=i386] http://us.archive.ubuntu.com/ubuntu/ precise-security main restricteddeb-src http://us.archive.ubuntu.com/ubuntu/ precise-security main restricteddeb [arch=i386] http://us.archive.ubuntu.com/ubuntu/ precise-security universedeb-src http://us.archive.ubuntu.com/ubuntu/ precise-security universedeb [arch=i386] http://us.archive.ubuntu.com/ubuntu/ precise-security multiversedeb-src http://us.archive.ubuntu.com/ubuntu/ precise-security multiverse ## Uncomment the following two lines to add software from Canonical's## 'partner' repository.## This software is not part of Ubuntu, but is offered by Canonical and the## respective vendors as a service to Ubuntu users.deb [arch=i386] http://archive.canonical.com/ubuntu precise partnerdeb-src http://archive.canonical.com/ubuntu precise partner ## This software is not part of Ubuntu, but is offered by third-party## developers who want to ship their latest software.deb [arch=i386] http://extras.ubuntu.com/ubuntu precise maindeb-src http://extras.ubuntu.com/ubuntu precise main</pre> You should add here the repositories for every architecture ...  After that we must execute: <pre>apt-get update</pre> = Install ARM packages = If you wish install a new package (in our case we install openssl library) you should do: <pre>mcaro@mcaro-vm-u12:~$ apt-cache search libssllibssl-dev - SSL development libraries, header files and documentationlibssl-doc - SSL development documentation documentationlibssl1.0.0 - SSL shared librarieslibssl1.0.0-dbg - Symbol tables for libssl and libcryptodcmtk - OFFIS DICOM toolkit command line utilitieslibcherokee-mod-libssl - Cherokee web server - SSL crypto functions pluginlibdcmtk2 - OFFIS DICOM toolkit runtime librarieslibdcmtk2-dev - OFFIS DICOM toolkit development libraries and headerslibssl-ocaml - OCaml bindings for OpenSSL (runtime)libssl-ocaml-dev - OCaml bindings for OpenSSLlibssl0.9.8 - SSL shared librarieslibssl0.9.8-dbg - Symbol tables for libssl and libcryptolibsslcommon2 - enterprise messaging system - common SSL librarieslibsslcommon2-dev - enterprise messaging system - common SSL development files</pre> and after found your desired library: <pre>sudo apt-get install libssl1.0.0:armhf</pre> Adding ":armhf" at end you set the ARM hard floating version to set installed. If you don't set the arch apt-get will install your default arch package (in this case i386).  &nbsp; [[Category:IGEPv5_Ubuntu_Releases]][[Category:Ubuntu_Cross_Compile]][[Category:Ubuntu]]