当前位置: 首页 > 知识库问答 >
问题:

在我的树莓中安装rxtx包

商骞仕
2023-03-14

我想在我的Raspberry Pi上安装一个rxtx捆绑包,该捆绑包将在KURA平台上运行(Equinox是Kura的OSGi容器)

我使用:sudo apt get install librxtx java安装了rxtx本机库

这个所以安装在目录:/usr/lib/jni上/

pi@raspberrypi /usr/lib/jni $ ls
librxtxI2C-2.2pre1.so       librxtxParallel.so     librxtxRS485-2.2pre1.so  librxtxSerial-2.2pre1.so
librxtxI2C.so               librxtxRaw-2.2pre1.so  librxtxRS485.so          librxtxSerial.so
librxtxParallel-2.2pre1.so  librxtxRaw.so  

然后我按照这个链接将rxtx库包装成一个捆绑包http://rxtx.qbang.org/wiki/index.php/Wrapping_RXTX_in_an_Eclipse_Plugin

我在捆绑包清单中添加了以下内容:

Bundle-NativeCode: /usr/lib/jni/librxtxSerial.so;osname="Linux";processor="armv6l"

因为我的操作系统类型是linux,我的架构是ARM:

pi@raspberrypi ~ $ cat /proc/sys/kernel/{ostype,osrelease,version}
Linux
3.18.11+
#781 PREEMPT Tue Apr 21 18:02:18 BST 2015

pi@raspberrypi ~ $ arch
armv6l

但我仍然无法安装捆绑包,我遇到了以下错误:

!ENTRY  1 0 2015-06-19 10:19:40.982
!MESSAGE [IAgent][RemoteBundleAdminImpl@17f36b1] [startBundle] Bundle cannot be started: Error[code=-6000;message=Failed to start bundle: The bundle "RXTX_Bundle_1.0.0 [77]" could not be resolved. Reason: No match found for native code: /usr/lib/jni/librxtxSerial.so; processor=armv6l; osname=Linux;details=null]
!STACK 0
org.osgi.framework.BundleException: The bundle "RXTX_Bundle_1.0.0 [77]" could not be resolved. Reason: No match found for native code: /usr/lib/jni/librxtxSerial.so; processor=armv6l; osname=Linux
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolverError(AbstractBundle.java:1332)
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolutionFailureException(AbstractBundle.java:1316)
        at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:323)
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:300)
        at org.tigris.mtoolkit.iagent.internal.rpc.RemoteBundleAdminImpl.startBundle(RemoteBundleAdminImpl.java:230)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.tigris.mtoolkit.iagent.internal.pmp.InvocationThread.run(InvocationThread.java:54)
        at org.tigris.mtoolkit.iagent.internal.utils.ThreadPool$Worker.run(ThreadPool.java:179)
        at java.lang.Thread.run(Thread.java:724)

我做错了什么?非常感谢你的帮助!

遵循@豪尔赫·马丁内斯建议后的更新:这是我更新的清单行:

Bundle-NativeCode: nativelib/librxtxSerial.so;osname="Linux";processor="armv6l"

共有3个答案

咸承教
2023-03-14

使用这个捆绑包rxtx osgi。它应该包含你所需要的一切。

邢寒
2023-03-14

您需要将本机库嵌入包中(在jar中或片段中)。

也就是说,如果你把你的图书馆放在这里:

/this/is/yournative/package/librxtxSerial.so

您可以使用此清单条目:

Bundle-NativeCode: this/is/yournative/package/librxtxSerial.so;osname="Linux";processor="armv6l"

请注意,OSGi通过将本机lib提取到临时文件夹,然后加载它们来加载本机lib。

公良天逸
2023-03-14

豪尔赫的回答是正确的。您是否实际检查了Eclipse创建的捆绑包,以确认您的nativelib目录是否存在?从Eclipse导出捆绑包时,必须确保指定构建中包含哪些文件夹和文件。这是通过打开构建来完成的。属性文件,并在要包含的文件夹/文件旁边打勾。

 类似资料:
  • Hass.io 系统 Hass.io 是 Home Assistant 制作的特殊镜像,详细文档请移步至 Hass.io 专题页。

  • 简介 Hassbian 系统是 Home Assistant 开发团队基于树莓派官方系统 Raspbian 制作的操作系统。其最大特点是带有专用工具包 hassbian-config,能够极大方便与 Home Assistant 有关插件和依赖的安装与配置。 Hassbian 没有图形化操作界面,基于 Raspbian Lite 最小镜像。 安装方法 下载并烧录 Hassbian 原版系统镜像。

  • 原生 Raspbian 系统 方法一:All-in-one 一键安装(失效) 注意 此安装方法已停止维护,不保证对 0.55.0 及之后 Home Assistant 的可用性。 安装方法 下载并烧录 官方 Raspbian 系统,推荐新手使用带有图形化操作界面的 Raspbian with Desktop。 如需使用无线网,请在初次启动前,将 TF 卡接入电脑。在 boot 目录下新建 wpa_

  • 在树莓派上安装 Home Assistant,有四款系统镜像可供选择,以下是各镜像比较: Raspbian Hassbian Mossbian Hass.io 内核系统 Raspbian Raspbian Raspbian resinOS+Docker 图形操作界面 √ ✘ √ √ 开放性 高 高 高 低 安装难度 高 低 低 低 配置难度 中 中 中 低 后期支持度 高 高 高 中 本地化程度

  • 拿到树莓派后,你需要进行一些初始化设置,以便于用起来更方便。除此之外,你可能需要安装一些软件,以便树莓派能实现更加强大的功能。 常见初始化设置 1)设置密码: 树莓派的默认用户名是pi,没有密码。这意味着别人可以随意使用你的树莓派。你可以在终端中为pi用户设置密码: $sudo passwd pi 2)拓展文件系统 一开始的Raspbian镜像只有4G。这意味着你的树莓派也只会使用SD卡上4G的空

  • 树莓派是一款低成本的电脑,因此它的一个应用场景就是充当小型的服务器。我平时就会在自己的局域网下接入一个树莓派,做一些数据备份和上传的工作。这种时候,我们希望减少对树莓派的直接操作,就可以采用一些任务规划的手段,来让树莓派自动执行任务。 shutdown reboot sleep 10 用cron规划任务 cron是UNIX系统下常用的任务规划软件。你可以在cron中要求系统在特定的时间执行特定的任