Community
cancel
Showing results for 
Search instead for 
Did you mean: 
DPose
New Contributor II
1,821 Views

Geez I hate to ask: Linux+Eclipse+Xtools

I have Googled for many days and read countless circular threads and honestly I still don't get it. I have what appears on the surface to be a simple goal:

 

"Create an Eclipse based development environment which can be used to code, compile and debug c/c++ programs which will run on an Intel Galileo Gen2 board."

Requirements:

1) IDE and tools to run under some variant of Linux (preferably Ubuntu 14.04 but any will do)

2) Executable to run under current Big Image kernel

Options:

1) Remote deploy/debug would be nice.

What I don't need is Python or Java or Ruby on Rails or Debian or any of that. Just plain K&R/Stroustrup. Or even just some crippled form of K&R alone.

Now I know this has surely been done. I mean the Xtools would appear to be there in the Arduino package. If I could install the Eclipse Plugin, it would seem like configuring it would be a matter of pointing to the tools where they live under Arduino. But I can't seem to find the Plugin. Maybe it is built via the Less-Than-Decipherable Yocto voodoo Cake-bake whatever that I really don't want to do because I don't need a custom kernel?

I've used Intel products since the 8086/186 days. I mean like assembly language and an ICE the size of a Buick. The first Linux kernel I installed had a major version number of "0". The process was less than straightforward. Point being I'm fairly bright guy with some relevant experience. What am I missing? If someone would kindly just point me in the right direction and I'll get myself there and write a Howto about it.

Thanks,

Dallas

P.S. It isn't sarcasm, just my pathetic excuse for wit Don't ask about the HP/UX-based gcc-6811 cross-development system WITH software emulation, RCS SCM all integrated through EMACS. Yeah. It can be done. I don't remember why exactly, but it can be done.

20 Replies
Sergio_A_Intel
Employee
146 Views

Hi xthunderheartx,

Have you already looked this document ? I think it might have some useful information. Let me know if this helped you.

Regards

Intel_Alvarado

DPose
New Contributor II
146 Views

Thanx Alvarado, that does shed some light on the problem of debugging though it doesn't really address getting a cross-development environment up and running.

Maybe it is just so simple that I'm overlooking it ...

JPugh
Novice
146 Views

A couple of things. Ubuntu isn't well suited for the galileo primarily since there isn't a true i386 version of it...Ubuntu for x86 is mostly i686 compiled. That is why debian works better on it, but there is still a "bug" in the galileo cpu instruction set that hoarks libpthreads so if you do setup debian on it you'll want to either get the fixed libpthreads.so or rebuild it otherwise you'll pick up some strange errors when you go to run or compile apps that rely on libpthreads (like ssh).

As for tools - have to looked into the Intel IoTdevKit? https://software.intel.com/en-us/iotdevkit Intel Makers: What Will You Make?

I think it is supposed to have what you are looking for, but it's only for Yocto (bleh). I didn't bother with trying yocto myself...went straight to a debian build and aside from the libpthreads hack, all is well.

JP

DPose
New Contributor II
146 Views

Thanks for the reply JP. I think what you are saying is that Ubuntu isn't suited to run on the Galileo target itself. That I certainly understand and I'm down with that. I have no need for the upper layers of a Linux distribution. I need a bare bones app environment where I have access to the peripherals and gpio etc. I don't need Apache or Python or ROR or even BASH for that matter. The basic Linux image that Intel ships in the flash will almost certainly meet our needs.

What I do need is a cross development environment that compiles, links and locates for that embedded image. Those tools should work under Unbuntu or Debian or Windows or OSX or any other operating system that can execute GCC/binutils. More specifically if you can install the Arduino IDE and code/compile/execute a sketch under Unbuntu (which certainly works), then there is no reason why you can't do the same in c/c++ in Eclipse on that same workstation.

But the Devil is in the Details. The detailed process for creating that environment is not obvious (@least2me) and a fairly extensive investigation reveals confusing/conflicting/incomplete/dated information. I will figure it out of course, but I would rather spend my time building the application instead of fixing tools.

JPugh
Novice
146 Views

Ok I think I'm in sync with your line of thinking. You want an environment that you can run under a Linux desktop, create the apps you want to create, and have them "sent" to the Galileo running Yocto to run (or whereever you are compiling them to run). The problem you have is that the build environment you want will only run under either the Arudino IDE or on the Galileo itself.

The IoT Dev Kit, really doesn't do much of anything that you've asked for...

And yes...Ubuntu is built mainly as i686 built binaries and do not run properly in a i386 environment (on the galileo itself). Debian on the other hand works well in that regard.

DPose
New Contributor II
146 Views

Exactly. I want to develop c/c++ apps on a PC running some Linux distribution (preferably Ubuntu) using Eclipse/Git, compile it, download it to a Galileo board, debug it, deploy it, get paid. Next.

Now I know that the Arduino IDE contains the compiler and other utilities needed. Arduino Sketches are just c/c++. They get compiled with gcc like any other and then sent to the target (using zmodem of all things). So conceivably I could configure Eclipse to point to that toolset and at least be able to build an executable that is runnable on the target. Doesn't solve the remote deployment or debug issue but would be a step forward.

Dallas

DPose
New Contributor II
146 Views

Ok trying to build the kernel/tools using the 5/14 version of the Build Guide. Get this error:

NOTE: Resolving any missing task queue dependencies

NOTE: Preparing runqueue

NOTE: Executing SetScene Tasks

NOTE: Executing RunQueue Tasks

ERROR: Function failed: sysroot_stage_all (see /home/dallas/Development/BSP/meta-clanton_v1.0.0/yocto_build/tmp/work/i686-linux/quilt-native/0.60-r0/temp/log.do_populate_sysroot.28086 for further information)

ERROR: Logfile of failure stored in: /home/dallas/Development/BSP/meta-clanton_v1.0.0/yocto_build/tmp/work/i686-linux/quilt-native/0.60-r0/temp/log.do_populate_sysroot.28086

Log data follows:

| DEBUG: Executing python function sstate_task_prefunc

| DEBUG: Python function sstate_task_prefunc finished

| DEBUG: Executing python function do_populate_sysroot

| DEBUG: Executing shell function sysroot_stage_all

| tar: --same-order option cannot be used with -c

| Try 'tar --help' or 'tar --usage' for more information.

| tar: This does not look like a tar archive

| tar: Exiting with failure status due to previous errors

| DEBUG: Python function do_populate_sysroot finished

| ERROR: Function failed: sysroot_stage_all (see /home/dallas/Development/BSP/meta-clanton_v1.0.0/yocto_build/tmp/work/i686-linux/quilt-native/0.60-r0/temp/log.do_populate_sysroot.28086 for further information)

ERROR: Task 10 (/home/dallas/Development/BSP/meta-clanton_v1.0.0/poky/meta/recipes-devtools/quilt/quilt-native_0.60.bb, do_populate_sysroot) failed with exit code '1'

NOTE: Tasks Summary: Attempted 23 tasks of which 0 didn't need to be rerun and 1 failed.

No currently running tasks (23 of 63)

Summary: 1 task failed:

/home/dallas/Development/BSP/meta-clanton_v1.0.0/poky/meta/recipes-devtools/quilt/quilt-native_0.60.bb, do_populate_sysroot

Summary: There were 2 WARNING messages shown.

Summary: There was 1 ERROR message shown, returning a non-zero exit code.

Any advice? Building on Ubuntu 14.04 which apparently hasn't been tested.

Thx,

Dallas

Matthias_H_Intel
Employee
146 Views

you might be interested trying the "IoT Developer Kit".

It comes with:

- ready to go eglibc SD card image (including uclibc libs to allow Arduino sketches from Intel Arduino IDE running flawlessly)

- Eclipse integration (Windows, Linux, MAC)

- libmraa, upm (abstracting away GPIO details on native code [C/C++, Python, Node.JS])

- ipk repository

- ...

https://software.intel.com/iot https://software.intel.com/iot

https://software.intel.com/en-us/iot/getting-started https://software.intel.com/en-us/iot/getting-started

Sergio_A_Intel
Employee
146 Views

Hi

We are following up on your post and we would like to know if you still need help or if you already have an answer or solution to your question. Remember if someone replied to you with a helpful response you can mark it as correct or helpful answered. We will be waiting your response. Have a great day.

 

Regards,

Sergio

DPose
New Contributor II
146 Views

Yeah. I do. I'd really like a simple answer from Intel. I mean I'm a real live developer trying my best to create a real live development environment to use in a real live project that will result in many real live units being sold. What am I missing? Once upon a time an intel rep would have shown up at my door with a case of single malt and a car load of hookers. Now I'm lucky if I get a "RTFM" outta you guys.

Matthias_H_Intel
Employee
146 Views

post.user_wrote.label:

Yeah. I do. I'd really like a simple answer from Intel. I mean I'm a real live developer trying my best to create a real live development environment to use in a real live project that will result in many real live units being sold. What am I missing? Once upon a time an intel rep would have shown up at my door with a case of single malt and a car load of hookers. Now I'm lucky if I get a "RTFM" outta you guys.

simple answer:

the Intel(R) IoT developer kit already offers all you are asking for:

https://software.intel.com/iot https://software.intel.com/iot

https://software.intel.com/en-us/iot/getting-started https://software.intel.com/en-us/iot/getting-started

It will work for Intel(R) Galileo Gen1, Gen2 [with the IoT devkit image] and the Intel(R) Edison Arduino board.

JPugh
Novice
146 Views

One would expect that to be the answer, but it's not. The question is asking for a bit more than what Intel is able to offer.

Matthias_H_Intel
Employee
146 Views

Looking forward for constructive feature requests to the Intel(R) IoT developer kit SW and concrete descriptions on what is missing for your needs.

DPose
New Contributor II
146 Views

Well allow me to retort. First off mhahn, when you originally posted the links to the IoT Devkit ... IT DIDN"T WORK. Yeah, the page loaded but the only version of the kit it would let me download was for Windows. I haven't had a windows machine in my lab for 20 years. Sorry but my wife won't let me do a bunch of techno-gangster mumbo-jumbo on her laptop which is the only machine within probably 10 miles of Prospect Hill, NC with any variant of Windows installed. So that was pretty much out. Since your links were about the 10th Rabbit Hole I had been down that week trying to get an environment working, I quickly moved on.

Now back to yesterday. My boss, longtime friend and mentor, following instructions from this site bricked his board. Now I've convinced him that Galileo is an incredible platform (and it is) for his project. That combined with my problems getting a set of tools that would work obviously doesn't engender a whole lot of confidence in the man, his 40 year love affair with all things Intel not withstanding.

Now I don't mean to be nasty but dood we just want an answer. Ok so you provided one. Again. This time I was able to download the IoTDevkit for Linux. Cool. And it almost works even. Of course nothing says "Oh by the way, the old 1.0.0 'Big Image' won't work with the toolkit, you actually need to get the image we built for it". I figured that one out for myself. Now I can build, transfer and even execute programs from Eclipse to/on my target. Awesome. Sadly though it's still broken:

dallas@Amelia:~/iotdk-ide-linux$ ./devkit-x86/sysroots/x86_64-pokysdk-linux/usr/bin/i586-poky-linux/i586-poky-linux-gdb --version

Traceback (most recent call last):

File "/home/dallas/iotdk-ide-linux/devkit-x86/sysroots/x86_64-pokysdk-linux/usr/lib/python2.7/site.py", line 569, in

main()

File "/home/dallas/iotdk-ide-linux/devkit-x86/sysroots/x86_64-pokysdk-linux/usr/lib/python2.7/site.py", line 551, in main

known_paths = addusersitepackages(known_paths)

File "/home/dallas/iotdk-ide-linux/devkit-x86/sysroots/x86_64-pokysdk-linux/usr/lib/python2.7/site.py", line 278, in addusersitepackages

user_site = getusersitepackages()

File "/home/dallas/iotdk-ide-linux/devkit-x86/sysroots/x86_64-pokysdk-linux/usr/lib/python2.7/site.py", line 253, in getusersitepackages

user_base = getuserbase() # this will also set USER_BASE

File "/home/dallas/iotdk-ide-linux/devkit-x86/sysroots/x86_64-pokysdk-linux/usr/lib/python2.7/site.py", line 243, in getuserbase

USER_BASE = get_config_var('userbase')

File "/home/dallas/iotdk-ide-linux/devkit-x86/sysroots/x86_64-pokysdk-linux/usr/lib/python2.7/sysconfig.py", line 524, in get_config_var

return get_config_vars().get(name)

File "/home/dallas/iotdk-ide-linux/devkit-x86/sysroots/x86_64-pokysdk-linux/usr/lib/python2.7/sysconfig.py", line 423, in get_config_vars

_init_posix(_CONFIG_VARS)

File "/home/dallas/iotdk-ide-linux/devkit-x86/sysroots/x86_64-pokysdk-linux/usr/lib/python2.7/sysconfig.py", line 302, in _init_posix

raise IOError(msg)

IOError: invalid Python installation: unable to open /home/dallas/iotdk-ide-linux/devkit-x86/sysroots/x86_64-pokysdk-linux/usr/include/python2.7/pyconfig.h (No such file or directory)

That is because there IS NO /home/dallas/iotdk-ide-linux/devkit-x86/sysroots/x86_64-pokysdk-linux/usr/include! Before you get all excited and say "Why were you executing gdb --version from the console?", it is because I couldn't copy the error output from eclipse to the clipboard and I didn't want to mess with a screenshot. But this is the identical error traceback.

So you want a constructive feature request? Ok:

1) Please provide an IDE that works. Like all of it. Not just part of it.

2) Please provide a comprehensive Howto for installing said IDE on Linux/Windows/OSx. I personally would settle for Linux

Want me to tell you whats missing from the kit that causes it not to meet my needs?

1) iotdk-ide-linux/devkit-x86/sysroots/x86_64-pokysdk-linux/usr/include/python2.7/pyconfig.h apparently.

I just want something that works. I don't want to futz with it all day (week/month/year) long. I (we) have applications to write, we don't care about the tools. Once upon a time Intel provided those things It was part of the program. It just worked. If it didn't, somebody from Intel would help you figure out why.

Honestly is that too much to ask?

DPose
New Contributor II
146 Views

Ok, looking back at this I gotta say I was outta line. I let the problem get under my skin. Guess I'm getting cranky in my old age. Anyway mhahn, you were trying to help and you did point me in the right direction. It was my fault I didn't follow it to the destination. I apologize for the attitude.

I did this: "ln -s ../../i586-poky-linux/usr/include/ include" in the ~/iotdk-ide-linux/devkit-x86/sysroots/x86_64-pokysdk-linux/usr directory and things are pretty much working now.

Again, sorry for being a jerk. It was uncalled for and about as unprofessional as it gets.

DPose
New Contributor II
146 Views

Ok bro, so you're right. Constructive and concrete would be more helpful and I didn't realize (because I didn't slow down to read carefully) that the IoTDevkit is really in Beta. So maybe these observations will be useful.

First off I created a clean Kubuntu 14.04 x86_64 installation on a Dell Optiplex 745. I chose this platform for a variety of reasons, mostly because it is the closest thing I could find to a distribution which Intel suggests would work. I've read many documents suggesting various Debian flavors and a recent one suggesting Ubuntu 12.04 LTS. Best I can tell 12.XX is EOL because when I install it, it isn't able to update and moans all the time about upgrading to the new release etc. So 14.04 it is.

Next I downloaded the Devkit and the Devkit Galileo Linux image pointed to my Matthias (mhahn) in his previous posts. The first time I tried to do that the site would not allow me to download the Linux version. That was right around the initial release (according to this post: https://software.intel.com/en-us/blogs/2014/09/08/announcing-intel-iot-developer-kit https://software.intel.com/en-us/blogs/2014/09/08/announcing-intel-iot-developer-kit) so maybe I should have set retry=2+ before initiating that step. Maybe it site was in the process of being updated or something. OOPS! Anyway, I then extracted the kit to a dedicated directory in my user account on the host workstation.

Once I had the tools situated, I executed iotdk-ide-linux/devkit-launcher and Eclipse (kepler) fired right up. I then chose the 1_c_helloworld project as a test drive. All looked well. I hit build from the toolbar which worked without a hitch. Good so far. When I tried to debug though, I hit a snag because I had the old "Big_Image" running on the target galileo board. That ain't so good. One, the Devkit environment is setup to link to libraries compiled for the Devkit image (I believe that is the case), and two, the gdbserver is not in the Big_Image. I'm sure there are a host of other reasons this wouldn't work that I didn't explore.

So then I created an SD with the appropriate OS i.e. the IoTDevKit image. There are a variety of ways to do this on a Linux host. I just stuck a blank card in my reader, opened "kinfo" and told it to restore the image. Using dd would likely have been the more appropriate procedure.

Suggestion # 1: Put a brief set of instructions for doing this under Linux as there are instructions for Windows and OSX on the website. Most Linux operators will likely know how to do it, but for completeness sake and for people new to Linux it might be useful.

After I booted the target with the new image I tried again and got the error message I detailed in a previous port regarding the missing "pyconfig.h". I put a symlink to the 32-bit include directory in the the corresponding x86_64 directory and that got me in business. From that point on I could modify/build/debug the example project with no problems

Suggestion # 2: I'm not sure exactly how to fix this. I imagine it is unique to 64-bit host environments. The symlink seems to work ok so maybe it is as simple as that.

The logical next step was to create a new project based on the template already established in the DevKit examples. So I went to the Eclipse toolbar:

File->New->C Project

I gave the new project a name and selected

Project Type->Executable->Hello World ANSI C Project

Tool Chain->Cross GCC

I then clicked through to the Next screens and left that all default until I got to:

Cross GCC Command->Cross Compiler Prefix

Which I set to:

"i586-poky-linux-"

and then clicked finish. Here is where the first problem showed up. I had to go in and change a bunch of project setting. Primarily the include paths. I right-clicked on the new project and took the properties @ the bottom:

Properties->C/C++ Build->Settings->Cross GCC Compiler->Includes->Include paths (-I)->Add

and inserted this: "${DEVKIT_HOME}/devkit-x86/sysroots/i586-poky-linux/usr/include" into the dialog.

your mileage may vary if you are running on a 32-bit host. There are a couple of other things as well:

Properties->C/C++ Build->Settings->Tool Setting->Cross GCC Compiler->Optimization->(-Os)

Properties->C/C++ Build->Settings->Tool Setting->Cross GCC Compiler->Miscellaneous->Other Flags->${CFLAGS}

Properties->C/C++ Build->Settings->Error Parsers->[GNU gcc/g++ Error Parser] [GNU Assembler Error Parser] [GNU Linker Error Parser] /*select these only */

Properties->C/C++ Build->Settings->Tool Setting->Cross GCC Linker->Miscellaneous->Linker Flags->${LDFLAGS}

Properties->C/C++ Build->Settings->Tool Setting->Cross GCC Assembler->General->Include paths (-I)->Add->"${DEVKIT_HOME}/devkit-x86/sysroots/i586-poky-linux/usr/include"

This was copied from the 1_c_helloworld example project. After I applied these change all the errors went away but one. The source file template had this line in it:

return EXIT_SUCCESS;

which was not resolved. The example code had:

return (0);

So I changed my code to that which cleared the last error. Everything worked fine from there.

Suggestion # 3: Configure a project template (maybe with a different name. "Galileo C Project"?) that will essentially produce a blank project exactly like 1_c_helloworld or something similar.

In any event I was able to get the environment working and I have JTAG boxes arriving early next week that I hope to integrate as well. I know that has been done successfully by others. I don't know if these issues are unique to my experience but I suspect not. Really, it would be useful to have some kind of basic installation instructions with maybe a little troubleshooting section of something.

Suggestion # 4: Two words: "IotDevKit Howto"

Dallas

Nsahu1
Novice
146 Views

Hello,

I am using the iotdk-ide-linux tool for Intel Galileo Gen2.

Everytime I try to launch the "devkit-launcher" I do not see anything. And on terminal it gets stuck at the below:

ethercat@ethercat-HCL-Desktop:~/Downloads/iotdk-ide-linux$ /home/ethercat/Downloads/iotdk-ide-linux/eclipse-linux/eclipse: 5: /home/ethercat/Downloads/iotdk-ide-linux/eclipse-linux/eclipse: Syntax error: "(" unexpected

I am using Ubuntu 12.04 with CPU Architecture as below:

Architecture: i686

 

CPU op-mode(s): 32-bit, 64-bit

 

I suppose the Application requires an x86_64 architecture to get launched.

 

Can anyone suggest why I am not getting the Eclipse IDE launched and what needs to be done to make it work?

 

 

Matthias_H_Intel
Employee
146 Views

pls do not double post on IDZ and on this forum.

In addition: putting new questions to a thread marked as answered might confuse.

Nsahu1
Novice
146 Views

Hello Matthias,

 

 

Apologies for the same.

 

 

Could you please answer to the question which I have mentioned? If the question will not be answered there Do I need to open a new question or Is there a specific Forum for such question?
Matthias_H_Intel
Employee
24 Views

no worries - let's follow up on IDZ

Reply