SlideShare una empresa de Scribd logo
1 de 4
Descargar para leer sin conexión
##########################################################################
      ## CETENE - LINCS - Campina Grande/Recife - Paraíba/Pernambuco - Brasil                   ##
      ##          Dalton Cézane Gomes Valadares - Embedded Systems Developer                    ##
      ##               Master's/Specialist/Bachelor in Computer Science - UFCG                  ##
     ##########################################################################


    Tutorial about how to configure a development environment to cross-compile
                                 applications for beagleboard-xM


- Download the latest version of crosstool-NG: http://crosstool-ng.org/download/crosstool-ng/
- Create a directory to copy and descompact the file:
 * sudo mkdir /opt/cross_arm
 * sudo cp crosstool-ng-1.13.3.tar.bz2 /opt/cross_arm/.


- Go to created directory and do:
 * cd /opt/cross_arm
 * sudo tar -xvjpf crosstool-ng-1.13.3.tar.bz2
 * cd crosstool-ng-1.13.3.tar.bz2
 * sudo ./configure --prefix=/opt/cross_arm (when you run this command, check if all dependencies
are installed - if needed, install the dependencies)


- Now, your screen must present something like this:


 "Computing version string... 1.13.3
 Building up Makefile... done


 crosstool-NG configured as follows:
 PREFIX='/opt/cross_arm'
 BINDIR='/opt/cross_arm/bin'
 LIBDIR='/opt/cross_arm/lib/ct-ng-1.13.3'
 DOCDIR='/opt/cross_arm/share/doc/ct-ng-1.13.3'
 MANDIR='/opt/cross_arm/share/man'
PROG_PFX=''
 PROG_SFX=''
 PROG_SED=''


 Now run:
   make
   make install"


- Then you can run:
 * sudo make
 * sudo make install


- The "arm-unknown-linux-uclibcgnueabi" will be used. So, load this configuration with this command:
 * sudo ./ct-ng arm-unknown-linux-uclibcgnueabi


- And now, configure some things for your toolchain, before generate it:
 * sudo ./ct-ng menuconfig
 * Enter "Paths and misc options"
  + Configure the quantity of execution threads --> (2) Number of parallel jobs
  + Configure the setup directory --> (/opt/cross_arm/bb_toolchain/${CT_TARGET}) Prefix directory
 * Back to main screen and enter "Toolchain options"
  + Configure the alias --> (arm-linux) Tuple’s alias -- with this, all the tools will begin with "arm-
linux" prefix (arm-linux-gcc, for example)
 * Save and exit


- Start the toolchain creation with the command:
 * sudo ./ct-ng build (In this step is possible that you have some issue with some dependency that can
not be downloaded by the "build script". So, you have to download manually such dependency and put
the ".tar.gz" into the ".build/tarballs/" directory. After that, run the command again)


- After a long time, your toolchain is created. Verify it in the following directory:
/opt/cross_arm/bb_toolchain/arm-unknown-linux-uclibcgnueabi/bin
- You need to configure the environment variable to use the toolchain:
* export PATH=/opt/cross_arm/bb_toolchain/arm-unknown-linux-uclibcgnueabi/bin:$PATH


- Test the toolchain:
 * arm-linux-gcc ("arm-linux-gcc: no input files" must be showed)


- Now, you can write some c program (Hello World, for example) and cross-compile using the gcc
generated in the toolchain (arm-linux-gcc):
 * arm-linux-gcc yourAppName.c -static -o yourAppName (remember that the PATH must be correctly
configured)


- To confirm that the application was compiled for "arm", use the command "file":
 * file yourAppName (the result must be "yourAppName : ELF 32-bit LSB executable, ARM, version
1 (SYSV), statically linked, not stripped")


- To put the application into the beagleboard, it is needed to install some ssh server in the target to
connect with some ssh client in the host. This way, you can do the connection between the target and
the host for pass the application to the target. A good ssh server for embedded systems is the dropbear.


- If you can work with Eclipse, install the following plugins: CDT (C/C++ Development Toolkit) and
RSE (Remote Systems Explorer)
- With the RSE you can see the filesystem of the beagleboard and copy/delete/edit files remotely
- In the Eclipse, go to "Window->Open Perspective->Other->Remote System Explorer"
- To create a connection with the beagleboard, do the following steps:
 * Right click in the left windows (with the available connections) and select "New->Connection"
 * Select "SSH Only" and click "Next"
 * Type the beagleboard IP in the field "Host name" and a name for the connection in the field
"Connection name"
 * Click "Finish"
- To test the connection, right click in the connection with the given name and select "Connect", typing
user and password. It's done! Now you can access remotely the rootfs of the device.


- Create a C/C++ Project
- In the Project Explorer, right click in the project name and select "Build Configurations -> Manage..."
- Click "New" to configure the Eclipse for cross-compiling
- In the Name field, type the configuration name (beagleboard) and select "Debug" in the "Existing
configuration" point
- Click OK twice to return to the project
- In the Project Explorer, right click in the name of your project and select Properties
- Click Settings at the C/C++ Build item
- Select beagleboard in the "Configuration"
- In the GCC Compiler, change the Command text to: /opt/cross_arm/bb_toolchain/arm-unknown-
linux-uclibcgnueabi/bin/arm-unknown-linux-uclibcgnueabi-gcc (or your correct path, if you did
something different from this tutorial)
- Click Includes under GCC Compiler
- In the Include paths (-l) box (at the top), click in the icon to add a directory path and put:
/opt/crossarm/bb_toolchain/arm-unknown-linux-uclibcgnueabi/arm-unknown-linux-
uclibcgnueabi/include (click OK after)
- Click GCC Linker and change Command text to: /opt/cross_arm/bb_toolchain/arm-unknown-linux-
uclibcgnueabi/bin/arm-unknown-linux-uclibcgnueabi-gcc
- Click Libraries under GCC Linker and in the Library search path (-L) box (at the bottom), click in the
icon to add a directory path and put: /opt/crossarm/bb_toolchain/arm-unknown-linux-
uclibcgnueabi/arm-unknown-linux-uclibcgnueabi/lib (Click OK)
- Click GCC Assembler and change the Command text to: /opt/cross_arm/bb_toolchain/arm-unknown-
linux-uclibcgnueabi/bin/arm-unknown-linux-uclibcgnueabi-as (Click OK)
- In the Project Explorer, right click in the project name, select "Build Configurations -> Set Active"
and select "beagleboard" (the name given to the configuration)


- Now, you can program your applications and put them into beagleboard using Eclipse

Más contenido relacionado

La actualidad más candente

Develop and deploy haskell with docker
Develop and deploy haskell with dockerDevelop and deploy haskell with docker
Develop and deploy haskell with dockerChris Biscardi
 
Meetup C++ Floripa - Conan.io
Meetup C++ Floripa - Conan.ioMeetup C++ Floripa - Conan.io
Meetup C++ Floripa - Conan.ioUilian Ries
 
OpenWRT guide and memo
OpenWRT guide and memoOpenWRT guide and memo
OpenWRT guide and memo家榮 吳
 
[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly
[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly
[COSCUP 2021] LLVM Project: The Good, The Bad, and The UglyMin-Yih Hsu
 
Conan.io - The C/C++ package manager for Developers
Conan.io - The C/C++ package manager for DevelopersConan.io - The C/C++ package manager for Developers
Conan.io - The C/C++ package manager for DevelopersUilian Ries
 
Using docker to develop NAS applications
Using docker to develop NAS applicationsUsing docker to develop NAS applications
Using docker to develop NAS applicationsTerry Chen
 
Kernel Recipes 2016 - Landlock LSM: Unprivileged sandboxing
Kernel Recipes 2016 - Landlock LSM: Unprivileged sandboxingKernel Recipes 2016 - Landlock LSM: Unprivileged sandboxing
Kernel Recipes 2016 - Landlock LSM: Unprivileged sandboxingAnne Nicolas
 
Troubleshooting Tips from a Docker Support Engineer
Troubleshooting Tips from a Docker Support EngineerTroubleshooting Tips from a Docker Support Engineer
Troubleshooting Tips from a Docker Support EngineerJeff Anderson
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 applicationRoman Rodomansky
 
Make Your Containers Faster: Linux Container Performance Tools
Make Your Containers Faster: Linux Container Performance ToolsMake Your Containers Faster: Linux Container Performance Tools
Make Your Containers Faster: Linux Container Performance ToolsKernel TLV
 
Docker advance topic
Docker advance topicDocker advance topic
Docker advance topicKalkey
 
Linux Container Basics
Linux Container BasicsLinux Container Basics
Linux Container BasicsMichael Kehoe
 
Kernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureKernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureAnne Nicolas
 
Docker for Java developers at JavaLand
Docker for Java developers at JavaLandDocker for Java developers at JavaLand
Docker for Java developers at JavaLandJohan Janssen
 
Develop QNAP NAS App by Docker
Develop QNAP NAS App by DockerDevelop QNAP NAS App by Docker
Develop QNAP NAS App by DockerTerry Chen
 
Small, Simple, and Secure: Alpine Linux under the Microscope
Small, Simple, and Secure: Alpine Linux under the MicroscopeSmall, Simple, and Secure: Alpine Linux under the Microscope
Small, Simple, and Secure: Alpine Linux under the MicroscopeDocker, Inc.
 

La actualidad más candente (20)

Develop and deploy haskell with docker
Develop and deploy haskell with dockerDevelop and deploy haskell with docker
Develop and deploy haskell with docker
 
Meetup C++ Floripa - Conan.io
Meetup C++ Floripa - Conan.ioMeetup C++ Floripa - Conan.io
Meetup C++ Floripa - Conan.io
 
OpenWRT guide and memo
OpenWRT guide and memoOpenWRT guide and memo
OpenWRT guide and memo
 
There is more to C
There is more to CThere is more to C
There is more to C
 
[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly
[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly
[COSCUP 2021] LLVM Project: The Good, The Bad, and The Ugly
 
Conan.io - The C/C++ package manager for Developers
Conan.io - The C/C++ package manager for DevelopersConan.io - The C/C++ package manager for Developers
Conan.io - The C/C++ package manager for Developers
 
Using docker to develop NAS applications
Using docker to develop NAS applicationsUsing docker to develop NAS applications
Using docker to develop NAS applications
 
Vagrant
VagrantVagrant
Vagrant
 
Kernel Recipes 2016 - Landlock LSM: Unprivileged sandboxing
Kernel Recipes 2016 - Landlock LSM: Unprivileged sandboxingKernel Recipes 2016 - Landlock LSM: Unprivileged sandboxing
Kernel Recipes 2016 - Landlock LSM: Unprivileged sandboxing
 
Troubleshooting Tips from a Docker Support Engineer
Troubleshooting Tips from a Docker Support EngineerTroubleshooting Tips from a Docker Support Engineer
Troubleshooting Tips from a Docker Support Engineer
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 application
 
Make Your Containers Faster: Linux Container Performance Tools
Make Your Containers Faster: Linux Container Performance ToolsMake Your Containers Faster: Linux Container Performance Tools
Make Your Containers Faster: Linux Container Performance Tools
 
Docker advance topic
Docker advance topicDocker advance topic
Docker advance topic
 
Learning kubernetes
Learning kubernetesLearning kubernetes
Learning kubernetes
 
Linux Container Basics
Linux Container BasicsLinux Container Basics
Linux Container Basics
 
Lab manual
Lab manualLab manual
Lab manual
 
Kernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureKernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and future
 
Docker for Java developers at JavaLand
Docker for Java developers at JavaLandDocker for Java developers at JavaLand
Docker for Java developers at JavaLand
 
Develop QNAP NAS App by Docker
Develop QNAP NAS App by DockerDevelop QNAP NAS App by Docker
Develop QNAP NAS App by Docker
 
Small, Simple, and Secure: Alpine Linux under the Microscope
Small, Simple, and Secure: Alpine Linux under the MicroscopeSmall, Simple, and Secure: Alpine Linux under the Microscope
Small, Simple, and Secure: Alpine Linux under the Microscope
 

Destacado

Casing3d opengl
Casing3d openglCasing3d opengl
Casing3d openglgowell
 
Logging develop
Logging developLogging develop
Logging developgowell
 
使用Lua提高开发效率
使用Lua提高开发效率使用Lua提高开发效率
使用Lua提高开发效率gowell
 
The Rise of the Internet of Things
The Rise of the Internet of ThingsThe Rise of the Internet of Things
The Rise of the Internet of ThingsWestbase.io
 

Destacado (6)

Company profile
Company profileCompany profile
Company profile
 
Casing3d opengl
Casing3d openglCasing3d opengl
Casing3d opengl
 
Scrabble
ScrabbleScrabble
Scrabble
 
Logging develop
Logging developLogging develop
Logging develop
 
使用Lua提高开发效率
使用Lua提高开发效率使用Lua提高开发效率
使用Lua提高开发效率
 
The Rise of the Internet of Things
The Rise of the Internet of ThingsThe Rise of the Internet of Things
The Rise of the Internet of Things
 

Similar a How to configure an environment to cross-compile applications for beagleboard-xM

Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署Bo-Yi Wu
 
Makefiles in 2020 — Why they still matter
Makefiles in 2020 — Why they still matterMakefiles in 2020 — Why they still matter
Makefiles in 2020 — Why they still matterSimon Brüggen
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014biicode
 
Devry gsp 215 week 7 i lab networking and a tiny web server new
Devry gsp 215 week 7 i lab networking and a tiny web server newDevry gsp 215 week 7 i lab networking and a tiny web server new
Devry gsp 215 week 7 i lab networking and a tiny web server newwilliamethan912
 
Getting started with open mobile development on the Openmoko platform
Getting started with open mobile development on the Openmoko platformGetting started with open mobile development on the Openmoko platform
Getting started with open mobile development on the Openmoko platformJean-Michel Bouffard
 
From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...Jérôme Petazzoni
 
C# Production Debugging Made Easy
 C# Production Debugging Made Easy C# Production Debugging Made Easy
C# Production Debugging Made EasyAlon Fliess
 
Composer, putting dependencies on the score
Composer, putting dependencies on the scoreComposer, putting dependencies on the score
Composer, putting dependencies on the scoreRafael Dohms
 
9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_trainingvideos
 
What makes me "Grunt"?
What makes me "Grunt"? What makes me "Grunt"?
What makes me "Grunt"? Fabien Doiron
 
macos installation automation
macos installation automationmacos installation automation
macos installation automationJon Fuller
 
Command line for the beginner - Using the command line in developing for the...
Command line for the beginner -  Using the command line in developing for the...Command line for the beginner -  Using the command line in developing for the...
Command line for the beginner - Using the command line in developing for the...Jim Birch
 
[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안양재동 코드랩
 
Capifony. Minsk PHP MeetUp #11
Capifony. Minsk PHP MeetUp #11Capifony. Minsk PHP MeetUp #11
Capifony. Minsk PHP MeetUp #11Yury Pliashkou
 
Cordova iOS Native Plugin Development
Cordova iOS Native Plugin DevelopmentCordova iOS Native Plugin Development
Cordova iOS Native Plugin DevelopmentJosue Bustos
 
Practical guide for front-end development for django devs
Practical guide for front-end development for django devsPractical guide for front-end development for django devs
Practical guide for front-end development for django devsDavidson Fellipe
 

Similar a How to configure an environment to cross-compile applications for beagleboard-xM (20)

Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署Drone CI/CD 自動化測試及部署
Drone CI/CD 自動化測試及部署
 
Makefiles in 2020 — Why they still matter
Makefiles in 2020 — Why they still matterMakefiles in 2020 — Why they still matter
Makefiles in 2020 — Why they still matter
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014
 
Devry gsp 215 week 7 i lab networking and a tiny web server new
Devry gsp 215 week 7 i lab networking and a tiny web server newDevry gsp 215 week 7 i lab networking and a tiny web server new
Devry gsp 215 week 7 i lab networking and a tiny web server new
 
Smiley033
Smiley033Smiley033
Smiley033
 
Composer
ComposerComposer
Composer
 
Getting started with open mobile development on the Openmoko platform
Getting started with open mobile development on the Openmoko platformGetting started with open mobile development on the Openmoko platform
Getting started with open mobile development on the Openmoko platform
 
From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...
 
C# Production Debugging Made Easy
 C# Production Debugging Made Easy C# Production Debugging Made Easy
C# Production Debugging Made Easy
 
Composer, putting dependencies on the score
Composer, putting dependencies on the scoreComposer, putting dependencies on the score
Composer, putting dependencies on the score
 
Howto Pxeboot
Howto PxebootHowto Pxeboot
Howto Pxeboot
 
9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training9 creating cent_os 7_mages_for_dpdk_training
9 creating cent_os 7_mages_for_dpdk_training
 
What makes me "Grunt"?
What makes me "Grunt"? What makes me "Grunt"?
What makes me "Grunt"?
 
CI-CD WITH GITLAB WORKFLOW
CI-CD WITH GITLAB WORKFLOWCI-CD WITH GITLAB WORKFLOW
CI-CD WITH GITLAB WORKFLOW
 
macos installation automation
macos installation automationmacos installation automation
macos installation automation
 
Command line for the beginner - Using the command line in developing for the...
Command line for the beginner -  Using the command line in developing for the...Command line for the beginner -  Using the command line in developing for the...
Command line for the beginner - Using the command line in developing for the...
 
[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안[Codelab 2017] Docker 기초 및 활용 방안
[Codelab 2017] Docker 기초 및 활용 방안
 
Capifony. Minsk PHP MeetUp #11
Capifony. Minsk PHP MeetUp #11Capifony. Minsk PHP MeetUp #11
Capifony. Minsk PHP MeetUp #11
 
Cordova iOS Native Plugin Development
Cordova iOS Native Plugin DevelopmentCordova iOS Native Plugin Development
Cordova iOS Native Plugin Development
 
Practical guide for front-end development for django devs
Practical guide for front-end development for django devsPractical guide for front-end development for django devs
Practical guide for front-end development for django devs
 

Más de Dalton Valadares

Primeiros passos com Openstack
Primeiros passos com OpenstackPrimeiros passos com Openstack
Primeiros passos com OpenstackDalton Valadares
 
Performance Evaluation of an IEEE 802.11g Network in an Industrial Environment
Performance Evaluation of an IEEE 802.11g Network in an Industrial EnvironmentPerformance Evaluation of an IEEE 802.11g Network in an Industrial Environment
Performance Evaluation of an IEEE 802.11g Network in an Industrial EnvironmentDalton Valadares
 
802.11g Signal Strength Evaluation in an Industrial Environment (Elsevier Int...
802.11g Signal Strength Evaluation in an Industrial Environment (Elsevier Int...802.11g Signal Strength Evaluation in an Industrial Environment (Elsevier Int...
802.11g Signal Strength Evaluation in an Industrial Environment (Elsevier Int...Dalton Valadares
 
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...Dalton Valadares
 
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...Dalton Valadares
 
Internet das Coisas e a Indústria 4.0
Internet das Coisas e a Indústria 4.0Internet das Coisas e a Indústria 4.0
Internet das Coisas e a Indústria 4.0Dalton Valadares
 
Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...
Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...
Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...Dalton Valadares
 
Internet das Coisas com Edgex Foundry
Internet das Coisas com Edgex FoundryInternet das Coisas com Edgex Foundry
Internet das Coisas com Edgex FoundryDalton Valadares
 
OPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build TutorialOPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build TutorialDalton Valadares
 
Presentation of my paper in the IEEE Symposium on Computer and Communications...
Presentation of my paper in the IEEE Symposium on Computer and Communications...Presentation of my paper in the IEEE Symposium on Computer and Communications...
Presentation of my paper in the IEEE Symposium on Computer and Communications...Dalton Valadares
 
Avaliação de Desempenho de uma Rede 802.11g em uma Usina Termoelétrica
Avaliação de Desempenho de uma Rede 802.11g em uma Usina TermoelétricaAvaliação de Desempenho de uma Rede 802.11g em uma Usina Termoelétrica
Avaliação de Desempenho de uma Rede 802.11g em uma Usina TermoelétricaDalton Valadares
 
Apresentação sobre o modelo de segurança OPC UA
Apresentação sobre o modelo de segurança OPC UAApresentação sobre o modelo de segurança OPC UA
Apresentação sobre o modelo de segurança OPC UADalton Valadares
 
Modelo de segurança OPC UA
Modelo de segurança OPC UAModelo de segurança OPC UA
Modelo de segurança OPC UADalton Valadares
 
Introdução à Gestão de projetos
Introdução à Gestão de projetosIntrodução à Gestão de projetos
Introdução à Gestão de projetosDalton Valadares
 
Integrating Fiware Orion, Keyrock and Wilma
Integrating Fiware Orion, Keyrock and WilmaIntegrating Fiware Orion, Keyrock and Wilma
Integrating Fiware Orion, Keyrock and WilmaDalton Valadares
 
Desenvolvimento Web com JSF
Desenvolvimento Web com JSFDesenvolvimento Web com JSF
Desenvolvimento Web com JSFDalton Valadares
 

Más de Dalton Valadares (20)

Primeiros passos com Openstack
Primeiros passos com OpenstackPrimeiros passos com Openstack
Primeiros passos com Openstack
 
Performance Evaluation of an IEEE 802.11g Network in an Industrial Environment
Performance Evaluation of an IEEE 802.11g Network in an Industrial EnvironmentPerformance Evaluation of an IEEE 802.11g Network in an Industrial Environment
Performance Evaluation of an IEEE 802.11g Network in an Industrial Environment
 
802.11g Signal Strength Evaluation in an Industrial Environment (Elsevier Int...
802.11g Signal Strength Evaluation in an Industrial Environment (Elsevier Int...802.11g Signal Strength Evaluation in an Industrial Environment (Elsevier Int...
802.11g Signal Strength Evaluation in an Industrial Environment (Elsevier Int...
 
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
 
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
Towards 802.11g Signal Strength Estimation in an Industrial Environment: a Pr...
 
Internet das Coisas e a Indústria 4.0
Internet das Coisas e a Indústria 4.0Internet das Coisas e a Indústria 4.0
Internet das Coisas e a Indústria 4.0
 
Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...
Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...
Achieving Data Dissemination with Security using FIWARE and Intel Software Gu...
 
Internet das Coisas com Edgex Foundry
Internet das Coisas com Edgex FoundryInternet das Coisas com Edgex Foundry
Internet das Coisas com Edgex Foundry
 
OPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build TutorialOPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build Tutorial
 
Presentation of my paper in the IEEE Symposium on Computer and Communications...
Presentation of my paper in the IEEE Symposium on Computer and Communications...Presentation of my paper in the IEEE Symposium on Computer and Communications...
Presentation of my paper in the IEEE Symposium on Computer and Communications...
 
Avaliação de Desempenho de uma Rede 802.11g em uma Usina Termoelétrica
Avaliação de Desempenho de uma Rede 802.11g em uma Usina TermoelétricaAvaliação de Desempenho de uma Rede 802.11g em uma Usina Termoelétrica
Avaliação de Desempenho de uma Rede 802.11g em uma Usina Termoelétrica
 
Apresentação sobre o modelo de segurança OPC UA
Apresentação sobre o modelo de segurança OPC UAApresentação sobre o modelo de segurança OPC UA
Apresentação sobre o modelo de segurança OPC UA
 
Modelo de segurança OPC UA
Modelo de segurança OPC UAModelo de segurança OPC UA
Modelo de segurança OPC UA
 
Introdução à Gestão de projetos
Introdução à Gestão de projetosIntrodução à Gestão de projetos
Introdução à Gestão de projetos
 
Integrating Fiware Orion, Keyrock and Wilma
Integrating Fiware Orion, Keyrock and WilmaIntegrating Fiware Orion, Keyrock and Wilma
Integrating Fiware Orion, Keyrock and Wilma
 
Programação C - Aula 1
Programação C - Aula 1Programação C - Aula 1
Programação C - Aula 1
 
Programação C - Aula 2
Programação C - Aula 2Programação C - Aula 2
Programação C - Aula 2
 
Programação C - Aula 3
Programação C - Aula 3Programação C - Aula 3
Programação C - Aula 3
 
Programação C - Aula 4
Programação C - Aula 4Programação C - Aula 4
Programação C - Aula 4
 
Desenvolvimento Web com JSF
Desenvolvimento Web com JSFDesenvolvimento Web com JSF
Desenvolvimento Web com JSF
 

Último

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 

Último (20)

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 

How to configure an environment to cross-compile applications for beagleboard-xM

  • 1. ########################################################################## ## CETENE - LINCS - Campina Grande/Recife - Paraíba/Pernambuco - Brasil ## ## Dalton Cézane Gomes Valadares - Embedded Systems Developer ## ## Master's/Specialist/Bachelor in Computer Science - UFCG ## ########################################################################## Tutorial about how to configure a development environment to cross-compile applications for beagleboard-xM - Download the latest version of crosstool-NG: http://crosstool-ng.org/download/crosstool-ng/ - Create a directory to copy and descompact the file: * sudo mkdir /opt/cross_arm * sudo cp crosstool-ng-1.13.3.tar.bz2 /opt/cross_arm/. - Go to created directory and do: * cd /opt/cross_arm * sudo tar -xvjpf crosstool-ng-1.13.3.tar.bz2 * cd crosstool-ng-1.13.3.tar.bz2 * sudo ./configure --prefix=/opt/cross_arm (when you run this command, check if all dependencies are installed - if needed, install the dependencies) - Now, your screen must present something like this: "Computing version string... 1.13.3 Building up Makefile... done crosstool-NG configured as follows: PREFIX='/opt/cross_arm' BINDIR='/opt/cross_arm/bin' LIBDIR='/opt/cross_arm/lib/ct-ng-1.13.3' DOCDIR='/opt/cross_arm/share/doc/ct-ng-1.13.3' MANDIR='/opt/cross_arm/share/man'
  • 2. PROG_PFX='' PROG_SFX='' PROG_SED='' Now run: make make install" - Then you can run: * sudo make * sudo make install - The "arm-unknown-linux-uclibcgnueabi" will be used. So, load this configuration with this command: * sudo ./ct-ng arm-unknown-linux-uclibcgnueabi - And now, configure some things for your toolchain, before generate it: * sudo ./ct-ng menuconfig * Enter "Paths and misc options" + Configure the quantity of execution threads --> (2) Number of parallel jobs + Configure the setup directory --> (/opt/cross_arm/bb_toolchain/${CT_TARGET}) Prefix directory * Back to main screen and enter "Toolchain options" + Configure the alias --> (arm-linux) Tuple’s alias -- with this, all the tools will begin with "arm- linux" prefix (arm-linux-gcc, for example) * Save and exit - Start the toolchain creation with the command: * sudo ./ct-ng build (In this step is possible that you have some issue with some dependency that can not be downloaded by the "build script". So, you have to download manually such dependency and put the ".tar.gz" into the ".build/tarballs/" directory. After that, run the command again) - After a long time, your toolchain is created. Verify it in the following directory: /opt/cross_arm/bb_toolchain/arm-unknown-linux-uclibcgnueabi/bin - You need to configure the environment variable to use the toolchain:
  • 3. * export PATH=/opt/cross_arm/bb_toolchain/arm-unknown-linux-uclibcgnueabi/bin:$PATH - Test the toolchain: * arm-linux-gcc ("arm-linux-gcc: no input files" must be showed) - Now, you can write some c program (Hello World, for example) and cross-compile using the gcc generated in the toolchain (arm-linux-gcc): * arm-linux-gcc yourAppName.c -static -o yourAppName (remember that the PATH must be correctly configured) - To confirm that the application was compiled for "arm", use the command "file": * file yourAppName (the result must be "yourAppName : ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped") - To put the application into the beagleboard, it is needed to install some ssh server in the target to connect with some ssh client in the host. This way, you can do the connection between the target and the host for pass the application to the target. A good ssh server for embedded systems is the dropbear. - If you can work with Eclipse, install the following plugins: CDT (C/C++ Development Toolkit) and RSE (Remote Systems Explorer) - With the RSE you can see the filesystem of the beagleboard and copy/delete/edit files remotely - In the Eclipse, go to "Window->Open Perspective->Other->Remote System Explorer" - To create a connection with the beagleboard, do the following steps: * Right click in the left windows (with the available connections) and select "New->Connection" * Select "SSH Only" and click "Next" * Type the beagleboard IP in the field "Host name" and a name for the connection in the field "Connection name" * Click "Finish" - To test the connection, right click in the connection with the given name and select "Connect", typing user and password. It's done! Now you can access remotely the rootfs of the device. - Create a C/C++ Project - In the Project Explorer, right click in the project name and select "Build Configurations -> Manage..."
  • 4. - Click "New" to configure the Eclipse for cross-compiling - In the Name field, type the configuration name (beagleboard) and select "Debug" in the "Existing configuration" point - Click OK twice to return to the project - In the Project Explorer, right click in the name of your project and select Properties - Click Settings at the C/C++ Build item - Select beagleboard in the "Configuration" - In the GCC Compiler, change the Command text to: /opt/cross_arm/bb_toolchain/arm-unknown- linux-uclibcgnueabi/bin/arm-unknown-linux-uclibcgnueabi-gcc (or your correct path, if you did something different from this tutorial) - Click Includes under GCC Compiler - In the Include paths (-l) box (at the top), click in the icon to add a directory path and put: /opt/crossarm/bb_toolchain/arm-unknown-linux-uclibcgnueabi/arm-unknown-linux- uclibcgnueabi/include (click OK after) - Click GCC Linker and change Command text to: /opt/cross_arm/bb_toolchain/arm-unknown-linux- uclibcgnueabi/bin/arm-unknown-linux-uclibcgnueabi-gcc - Click Libraries under GCC Linker and in the Library search path (-L) box (at the bottom), click in the icon to add a directory path and put: /opt/crossarm/bb_toolchain/arm-unknown-linux- uclibcgnueabi/arm-unknown-linux-uclibcgnueabi/lib (Click OK) - Click GCC Assembler and change the Command text to: /opt/cross_arm/bb_toolchain/arm-unknown- linux-uclibcgnueabi/bin/arm-unknown-linux-uclibcgnueabi-as (Click OK) - In the Project Explorer, right click in the project name, select "Build Configurations -> Set Active" and select "beagleboard" (the name given to the configuration) - Now, you can program your applications and put them into beagleboard using Eclipse