Installera Tellstick på BeagleBone

Moderator: Telldus

Post Reply
Snickarn
Posts: 3
Joined: Fri Mar 17, 2023 9:45 am

Installera Tellstick på BeagleBone

Post by Snickarn »

Hej!

Jag har försökt få igång Telldus-core på mitt BeagleBone men får problem med cmake. CMake är helt nytt för mig och jag har inte lyckats lista ut varför den klagar eftersom mitt libb den klagar på finns där det ska.

BeagleBone är ett litet ARM-baserat kort som kör en redan färdig Linuxdistribution som heter Ångström. Denna distribution innehåller t.ex. inte cmake. Jag hämtade hem den senaste versionen av cmake (källkoden) och byggde en binär av cmake på CPU-kortet (eftersom kompilatorer och annat redan finns där). Det gick bra att bygga ihop cmake.

Sedan hämtade jag hem libftdi och de andra usb libben jag trodde mig behöva. Eftersom jag är ganska ny på detta område har jag provinstallerat allt på min OpenSUSE PC och fått Telldus-core att fungera. Jag har alltstå redan gått igenom alla problem man kan ha i installationen en gång tidigare.

Sedan byggde jag libftdi utan problem och installerade den.

Sedan provade jag att köra cmake på Telldus-core:

Code: Select all

root@beaglebone:/usr/src/telldus-core-2.1.1# cmake .
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Looking for include files CMAKE_HAVE_PTHREAD_H
-- Looking for include files CMAKE_HAVE_PTHREAD_H - found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE 
-- checking for one of the modules 'libftdi'
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
CONFUSE_LIBRARY
    linked by target "telldusd" in directory /usr/src/telldus-core-2.1.1/service

-- Configuring incomplete, errors occurred!
Om det verkligen beror på att den inte hittar libftdi eller om det är någon annan fil den inte hittar hoppas jag någon kan svara på. Vad jag förstår så finns pathen till var libbet ska ligga i filen CMakeCache.txt. Om det stämmer så ligger verkligen mitt libb där.

Code: Select all

root@beaglebone:/usr/src/telldus-core-2.1.1# ls -l /usr/local/lib
total 489
-rw-r--r-- 1 root root  61112 Apr  3 09:45 libftdi.a
lrwxrwxrwx 1 root root     12 Apr  3 09:46 libftdi.so -> libftdi.so.1
lrwxrwxrwx 1 root root     17 Apr  3 09:46 libftdi.so.1 -> libftdi.so.1.20.0
-rwxr-xr-x 1 root root  60388 Apr  3 09:45 libftdi.so.1.20.0
-rw-r--r-- 1 root root 211926 Apr  3 08:56 libusb-1.0.a
-rwxr-xr-x 1 root root    955 Apr  3 08:56 libusb-1.0.la
lrwxrwxrwx 1 root root     19 Apr  3 08:56 libusb-1.0.so -> libusb-1.0.so.0.0.0
lrwxrwxrwx 1 root root     19 Apr  3 08:56 libusb-1.0.so.0 -> libusb-1.0.so.0.0.0
-rwxr-xr-x 1 root root 164261 Apr  3 08:56 libusb-1.0.so.0.0.0
drwxr-xr-x 2 root root   1024 Apr  3 09:46 pkgconfig
Den här Linux-kärnan använder jag.

Code: Select all

# uname -a
Linux beaglebone 3.2.5+ #1 Mon Feb 13 19:22:44 CET 2012 armv7l GNU/Linux
Det vore skönt om någon kan förklara vad som är fel så jag slipper göra egna makefiler för att få ihop Telldus-core.

/Stefan
micke.prag
Site Admin
Posts: 2243
Joined: Fri Mar 17, 2023 9:45 am
Location: Lund
Contact:

Re: Installera Tellstick på BeagleBone

Post by micke.prag »

Snickarn wrote:CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
CONFUSE_LIBRARY
Det är libconfuse som saknas, inte libftdi.
Micke Prag
Software
Telldus Technologies
Snickarn
Posts: 3
Joined: Fri Mar 17, 2023 9:45 am

Re: Installera Tellstick på BeagleBone

Post by Snickarn »

Hej!

Det var precis detta jag behövde och hur jag kunde missa det fattar jag inte.

OK, libconfuse fanns inte för min plattform på internet. Dags att leta efter källkoden. Fann detta.

Code: Select all

wget http://savannah.nongnu.org/download/confuse/confuse-2.7.tar.gz
tar -xzvf confuse-2.7.tar.gz
cd confuse-2.7
./configure
make
make install
Kompilering gick bra och vips funkade det också att köra cmake på Telldus-core. Utmärkt.

Försökte kompilera Telldus-core:

Code: Select all

root@beaglebone:/usr/src/telldus-core-2.1.1# make
Scanning dependencies of target TelldusCommon
[  2%] Building CXX object common/CMakeFiles/TelldusCommon.dir/Event.cpp.o
[  4%] Building CXX object common/CMakeFiles/TelldusCommon.dir/Message.cpp.o
[  6%] Building CXX object common/CMakeFiles/TelldusCommon.dir/Mutex.cpp.o
[  8%] Building CXX object common/CMakeFiles/TelldusCommon.dir/Strings.cpp.o
/usr/src/telldus-core-2.1.1/common/Strings.cpp:222:13: note: the mangling of 'va_list' has changed in GCC 4.4
[ 10%] Building CXX object common/CMakeFiles/TelldusCommon.dir/Thread.cpp.o
[ 12%] Building CXX object common/CMakeFiles/TelldusCommon.dir/Event_unix.cpp.o
[ 14%] Building CXX object common/CMakeFiles/TelldusCommon.dir/EventHandler_unix.cpp.o
[ 16%] Building CXX object common/CMakeFiles/TelldusCommon.dir/Socket_unix.cpp.o
Linking CXX static library libTelldusCommon.a
[ 16%] Built target TelldusCommon
Scanning dependencies of target telldusd
[ 18%] Building CXX object service/CMakeFiles/telldusd.dir/ClientCommunicationHandler.cpp.o
[ 20%] Building CXX object service/CMakeFiles/telldusd.dir/Controller.cpp.o
[ 22%] Building CXX object service/CMakeFiles/telldusd.dir/ControllerManager.cpp.o
[ 24%] Building CXX object service/CMakeFiles/telldusd.dir/ControllerMessage.cpp.o
[ 26%] Building CXX object service/CMakeFiles/telldusd.dir/Device.cpp.o
[ 28%] Building CXX object service/CMakeFiles/telldusd.dir/DeviceManager.cpp.o
[ 30%] Building CXX object service/CMakeFiles/telldusd.dir/Log.cpp.o
/usr/src/telldus-core-2.1.1/service/Log.cpp: In member function 'void Log::message(Log::LogLevel, const char*, va_list) const':
/usr/src/telldus-core-2.1.1/service/Log.cpp:125:6: note: the mangling of 'va_list' has changed in GCC 4.4
[ 32%] Building CXX object service/CMakeFiles/telldusd.dir/Sensor.cpp.o
[ 34%] Building CXX object service/CMakeFiles/telldusd.dir/Settings.cpp.o
[ 36%] Building CXX object service/CMakeFiles/telldusd.dir/TelldusMain.cpp.o
[ 38%] Building CXX object service/CMakeFiles/telldusd.dir/TellStick.cpp.o
[ 40%] Building CXX object service/CMakeFiles/telldusd.dir/Timer.cpp.o
[ 42%] Building CXX object service/CMakeFiles/telldusd.dir/EventUpdateManager.cpp.o
[ 44%] Building CXX object service/CMakeFiles/telldusd.dir/ConnectionListener_unix.cpp.o
[ 46%] Building CXX object service/CMakeFiles/telldusd.dir/main_unix.cpp.o
[ 48%] Building CXX object service/CMakeFiles/telldusd.dir/SettingsConfuse.cpp.o
/usr/src/telldus-core-2.1.1/service/SettingsConfuse.cpp:15:21: fatal error: confuse.h: No such file or directory
compilation terminated.
make[2]: *** [service/CMakeFiles/telldusd.dir/SettingsConfuse.cpp.o] Error 1
make[1]: *** [service/CMakeFiles/telldusd.dir/all] Error 2
make: *** [all] Error 2
Ett steg närmre. Några tips om varför det gick dåligt nu? Filen confuse.h ligger under /usr/local/include.
Kolla gärna in kompileringsnotiserna om det är något att ta hänsyn till.

/Stefan
Snickarn
Posts: 3
Joined: Fri Mar 17, 2023 9:45 am

Re: Installera Tellstick på BeagleBone

Post by Snickarn »

Hej igen,

Min kompilator fattar inte att den ska leta i /usr/local/include av någon konstig anledning. Jag hårdkodade in pathen till h-filerna i cpp filerna så funkade det sedan.

/Stefan
micke.prag
Site Admin
Posts: 2243
Joined: Fri Mar 17, 2023 9:45 am
Location: Lund
Contact:

Re: Installera Tellstick på BeagleBone

Post by micke.prag »

Av någon anledning hittas inte /usr/local/include som include path vilket den borde göra.
Testa att symlänka confuse.h till /usr/include?
Micke Prag
Software
Telldus Technologies
Post Reply