在 Ubuntu 18.04 上安装 eBUS SDK 5.1.5

在 Ubuntu 18.04 上安装 eBUS SDK 5.1.5

我最近购买了 PhotonFocus 相机,我想将其与Ubuntu 18.04。 我见过这里为此我需要eBUS SDK6.x. 但是,从这里我只能下载 5.1.5 版本。我有什么选择?

当我尝试安装版本 5.1.5 的 .deb 时,我得到以下输出:

(Reading database ... 468606 files and directories currently installed.)
Preparing to unpack eBUS_SDK_Ubuntu-x86_64-5.1.5-4563.deb ...
Removing /etc/ld.so.conf.d/eBUS_SDK.conf.
Reloading library path.
eBUS daemon is running: stopping the service.
Disabling automatic startup of eBUSd.
Removing /etc/init.d/eBUSd.
The /etc/udev/rules.d/80-drivers-eBUSSDK-28b7.rules rule has been removed.
The /etc/udev/rules.d/80-drivers-eBUSSDK-14fb.rules rule has been removed.
Cannot uninstall ebUniversalProForEthernet: it is not installed.
Unpacking ebus_sdk_ubuntu-x86_64 (5.1.5) over (5.1.5) ...
Setting up ebus_sdk_ubuntu-x86_64 (5.1.5) ...
Creating /etc/ld.so.conf.d/eBUS_SDK.conf.
Reloading library path.
*********************************************
  Build ebUniversalProForEthernet-x86_64.ko
*********************************************

Using output folder /opt/pleora/ebus_sdk/Ubuntu-x86_64/module
Using kernel from folder /lib/modules/4.15.0-65-generic/build
Invoking makefile to build the ebUniversalProForEthernet-x86_64.ko module
make: Entering directory '/opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet'
make[1]: Entering directory '/usr/src/linux-headers-4.15.0-65-generic'
  CC [M]  /opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/LFT_Module.o
  CC [M]  /opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/NET_KMLRXPacket.o
  CC [M]  /opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/NET_KMLUtil.o
  CC [M]  /opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/OS_KMLEvent.o
  CC [M]  /opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/OS_KMLGCCCompiler.o
  CC [M]  /opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/OS_KMLInit.o
  CC [M]  /opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/OS_KMLLock.o
  CC [M]  /opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/OS_KMLMemory.o
  CC [M]  /opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/OS_KMLMemoryMap.o
  CC [M]  /opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/OS_KMLNetwork.o
  CC [M]  /opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/OS_KMLString.o
  CC [M]  /opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/OS_KMLSystem.o
  CC [M]  /opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/OS_KMLRWLock.o
  CC [M]  /opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/OS_KMLTime.o
  CC [M]  /opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/OS_KMLTimer.o
/opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/OS_KMLTimer.c: In function ‘OS_TimerCreate’:
/opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/OS_KMLTimer.c:61:5: error: implicit declaration of function ‘init_timer’; did you mean ‘init_timers’? [-Werror=implicit-function-declaration]
     init_timer( lTimer );
     ^~~~~~~~~~
     init_timers
/opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/OS_KMLTimer.c:64:11: error: ‘struct timer_list’ has no member named ‘data’
     lTimer->data = ( unsigned long ) aTimer;
           ^~
/opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/OS_KMLTimer.c:70:26: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
         lTimer->function = OS_TimerPeriodicInternalFunc;
                          ^
/opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/OS_KMLTimer.c:74:26: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
         lTimer->function = OS_TimerInternalFunc;
                          ^
cc1: some warnings being treated as errors
scripts/Makefile.build:330: recipe for target '/opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/OS_KMLTimer.o' failed
make[2]: *** [/opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/OS_KMLTimer.o] Error 1
Makefile:1571: recipe for target '_module_/opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet' failed
make[1]: *** [_module_/opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-65-generic'
Makefile:28: recipe for target 'all' failed
make: *** [all] Error 2
make: Leaving directory '/opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet'
Error: *** Fail to create the module ebUniversalProForEthernet-x86_64.ko ***
Driver build failed, skipping installation.
Setting rp_filter mode to No source validation.
  For more information, read the RHEL knowledge note:
  https://access.redhat.com/knowledge/solutions/53031
Restarting network stack.
Configuring eBUSd for automatic startup.
Starting eBUS daemon.
The /etc/udev/rules.d/80-drivers-eBUSSDK-28b7.rules rule has been created.
The /etc/udev/rules.d/80-drivers-eBUSSDK-14fb.rules rule has been created.

Installation summary:
set_puregev_env script generation      [  OK  ]
Update libraries path                  [  OK  ]
eBUS Universal Pro driver build        [ FAIL ]
eBUS Universal Pro driver installation [ FAIL ]
set_rp_filter.sh configuration         [  OK  ]
eBUS daemon installation               [  OK  ]

Installation complete.
eBUS SDK installed in /opt/pleora/ebus_sdk/Ubuntu-x86_64

Processing triggers for libc-bin (2.27-3ubuntu1) ...

我也尝试过构建驱动程序:

miguel@miguel-ubuntu:/opt/pleora/ebus_sdk/Ubuntu-x86_64/module$ sudo ./build.sh --kernel=/usr/src/linux-headers-4.15.0-65

但我收到以下错误:

*********************************************
  Build ebUniversalProForEthernet-x86_64.ko
*********************************************

Using output folder /opt/pleora/ebus_sdk/Ubuntu-x86_64/module
Using kernel from folder /usr/src/linux-headers-4.15.0-65
Invoking makefile to build the ebUniversalProForEthernet-x86_64.ko module
make: Entering directory '/opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet'
make[1]: Entering directory '/usr/src/linux-headers-4.15.0-65'

  ERROR: Kernel configuration is invalid.
         include/generated/autoconf.h or include/config/auto.conf are missing.
         Run 'make oldconfig && make prepare' on kernel src to fix it.


  WARNING: Symbol version dump ./Module.symvers
           is missing; modules will have no dependencies and modversions.

  CC [M]  /opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/LFT_Module.o
In file included from <command-line>:0:0:
././include/linux/kconfig.h:5:10: fatal error: generated/autoconf.h: No such file or directory
 #include <generated/autoconf.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
scripts/Makefile.build:330: recipe for target '/opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/LFT_Module.o' failed
make[2]: *** [/opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet/LFT_Module.o] Error 1
Makefile:1571: recipe for target '_module_/opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet' failed
make[1]: *** [_module_/opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-65'
Makefile:28: recipe for target 'all' failed
make: *** [all] Error 2
make: Leaving directory '/opt/pleora/ebus_sdk/Ubuntu-x86_64/module/ebUniversalProForEthernet'
Error: *** Fail to create the module ebUniversalProForEthernet-x86_64.ko ***

提前致谢。

答案1

我也遇到了这个问题。Pleora 不再提供 5 版以后的内核支持4.14。你只能选择付费购买 6 版或尝试自己修补内核模块。我一直在尝试修补内核模块,但改动很大,目前还没有成功。

答案2

这可能是内核版本问题。我在使用 Bus SDK 和 Ubuntu 16.04 时也遇到了同样的问题。解决办法是从 https://kernel.ubuntu.com/~kernel-ppa/mainline/

下载以下文件:

linux-头文件-xxxxxx-通用-xxxxxx_amd64.deb

linux-headers-xxxxxx_all.deb

linux-镜像-xxxxxx-通用-xxxxxx_amd64.deb

在安装其他内核之前,获取module-init-tools: sudo apt install -y module-init-tools

然后导航到包含下载的内核文件的文件夹并安装它们(如果不起作用,只需更改安装顺序):

sudo dpkg -i linux-headers-xxxxxx_all.deb

sudo dpkg -i linux-image-xxxxxx-generic-xxxxxx_amd64.deb

sudo dpkg -i linux-headers-xxxxxx-generic-xxxxxx_amd64.deb

要启动新内核,请在启动过程中按 Shift 键进入 GRUB。在子菜单中选择新内核并继续启动。

现在再次尝试安装 eBUS SDK

相关内容