How to install M2M Studio 1.1.0 under Linux

Here is a quick guide to install M2M Studio plugins over a Linux Eclipse platform.

  • Download and install an Eclipse 3.4.2 platform for Linux, from http://www.eclipse.org/downloads/packages/release/ganymede/sr2. It is recommended to use the Eclipse IDE for C/C++ Developers one.
  • Launch this Eclipse platform
  • Add M2M Studio update site: go to Help > Software Updates > Available Software, and add the http://www.wavecom.com/eclipseUpdates/m2mstudio URL
  • Click the checkbox in order to install everything from this update site, click Install and follow the steps.
  • Restart your Eclipse platform when asked: now M2M Studio plug-ins are installed.
  • To get started, display the Packages Manager or Open AT perspectives. If the Open AT perspective does not appear in the default list, click the Show all checkbox to display it.

when I import an m2m studio (1.0.2 win) project into 1.1.0 linux , I get a couple of errors:
java.lang.NullPointerException
at org.eclipse.cdt.build.internal.core.scannerconfig.CfgDiscoveredPathManager.getPathInfoCache(CfgDiscoveredPathManager.java:360)
at org.eclipse.cdt.build.internal.core.scannerconfig.CfgDiscoveredPathManager.getCachedPathInfo(CfgDiscoveredPathManager.java:341)
at org.eclipse.cdt.build.internal.core.scannerconfig.CfgDiscoveredPathManager.getCachedPathInfo(CfgDiscoveredPathManager.java:337)
at org.eclipse.cdt.build.internal.core.scannerconfig.CfgDiscoveredPathManager.getCachedPathInfo(CfgDiscoveredPathManager.java:310)
at org.eclipse.cdt.build.internal.core.scannerconfig.CfgDiscoveredPathManager.getDiscoveredInfo(CfgDiscoveredPathManager.java:162)
at org.eclipse.cdt.managedbuilder.internal.dataprovider.ProfileInfoProvider.getEntryValues(ProfileInfoProvider.java:65)
at org.eclipse.cdt.managedbuilder.internal.dataprovider.BuildEntryStorage.getDiscoveredEntries(BuildEntryStorage.java:188)
at org.eclipse.cdt.managedbuilder.internal.dataprovider.BuildEntryStorage.putEntriesToLevel(BuildEntryStorage.java:181)
at org.eclipse.cdt.core.settings.model.util.AbstractEntryStorage.initCache(AbstractEntryStorage.java:71)
at org.eclipse.cdt.core.settings.model.util.AbstractEntryStorage.getEntries(AbstractEntryStorage.java:34)
at org.eclipse.cdt.managedbuilder.internal.dataprovider.BuildLanguageData.getEntries(BuildLanguageData.java:140)
at org.eclipse.cdt.core.settings.model.extension.impl.CDefaultLanguageData.getEntriesToCopy(CDefaultLanguageData.java:97)
at org.eclipse.cdt.core.settings.model.extension.impl.CDefaultLanguageData.createStore(CDefaultLanguageData.java:89)
at org.eclipse.cdt.core.settings.model.extension.impl.CDefaultLanguageData.copySettingsFrom(CDefaultLanguageData.java:82)
at org.eclipse.cdt.internal.core.settings.model.CLanguageSettingCache.copySettingsFrom(CLanguageSettingCache.java:48)
at org.eclipse.cdt.internal.core.settings.model.CLanguageSettingCache.(CLanguageSettingCache.java:37)
at org.eclipse.cdt.internal.core.settings.model.CFolderDescriptionCache.copyLanguageData(CFolderDescriptionCache.java:72)
at org.eclipse.cdt.core.settings.model.extension.impl.CDefaultFolderData.copyDataFrom(CDefaultFolderData.java:56)
at org.eclipse.cdt.internal.core.settings.model.CFolderDescriptionCache.(CFolderDescriptionCache.java:38)
at org.eclipse.cdt.internal.core.settings.model.CConfigurationDescriptionCache.copyFolderData(CConfigurationDescriptionCache.java:193)
at org.eclipse.cdt.core.settings.model.extension.impl.CDefaultConfigurationData.copySettingsFrom(CDefaultConfigurationData.java:113)
at org.eclipse.cdt.internal.core.settings.model.CConfigurationDescriptionCache.loadData(CConfigurationDescriptionCache.java:99)
at org.eclipse.cdt.internal.core.settings.model.CProjectDescription.loadDatas(CProjectDescription.java:194)
at org.eclipse.cdt.internal.core.settings.model.CProjectDescriptionManager.loadProjectDescription(CProjectDescriptionManager.java:1042)
at org.eclipse.cdt.internal.core.settings.model.CProjectDescriptionManager.getProjectDescription(CProjectDescriptionManager.java:547)
at org.eclipse.cdt.internal.core.settings.model.CProjectDescriptionManager.getProjectDescription(CProjectDescriptionManager.java:523)
at org.eclipse.cdt.internal.core.settings.model.CProjectDescriptionManager.getProjectDescription(CProjectDescriptionManager.java:515)
at org.eclipse.cdt.internal.core.model.CProject.computeSourceRoots(CProject.java:605)
at org.eclipse.cdt.internal.core.model.CProject.computeChildren(CProject.java:626)
at org.eclipse.cdt.internal.core.model.CProject.buildStructure(CProject.java:590)
at org.eclipse.cdt.internal.core.model.Openable.generateInfos(Openable.java:269)
at org.eclipse.cdt.internal.core.model.CElement.openWhenClosed(CElement.java:424)
at org.eclipse.cdt.internal.core.model.CElement.getElementInfo(CElement.java:303)
at org.eclipse.cdt.internal.core.model.CElement.getElementInfo(CElement.java:293)
at org.eclipse.cdt.internal.core.model.Parent.getChildren(Parent.java:55)
at org.eclipse.cdt.internal.core.model.CModelManager.create(CModelManager.java:265)
at org.eclipse.cdt.internal.core.model.CModelManager.create(CModelManager.java:242)
at org.eclipse.cdt.core.model.CoreModel.create(CoreModel.java:142)
at org.eclipse.cdt.internal.ui.navigator.CNavigatorContentProvider.convertToCElements(CNavigatorContentProvider.java:435)
at org.eclipse.cdt.internal.ui.navigator.CNavigatorContentProvider.interceptUpdate(CNavigatorContentProvider.java:385)
at org.eclipse.ui.internal.navigator.NavigatorPipelineService.pipelineInterceptUpdate(NavigatorPipelineService.java:327)
at org.eclipse.ui.internal.navigator.NavigatorPipelineService.interceptUpdate(NavigatorPipelineService.java:309)
at org.eclipse.ui.navigator.CommonViewer.update(CommonViewer.java:440)
at org.eclipse.jface.viewers.StructuredViewer.update(StructuredViewer.java:1908)
at org.eclipse.jface.viewers.StructuredViewer.handleLabelProviderChanged(StructuredViewer.java:1118)
at org.eclipse.ui.navigator.CommonViewer.handleLabelProviderChanged(CommonViewer.java:177)
at org.eclipse.jface.viewers.ContentViewer$1.labelProviderChanged(ContentViewer.java:97)
at org.eclipse.ui.internal.navigator.NavigatorContentServiceLabelProvider$1.run(NavigatorContentServiceLabelProvider.java:337)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.ui.internal.navigator.NavigatorContentServiceLabelProvider.fireLabelProviderChanged(NavigatorContentServiceLabelProvider.java:335)
at org.eclipse.ui.internal.navigator.NavigatorContentServiceLabelProvider.labelProviderChanged(NavigatorContentServiceLabelProvider.java:390)
at org.eclipse.jdt.ui.ProblemsLabelDecorator.fireProblemsChanged(ProblemsLabelDecorator.java:386)
at org.eclipse.jdt.ui.ProblemsLabelDecorator.access$0(ProblemsLabelDecorator.java:381)
at org.eclipse.jdt.ui.ProblemsLabelDecorator$1.problemsChanged(ProblemsLabelDecorator.java:361)
at org.eclipse.jdt.internal.ui.viewsupport.ProblemMarkerManager.runPendingUpdates(ProblemMarkerManager.java:240)
at org.eclipse.jdt.internal.ui.viewsupport.ProblemMarkerManager.access$0(ProblemMarkerManager.java:223)
at org.eclipse.jdt.internal.ui.viewsupport.ProblemMarkerManager$1.runInUIThread(ProblemMarkerManager.java:211)
at org.eclipse.ui.progress.UIJob$1.run(UIJob.java:94)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3378)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3036)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2384)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2348)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2200)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:495)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:490)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)

and some warnings:
eclipse.buildId=M20090211-1700
java.version=1.6.0_14
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_US
Command-line arguments: -os linux -ws gtk -arch x86

This is a continuation of log file /home/luca/Work/development/wavecom/workspace/.metadata/.bak_0.log
Created Time: 2009-08-18 10:38:13.785

Warning
Tue Aug 18 10:38:22 CEST 2009
Unable to locate $os$/dd path in com.wavecom.openat.ide.ebs.armelfgcc bundle

thanks

Luca

if can help
importing the same project in m2m studio 1.1 for win it works

I found the problem:
old projects contains the mingw build configuration that on linux version not exists :slight_smile:
I tried the import ‘existing openat studio projects’ but the imported project have the same issue
now the problem is that projects are incompatible between linux and windows.
is possible to implement a workaround like a dummy mingw configuration on linux?

Thanks for your investigation.
Did you make the try of importing a project which does not contain a MinGW build configuration? Is it working?

For who will try to use the new m2m I write down some mandatory steps:
open packages manager perspective
click on add new repository
select folder (i copied the openat installation from windows to linux)
then select the new repository and with right click select install packages
now a restart of eclipse is needed

I tried the following:
created a new project with name ‘test’ and with the needed plugins, then copied the .cproject from test to old project and replaced all occurrence of ‘test’ with the name of the old project
it works on linux.

This is a bug specific to M2M Studio plug-ins when they are installed over an existing Eclipse platform (whatever is the OS, win32 or linux).
As a workaround, please download the following file (http://www.wavecom.com/eclipseUpdates/m2mstudio/plugins/org.eclipse.equinox.p2.ui_1.0.4.R34x_v20090123.jar) and replace the one existing in the plugins directory of your Eclipse installation.
This will fix the need for restart bug.

Please advise if this fixes also the project import bug or not.

thanks I will try it asap,

a think… the m2m 1.1 on linux is several time faster in comparison to m2m 1.0.2 on win.
My opinion is that the m2m 1.1 is better: good job guys :slight_smile:

Thanks for your feedback, and don’t hesitate to continue testing this Linux version and posting every (constructive :wink: ) remark you have :exclamation:

I installed the plugin (got from the other updatesite) and restarted eclipse , but the import still fails.

another think: on windows when I run the application (non rte) the connection is done automagically (cool) the download starts, but the application is not started. is correct?

thanks

What is the “other update site”?
I made the try this morning, and the fix just works…

[ 08:59 AM ] dpo@frilmlnxcpl02 ~/eclipse/eclipse $ ls plugins/*org.eclipse.equinox.p2.ui*
-rw-r--r-- 1 dpo nfsgroup 375575 2009-02-23 19:18 plugins/__org.eclipse.equinox.p2.ui_1.0.4.R34x_v20090123.jar__
-rw-r--r-- 1 dpo nfsgroup 357539 2009-08-24 09:18 plugins/org.eclipse.equinox.p2.ui_1.0.4.R34x_v20090123.jar

Please note the file size above (the xx version is the “old” buggy one, the other is the “new” functional one).

Seems to be a regression since 1.1.0; point logged for correction in next release.
(By the way, even if it is a typo, I like the “automagically” word :wink: )

wavecom.com/eclipseUpdates/m2mstudioProduct
I suppose is the windows update site

is not a typo :laughing: , I like this word too, some kind of automations are better explained with this word.

thanks,
Luca

http://www.wavecom.com/eclipseUpdates/m2mstudioProduct is the update site for the full Windows application (including all Eclipse plug-ins requirements)
http://www.wavecom.com/eclipseUpdates/m2mstudio is the update site containing only the M2M Studio plug-ins, to be installed over an existing Eclipse platform (whatever is the OS).
The plug-in we are talking about is the same on both update sites. Did you make the size check?

I installed from scratch but the when I import the repository from folder, the behavior is the same: eclipse must restart for to see installed adl plugins
here my output of ls
ll plugins/org.eclipse.equinox.p2.ui
-rw-r–r-- 1 luca luca 375575 2009-02-23 20:18 plugins/org.eclipse.equinox.p2.ui_1.0.4.R34x_v20090123.jar
-rw-r–r-- 1 luca luca 128927 2009-02-23 20:18 plugins/org.eclipse.equinox.p2.ui.sdk_1.0.1.R34x_v20081029.jar

Please note the date: you still use the old plug-in version. The fixed one has been generated on 2009-08-12 (cf my own ls result above; obviously it shows “download date” and not the file creation date…)

I agree but that means that the installation procedure will require to install this plugin manually because it will not taken from update site

Well, this is exactly the problem, as I wrote in a previous post:

ok thanks