Hi there,
I am currently trying to move my NAS from openmediavault to FreeNAS and so I'm in the process of getting everything to run in Jails. For my home automation, I use fhem, which I have set up in a jail already. Now I am trying to get the software "hmland" to run, which is needed to connect to my HomeMatic Hardware via a usb stick. The software is available here: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/hmcfgusb
However just running as suggested by the manual in the folder hmcfgsub fails:
Doing some research, I found out that libusb-1.0 is already included in FreeBSDbut under a different name. Therefore in the files and I changed the lines
to and in Makefile the lines
to
because that's what I figured are the correct paths in FreeBSD. Now compiling runs for a bit but then fails at a later point:
After this error I figured I'd remove the entry "-libusb" in the Makefile at LDLIBS which yields the following result:
I did some googling on that too, but came upt with nothing that got me any further. Does somebody with more FreeBSD experience maybe have an Idea on what to try?
Thanks and best regards,
Leo
I am currently trying to move my NAS from openmediavault to FreeNAS and so I'm in the process of getting everything to run in Jails. For my home automation, I use fhem, which I have set up in a jail already. Now I am trying to get the software "hmland" to run, which is needed to connect to my HomeMatic Hardware via a usb stick. The software is available here: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/hmcfgusb
However just running
Code:
gmake
Code:
root@fhem:/home/fhem/apps/hmcfgusb # gmake gcc -MMD -O2 -Wall -I/opt/local/include -g -c -o hmland.o hmland.c hmland.c:41:31: warning: libusb-1.0/libusb.h: No such file or directory In file included from hmland.c:45: hmcfgusb.h:27: error: expected specifier-qualifier-list before 'libusb_device_handle' hmland.c: In function 'comm': hmland.c:516: error: 'struct hmcfgusb_dev' has no member named 'bootloader' hmland.c:543: error: 'struct hmcfgusb_dev' has no member named 'opened_at' hmland.c:608: error: 'struct hmcfgusb_dev' has no member named 'opened_at' hmland.c:611: error: 'struct hmcfgusb_dev' has no member named 'opened_at' <builtin>: recipe for target 'hmland.o' failed gmake: *** [hmland.o] Error 1
Doing some research, I found out that libusb-1.0 is already included in FreeBSDbut under a different name. Therefore in the files
Code:
hmcfgusb.c
Code:
hmland.c
Code:
#include <libusb-1.0/libusb.h>
Code:
#include <libusb.h>
Code:
CFLAGS=-MMD -O2 -Wall -I/opt/local/include -g LDFLAGS=-L/opt/local/lib LDLIBS=-lusb-1.0 -lrt
Code:
CFLAGS=-MMD -O2 -Wall -I/usr/include -g LDFLAGS=-L/usr/lib LDLIBS=-libusb -lrt
because that's what I figured are the correct paths in FreeBSD. Now compiling runs for a bit but then fails at a later point:
Code:
root@fhem:/home/fhem/apps/hmcfgusb # gmake gcc -MMD -O2 -Wall -I/usr/include -g -c -o hmland.o hmland.c gcc -MMD -O2 -Wall -I/usr/include -g -c -o hmcfgusb.o hmcfgusb.c gcc -MMD -O2 -Wall -I/usr/include -g -c -o util.o util.c gcc -L/usr/lib hmland.o hmcfgusb.o util.o -libusb -lrt -o hmland /usr/bin/ld: cannot find -libusb <builtin>: recipe for target 'hmland' failed gmake: *** [hmland] Error 1
After this error I figured I'd remove the entry "-libusb" in the Makefile at LDLIBS which yields the following result:
Code:
root@fhem:/home/fhem/apps/hmcfgusb # gmake gcc -L/usr/lib hmland.o hmcfgusb.o util.o -lrt -o hmland hmcfgusb.o: In function `hmcfgusb_exit': /home/fhem/apps/hmcfgusb/hmcfgusb.c:600: undefined reference to `libusb_exit' hmcfgusb.o: In function `hmcfgusb_close': /home/fhem/apps/hmcfgusb/hmcfgusb.c:580: undefined reference to `libusb_cancel_transfer' /home/fhem/apps/hmcfgusb/hmcfgusb.c:581: undefined reference to `libusb_handle_events' /home/fhem/apps/hmcfgusb/hmcfgusb.c:584: undefined reference to `libusb_release_interface' /home/fhem/apps/hmcfgusb/hmcfgusb.c:589: undefined reference to `libusb_close' hmcfgusb.o: In function `hmcfgusb_poll': /home/fhem/apps/hmcfgusb/hmcfgusb.c:478: undefined reference to `libusb_get_next_timeout' /home/fhem/apps/hmcfgusb/hmcfgusb.c:523: undefined reference to `libusb_handle_events_timeout_completed' hmcfgusb.o: In function `hmcfgusb_find': /home/fhem/apps/hmcfgusb/hmcfgusb.c:109: undefined reference to `libusb_get_device_list' /home/fhem/apps/hmcfgusb/hmcfgusb.c:118: undefined reference to `libusb_get_device_descriptor' /home/fhem/apps/hmcfgusb/hmcfgusb.c:125: undefined reference to `libusb_open' /home/fhem/apps/hmcfgusb/hmcfgusb.c:135: undefined reference to `libusb_get_string_descriptor_ascii' /home/fhem/apps/hmcfgusb/hmcfgusb.c:147: undefined reference to `libusb_close' /home/fhem/apps/hmcfgusb/hmcfgusb.c:174: undefined reference to `libusb_free_device_list' /home/fhem/apps/hmcfgusb/hmcfgusb.c:152: undefined reference to `libusb_detach_kernel_driver' /home/fhem/apps/hmcfgusb/hmcfgusb.c:155: undefined reference to `libusb_close' /home/fhem/apps/hmcfgusb/hmcfgusb.c:156: undefined reference to `libusb_free_device_list' /home/fhem/apps/hmcfgusb/hmcfgusb.c:160: undefined reference to `libusb_claim_interface' /home/fhem/apps/hmcfgusb/hmcfgusb.c:168: undefined reference to `libusb_free_device_list' /home/fhem/apps/hmcfgusb/hmcfgusb.c:128: undefined reference to `libusb_free_device_list' hmcfgusb.o: In function `hmcfgusb_init': /home/fhem/apps/hmcfgusb/hmcfgusb.c:330: undefined reference to `libusb_init' hmcfgusb.o: In function `hmcfgusb_prepare_int': /home/fhem/apps/hmcfgusb/hmcfgusb.c:244: undefined reference to `libusb_alloc_transfer' /home/fhem/apps/hmcfgusb/hmcfgusb.c:251: undefined reference to `libusb_fill_interrupt_transfer' /home/fhem/apps/hmcfgusb/hmcfgusb.c:256: undefined reference to `libusb_submit_transfer' hmcfgusb.o: In function `hmcfgusb_init': /home/fhem/apps/hmcfgusb/hmcfgusb.c:400: undefined reference to `libusb_get_pollfds' hmcfgusb.o: In function `hmcfgusb_prepare_int': /home/fhem/apps/hmcfgusb/hmcfgusb.c:259: undefined reference to `libusb_free_transfer' hmcfgusb.o: In function `hmcfgusb_init': /home/fhem/apps/hmcfgusb/hmcfgusb.c:425: undefined reference to `libusb_close' /home/fhem/apps/hmcfgusb/hmcfgusb.c:358: undefined reference to `libusb_close' /home/fhem/apps/hmcfgusb/hmcfgusb.c:374: undefined reference to `libusb_close' /home/fhem/apps/hmcfgusb/hmcfgusb.c:421: undefined reference to `libusb_cancel_transfer' /home/fhem/apps/hmcfgusb/hmcfgusb.c:422: undefined reference to `libusb_handle_events' /home/fhem/apps/hmcfgusb/hmcfgusb.c:403: undefined reference to `libusb_cancel_transfer' /home/fhem/apps/hmcfgusb/hmcfgusb.c:404: undefined reference to `libusb_handle_events' hmcfgusb.o: In function `hmcfgusb_interrupt': /home/fhem/apps/hmcfgusb/hmcfgusb.c:301: undefined reference to `libusb_submit_transfer' /home/fhem/apps/hmcfgusb/hmcfgusb.c:310: undefined reference to `libusb_free_transfer' /home/fhem/apps/hmcfgusb/hmcfgusb.c:310: undefined reference to `libusb_free_transfer' hmcfgusb.o: In function `hmcfgusb_send_null_frame': /home/fhem/apps/hmcfgusb/hmcfgusb.c:186: undefined reference to `libusb_interrupt_transfer' hmcfgusb.o: In function `hmcfgusb_send': /home/fhem/apps/hmcfgusb/hmcfgusb.c:208: undefined reference to `libusb_interrupt_transfer' <builtin>: recipe for target 'hmland' failed gmake: *** [hmland] Error 1
I did some googling on that too, but came upt with nothing that got me any further. Does somebody with more FreeBSD experience maybe have an Idea on what to try?
Thanks and best regards,
Leo