How to setup o.e.ecf.examples.raspberrypi.* on the pi [message #1472399] |
Thu, 13 November 2014 16:13  |
Eclipse User |
|
|
|
Hello
I am trying to run the example org.eclipse.ecf.examples.raspberrypi.management on a raspberry pi following this tutorial. After starting the programm the error: "Cannot assign requested address" is thrown repeatedly.
I'm using the ip address of my pi (192.168.1.121) as the host name and I have checked that the port 3288 is not used before. After the startup I can see the port 3288 listening, but I can't find the pi in the Service Discovery view.
In the OSGi log I can see ch.ethz.iks.slp trying to connect to 127.0.1.1. Any pointers on why this might fail and what I can do about it are greatly appriciated!
Versions:
- Equinox Target Components 3.10.0
- ECF OSGi Remote Services SDK 3.9.0
with dependencies
working in Luna RC1
pi@pi01 ~/ecf_raspi_sample $ sudo ./rpimgmthost.sh 192.168.1.121
Hostname: 192.168.1.121
Port: 3288
javaprops=-Decf.generic.server.hostname=192.168.1.121 -Decf.generic.server.port=3288 -Dch.ethz.iks.slp.debug=true -Declipse.ignoreApp=true -Dosgi.noShutdown=true
equinox=plugins/org.eclipse.osgi_3.10.1.v20140909-1633.jar
Debug options:
file:/home/pi/ecf_raspi_sample/.options not found
Time to load bundles: 5643
20:45:46.796 DEBUG ch.ethz.iks.slp - jSLP OSGi started.
20:45:46.807 DEBUG ch.ethz.iks.slp - ServiceEvent REGISTERED [S:{ch.ethz.iks.slp.Advertiser}={service.id=68, service.bundleid=25, service.scope=bundle}]
20:45:46.831 DEBUG ch.ethz.iks.slp - ServiceEvent REGISTERED [S:{ch.ethz.iks.slp.Locator}={service.id=69, service.bundleid=25, service.scope=bundle}]
20:45:46.852 DEBUG ch.ethz.iks.slp - BundleEvent STARTED
20:45:48.505 DEBUG ch.ethz.iks.slp - jSLP is running on the following interfaces: [127.0.1.1]
20:45:48.519 DEBUG ch.ethz.iks.slp - jSLP is using port: 427
20:45:49.220 WARN ch.ethz.iks.slp - Error connecting to: 127.0.1.1
java.net.BindException: Cannot assign requested address
at java.net.PlainDatagramSocketImpl.bind0(Native Method) ~[na:1.8.0]
at java.net.AbstractPlainDatagramSocketImpl.bind(AbstractPlainDatagramSocketImpl.java:93) ~[na:1.8.0]
at java.net.DatagramSocket.bind(DatagramSocket.java:371) ~[na:1.8.0]
at java.net.DatagramSocket.<init>(DatagramSocket.java:222) ~[na:1.8.0]
at java.net.DatagramSocket.<init>(DatagramSocket.java:279) ~[na:1.8.0]
at ch.ethz.iks.slp.impl.SLPCore.daLookup(SLPCore.java:611) ~[na:na]
at ch.ethz.iks.slp.impl.SLPCore.init(SLPCore.java:321) ~[na:na]
at ch.ethz.iks.slp.impl.Activator$2.getService(Activator.java:51) ~[na:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:496) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:619) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.osgi.util.tracker.ServiceTracker.addingService(ServiceTracker.java:414) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:1) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:183) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:318) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:261) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.eclipse.ecf.internal.provider.jslp.Activator.getLocator(Activator.java:64) ~[na:na]
at org.eclipse.ecf.internal.provider.jslp.JSLPDiscoveryJob.run(JSLPDiscoveryJob.java:43) ~[na:na]
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) ~[na:na]
20:45:49.433 ERROR ch.ethz.iks.slp - Exception in initial DA lookup
ch.ethz.iks.slp.ServiceLocationException: Cannot assign requested address
at ch.ethz.iks.slp.impl.SLPCore.daLookup(SLPCore.java:645) ~[na:na]
at ch.ethz.iks.slp.impl.SLPCore.init(SLPCore.java:321) ~[na:na]
at ch.ethz.iks.slp.impl.Activator$2.getService(Activator.java:51) ~[na:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:496) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:619) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.osgi.util.tracker.ServiceTracker.addingService(ServiceTracker.java:414) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:1) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:183) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:318) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:261) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
at org.eclipse.ecf.internal.provider.jslp.Activator.getLocator(Activator.java:64) ~[na:na]
at org.eclipse.ecf.internal.provider.jslp.JSLPDiscoveryJob.run(JSLPDiscoveryJob.java:43) ~[na:na]
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) ~[na:na]
20:45:49.449 DEBUG ch.ethz.iks.slp - DAS FOR SCOPE default: null
Thanks!
Christoph
|
|
|
|
Re: How to setup o.e.ecf.examples.raspberrypi.* on the pi [message #1473626 is a reply to message #1473040] |
Fri, 14 November 2014 15:02   |
Eclipse User |
|
|
|
Hi Markus
thanks for your input! That gets me one step further, but I still get an exception during start up and I still see 127.0.1.1 in the middle of it.
19:43:37.780 [de.kware.osgi.logging.OsgiLogListener@1577674] DEBUG ch.ethz.iks.slp - jSLP is running on the following interfaces: [192.168.1.121]
19:43:37.891 [de.kware.osgi.logging.OsgiLogListener@1577674] DEBUG ch.ethz.iks.slp - jSLP is using port: 427
19:43:38.023 [de.kware.osgi.logging.OsgiLogListener@1577674] DEBUG ch.ethz.iks.slp - DAS FOR SCOPE default: null
19:43:48.527 [de.kware.osgi.logging.OsgiLogListener@1577674] DEBUG ch.ethz.iks.slp - jSLP daemon starting ...
19:43:48.531 [de.kware.osgi.logging.OsgiLogListener@1577674] DEBUG ch.ethz.iks.slp - ServiceDisposalThread sleeping ...
19:43:53.671 [de.kware.osgi.logging.OsgiLogListener@1577674] ERROR ch.ethz.iks.slp - Exception during sending of SRVREG - xid=12298, locale=en_GB, url: service:ecfosgirsvc://ecfosgirsvc://127.0.1.1:32565/osgirsvc_pLfQg8JNIbH5hv4vnyLGnx3IWRA=, serviceType: service:ecfosgirsvc, scopeList: [default], attList: [(ecf.generic.server.hostname=192.168.1.121), (endpoint.service.id=83), (ecf.endpoint.ts=1415994219699), (endpoint.package.version.org.eclipse.ecf.examples.raspberrypi.management=1.0.0), (remote.intents.supported=passByValue exactlyOnce ordered), (ecf.exported.async.interfaces=*), (ecf.rsvc.id=1), (ecf.generic.server.port=3288), (x-28392-SERVICEIDNAME=\FF\62\33\4e\6e\61\58\4a\7a\64\6d\4e\66\63\45\78\6d\55\57\63\34\53\6b\35\4a\59\6b\67\31\61\48\59\30\64\6d\35\35\54\45\64\75\65\44\4e\4a\56\31\4a\42\50\51\3d\3d), (x-28392-PRIORITY=0), (objectClass=org.eclipse.ecf.examples.raspberrypi.management.IRaspberryPi), (remote.configs.supported=ecf.generic.server), (endpoint.framework.uuid=f0c0507f-366c-0014-1229-a389ab0dafb2), (service.imported.configs=ecf.generic.server), (x-28392-WEIGHT=0), (ecf.endpoint.id.ns=org.eclipse.ecf.core.identity.StringID), (ecf.endpoint.id=ecftcp://192.168.1.121:3288/server), (endpoint.id=e8e8a09d-03f4-45f5-8092-4a73d1f95ac0)]
19:43:53.698 [de.kware.osgi.logging.OsgiLogListener@1577674] ERROR ch.ethz.iks.slp - to pi01/127.0.1.1:427
19:43:54.190 [de.kware.osgi.logging.OsgiLogListener@1577674] ERROR ch.ethz.iks.slp - Exception:
java.net.SocketTimeoutException: Receive timed out
at java.net.PlainDatagramSocketImpl.receive0(Native Method) ~[na:1.8.0]
at java.net.AbstractPlainDatagramSocketImpl.receive(AbstractPlainDatagramSocketImpl.java:143) ~[na:1.8.0]
at java.net.DatagramSocket.receive(DatagramSocket.java:781) ~[na:1.8.0]
at ch.ethz.iks.slp.impl.SLPCore.sendMessage(SLPCore.java:725) ~[na:na]
...
19:43:54.543 [de.kware.osgi.logging.OsgiLogListener@1577674] ERROR org.eclipse.ecf.discovery - FrameworkEvent ERROR
org.eclipse.ecf.core.util.ECFRuntimeException: Receive timed out
at org.eclipse.ecf.provider.jslp.container.JSLPDiscoveryContainer.registerService(JSLPDiscoveryContainer.java:190) ~[na:na]
at org.eclipse.ecf.internal.discovery.IServiceInfoServiceListener$1.addingService(IServiceInfoServiceListener.java:39) ~[na:na]
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941) ~[org.eclipse.osgi_3.10.1.v20140909-1633.jar:na]
...
Caused by: ch.ethz.iks.slp.ServiceLocationException: Receive timed out
at ch.ethz.iks.slp.impl.SLPCore.sendMessage(SLPCore.java:743) ~[na:na]
at ch.ethz.iks.slp.impl.AdvertiserImpl.register(AdvertiserImpl.java:121) ~[na:na]
at org.eclipse.ecf.provider.jslp.container.JSLPDiscoveryContainer.registerService(JSLPDiscoveryContainer.java:187) ~[na:na]
And I still don't see the pi in the Service Discovery view.
Any ideas what else I could try?
Smile
Christoph
|
|
|
|
|
Re: How to setup o.e.ecf.examples.raspberrypi.* on the pi [message #1477106 is a reply to message #1474534] |
Mon, 17 November 2014 11:24   |
Eclipse User |
|
|
|
Hi Markus, hi Wim,
thanks for your replies! The weekend has been busy, but now I'm eager to get this working.
@Wim: Thanks for your inspirational talk at ECE in Ludwigsburg! Your presentation was the reason I wanted to try this stuff myself 
I don't know what you mean with "add the property on the remote end". I compared my script to the start script of your pipolos and it looks like you're basically doing the same thing, in the sense that i'm also setting net.slp.interfaces and ecf.generic.server.hostname when I start the server on the pi.
I get the feeling that my issue is probably not connected to ECF but has more to do with the setup of the pi itself. I admit that I am not very komfortable with linux yet.
ifconfig
eth0 Link encap:Ethernet HWaddr b8:27:eb:ab:28:b9
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
wlan0 Link encap:Ethernet HWaddr 00:0d:81:ae:df:05
inet addr:192.168.1.121 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1317 errors:0 dropped:607 overruns:0 frame:0
TX packets:220 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:391016 (381.8 KiB) TX bytes:28622 (27.9 KiB)
I've also tried this with lan (eth0) which uses the ip 192.168.1.120 with the same result. The ip is provided by a dhcp server which reserves 192.168.1.121 for pi01 over wlan0.
/etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1 pi01
I tried to change the last line to "192.168.1.121 pi01" which leads to
16:15:43.322 ERROR ch.ethz.iks.slp - Exception during sending of SRVREG - xid=23438, locale=en_GB, url: service:ecfosgirsvc://ecfosgirsvc://192.168.1.121:32565/osgirsvc_MF/pJaj+VOw71ZqWCthAHXHogLw=, serviceType: service:ecfosgirsvc, scopeList: [default], attList: [(ecf.generic.server.hostname=192.168.1.121), (endpoint.service.id=83), (ecf.endpoint.ts=1416240935602), (endpoint.package.version.org.eclipse.ecf.examples.raspberrypi.management=1.0.0), (remote.intents.supported=passByValue exactlyOnce ordered), (ecf.exported.async.interfaces=*), (ecf.rsvc.id=1), (ecf.generic.server.port=3288), (x-28392-SERVICEIDNAME=\FF\62\33\4e\6e\61\58\4a\7a\64\6d\4e\66\54\55\59\76\63\45\70\68\61\69\74\57\54\33\63\33\4d\56\70\78\56\30\4e\30\61\45\46\49\57\45\68\76\5a\30\78\33\50\51\3d\3d), (x-28392-PRIORITY=0), (objectClass=org.eclipse.ecf.examples.raspberrypi.management.IRaspberryPi), (remote.configs.supported=ecf.generic.server), (endpoint.framework.uuid=404bd8eb-746e-0014-185e-e526cf180d47), (service.imported.configs=ecf.generic.server), (x-28392-WEIGHT=0), (ecf.endpoint.id.ns=org.eclipse.ecf.core.identity.StringID), (ecf.endpoint.id=ecftcp://192.168.1.121:3288/server), (endpoint.id=03f6ccef-743e-4417-98dc-63acb17f8896)]
16:15:43.326 ERROR ch.ethz.iks.slp - to pi01/192.168.1.121:427
16:15:43.825 ERROR ch.ethz.iks.slp - Exception:
java.net.SocketTimeoutException: Receive timed out
at java.net.PlainDatagramSocketImpl.receive0(Native Method) ~[na:1.8.0]
at java.net.AbstractPlainDatagramSocketImpl.receive(AbstractPlainDatagramSocketImpl.java:143
Christoph
|
|
|
|
|
|
|
Re: How to setup o.e.ecf.examples.raspberrypi.* on the pi [message #1483613 is a reply to message #1481283] |
Sat, 22 November 2014 14:46  |
Eclipse User |
|
|
|
Wim Jongman wrote on Thu, 20 November 2014 23:46Are you also running the egg interface? Please note that out of the box pipolos uses a slightly newer version of the raspberry pi examples. In addition, pipolos uses JmDNS and not slp for discovery.
I'll get around to the client after I've played with the basics for a while. I managed to run Scotts original GPIO example today. The next thing I will do is try your enhancements.
Out of curiosity: Why did you choose JmDNS over SLP for pipolos? They seem rather similar and both target LANs?
|
|
|
Powered by
FUDForum. Page generated in 0.03999 seconds