For those curious, the problem turned out to be a malfunctioning 'realpath' 
system call on that device. That caused the jvm to fail to load the native lib. 

Thanks for responses to my call for help!

Matt

----- Original Message -----
From: Richard S. Hall <[email protected]>
To: [email protected]
Sent: Wed, 16 Sep 2009 09:08:59 -0500 (CDT)
Subject: Re: Cannot load native library

On 9/16/09 1:06, Matt Tennant wrote:
> Hi all,
>
> I managed to install ldd on my device, and the results show nothing wrong 
> that I can see:
>
> # ldd librxtxSerial.so
>          libpthread.so.0 =>  /lib/libpthread.so.0 (0x00000000)
>          libc.so.0 =>  /lib/libc.so.0 (0x00000000)
>          /lib/ld-uClibc.so.0 =>  /lib/ld-uClibc.so.0 (0x00000000)
> # ls /lib/libpthread.so.0
> /lib/libpthread.so.0
> # ls /lib/libc.so.0
> /lib/libc.so.0
> # ls /lib/ld-uClibc.so.0
> /lib/ld-uClibc.so.0
> # pwd
> /var/lib/fluid/osgi-config/bundle9/version0.0/lib/native/linux/mips
>
>
> Does anybody know if I can get more information out of Felix?
>
> Does anybody know if the following message:
> ERROR: JarContent: Unable to create library directory.
>    

That should be occurring in JarContent.getEntryAsNativeLibrary().

-> richard

> is coming from Felix?  If I try to install the bundle interactively, it fails 
> and that is one of the messages.  As far as I can tell, I cannot easily get 
> the source code for the Felix framework to check myself (although I can 
> download the source code of bundles from 
> http://felix.apache.org/site/downloads.cgi, just not for the framework 
> itself).
>
> Any help appreciated,
> Matt
>
>
> ----- Original Message -----
> From: "Matt Tennant"<[email protected]>
> To: [email protected]
> Sent: Tuesday, September 15, 2009 12:03:31 PM GMT -08:00 US/Canada Pacific
> Subject: Re: Cannot load native library
>
>
> Hi Chris,
>
> As it happens, the device does not have ldd installed.  I am looking into 
> getting the source code for ldd, but in any case thank you for your response.
>
> Cheers,
> Matt
>
> ----- Original Message -----
> From: "Chris Custine"<[email protected]>
> To: [email protected]
> Sent: Monday, September 14, 2009 5:13:32 PM GMT -08:00 US/Canada Pacific
> Subject: Re: Cannot load native library
>
> I could be mistaken, but IIRC you can also get this error if the library is
> linked against another lib that is missing.  On linux you can usually figure
> these out with ldd.
> ldd -v
> /var/lib/fluid/osgi-config/bundle9/version0.0/lib/native/linux/mips/librxtxSerial.so
>
> Not sure if you have that option on your device, but it might be worth a
> try.
>
> Chris
> --
> Chris Custine
> FUSESource :: http://fusesource.com
> My Blog :: http://blog.organicelement.com
> Apache ServiceMix :: http://servicemix.apache.org
> Apache Directory Server :: http://directory.apache.org
>
>
> On Mon, Sep 14, 2009 at 5:13 PM, Matt Tennant<[email protected]>  wrote:
>
>    
>> Hi all,
>>
>> I have a problem that has me stumped, and I'm looking for any help I can
>> get.  I recently ported our company's java code to OSGi bundles, usually
>> running in the Felix framework and embedded in a device with phoneME JVM.
>>   Everything works great except for a couple of issues, one of which is that
>> on one of our devices the native libraries won't load.  I get an error like
>> this:
>>
>> Uncaught Exception in thread Serial Communications Thread:
>> java.lang.UnsatisfiedLinkError Can't load
>> /var/lib/fluid/osgi-config/bundle9/version0.0/lib/native/linux/mips/librxtxSerial.so
>> java.lang.ClassLoader.loadLibraryInternal(Unknown Source)
>>   java.lang.ClassLoader.loadLibrary(Unknown Source)
>>   java.lang.Runtime.loadLibrary0(Unknown Source)
>>   java.lang.System.loadLibrary(Unknown Source)
>>   gnu.io.RXTXPort.<clinit>(Unknown Source)
>>   java.lang.Class.runStaticInitializers(Unknown Source)
>>   com.fourhome.zwave.SerialComm.run(Unknown Source)
>>   java.lang.Thread.run(Unknown Source)
>>   java.lang.Thread.startup(Unknown Source)
>>
>>
>> Even though that library file is there:
>>
>> # ls
>> /var/lib/fluid/osgi-config/bundle9/version0.0/lib/native/linux/mips/librxtxSerial.so
>>
>> /var/lib/fluid/osgi-config/bundle9/version0.0/lib/native/linux/mips/librxtxSerial.so
>> # cd /var/lib/fluid/osgi-config/bundle9/version0.0/lib/native/linux/mips/
>> # ls -l
>> -rw-------    1 0        0           94351 Sep 14 10:46 librxtxSerial.so
>>
>> I'm starting the bundles in the config.properties file at startup time
>> (pasted below).  I've also tried starting everything but the problematic
>> zwave.jar bundle, and then starting that one interactively.  When I do that,
>> I get:
>>
>> ->  install file:/usr/lib/fluid/plugins/zwave.jar
>> ERROR: JarContent: Unable to create library directory.
>> removing /var/lib/fluid/osgi-config/bundle15/bundle.id
>> rm ret -1
>> unlinking /var/lib/fluid/osgi-config/bundle15/bundle.id
>> b 0
>> removing /var/lib/fluid/osgi-config/bundle15/bundle.location
>> rm ret -1
>> unlinking /var/lib/fluid/osgi-config/bundle15/bundle.location
>> b 0
>> removing /var/lib/fluid/osgi-config/bundle15/version0.0/bundle.jar
>> rm ret -1
>> unlinking /var/lib/fluid/osgi-config/bundle15/version0.0/bundle.jar
>> b 0
>> removing /var/lib/fluid/osgi-config/bundle15/version0.0/revision.location
>> rm ret -1
>> unlinking /var/lib/fluid/osgi-config/bundle15/version0.0/revision.location
>> b 0
>> removing /var/lib/fluid/osgi-config/bundle15/version0.0
>> rm ret 0
>> removing /var/lib/fluid/osgi-config/bundle15
>> rm ret 0
>> org.osgi.framework.BundleException: Native library does not exist:
>> native/linux/mips/librxtxSerial.so
>>         at org.apache.felix.framework.searchpolicy.ModuleImpl.<init>(Unknown
>> Source)
>>         at org.apache.felix.framework.BundleImpl.createModule(Unknown
>> Source)
>>         at org.apache.felix.framework.BundleImpl.<init>(Unknown Source)
>>         at org.apache.felix.framework.Felix.installBundle(Unknown Source)
>>         at org.apache.felix.framework.Felix.installBundle(Unknown Source)
>>         at
>> org.apache.felix.framework.BundleContextImpl.installBundle(Unknown Source)
>>         at org.apache.felix.shell.impl.InstallCommandImpl.install(Unknown
>> Source)
>>         at org.apache.felix.shell.impl.InstallCommandImpl.execute(Unknown
>> Source)
>>         at
>> org.apache.felix.shell.impl.Activator$ShellServiceImpl.executeCommand(Unknown
>> Source)
>>         at org.apache.felix.shell.tui.Activator$ShellTuiRunnable.run(Unknown
>> Source)
>>         at java.lang.Thread.run(Unknown Source)
>>         at java.lang.Thread.startup(Unknown Source)
>> org.osgi.framework.BundleException: Native library does not exist:
>> native/linux/mips/librxtxSerial.so
>>
>> In particular, the line that says "ERROR: JarContent: Unable to create
>> library directory." seems promising.  When I do things this way, the bundle
>> is never installed and the bundle directory is never created.  But I don't
>> know why.
>>
>> What I'm looking for is any advice on how to tease more information out of
>> Felix about what the problem is with that library.  Note that this setup
>> works fine on at least three other embedded platforms as well as on my linux
>> PC.  Any help at all is very much appreciated, and I mean that.  If there is
>> any additional information that would help I can get it.  I've pasted below
>> some other misc. stuff.
>>
>> Thank you,
>> Matt
>>
>>
>> Start command:
>> -----------------------------
>> Starting fluid core with this command: 'cvm -Xmx8m
>> -Djava.net.preferIPv4Stack=true -Dcore.data.dir=/var/lib/fluid
>> -Dcore.lon.enable=false -Dcore.manufacturer.name=4Home
>> -Dcore.model.number=CP2000 -Dcore.config.protect=true
>> -Dcore.config.password=4444444444 -Dcore.config.user=4HDEFAULT
>> -Dcore.net.interface=br0 -Dcore.zwave1.interface=/dev/tts/1
>> -Dcore.logging.level=4 -Dcore.conf.file=/var/lib/fluid/fluid-core.conf
>> -Dorg.osgi.framework.storage=/var/lib/fluid/osgi-config
>> -Dfelix.config.properties=file:/var/lib/fluid/osgi-config/config.properties
>> -jar lib/felix.jar'
>>
>> config.properties
>> -----------------------------
>> felix.log.level=4
>> felix.auto.start.1= file:lib/commons.jar
>> file:lib/org.apache.felix.configadmin-1.0.10.jar
>> file:lib/org.apache.felix.http.jetty-1.0.1.jar
>> file:lib/org.apache.felix.log-1.0.0.jar
>> file:lib/org.apache.felix.shell-1.2.0.jar
>> file:lib/org.apache.felix.shell.tui-1.2.0.jar file:lib/RXTXcomm.jar
>> file:lib/upnplib.jar file:core.jar file:plugins/ipc.jar file:plugins/led.jar
>> file:plugins/ndc.jar file:plugins/pgw.jar file:plugins/portmap.jar
>> file:plugins/tweenagent.jar file:plugins/upnp.jar file:plugins/zwave.jar
>> felix.service.urlhandlers=false
>> org.apache.felix.http.nio=false
>> org.ungoverned.osgi.bundle.https.enabled=false
>>
>> Manifest of the zwave.jar bundle:
>> -----------------------------
>> Ant-Version                             Apache Ant 1.7.1
>> Bundle-Activator                        com.fourhome.zwave.ZWaveClient
>> Bundle-ManifestVersion                  2
>> Bundle-Name                             4Home ZWave Client
>> Bundle-NativeCode
>> native/linux/mips/librxtxSerial.so;osname=linux;processor=mips
>> Bundle-SymbolicName                     ZWave
>> Bundle-Version                          3.1.4
>> Created-By                              14.0-b16 (Sun Microsystems Inc.)
>> Import-Package                          com.fourhome.commons,
>> org.osgi.framework;version="1.3.0"
>> Manifest-Version                        1.0
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>>      
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>    

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to