×

INDI Library v2.0.7 is Released (01 Apr 2024)

Bi-monthly release with minor bug fixes and improvements

[SOLVED] Errors when building ZWO ASI drivers on Debian 12

  • Posts: 12
  • Thank you received: 1
Hi all,

I'm trying to install 3rd party drivers on Debian 12, including the ZWO Asi ones.
IndiServer is already installed (after building, without problem).

To install ASI drivers, I first built the ASI Library using this (in a folder named ~/Projects/indi-3rdparty-libs/libasi) :
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug -DBUIL_LIBS=1 ~/Projects/indi-3rdparty/libasi
make -j4
make install
(under the root account for the last line)

There is no problem and files are copied.

When I then tried to build the ASI drivers, all seems to work with CMake :
vincent@telescope:~/Projects/build/indi-asi$ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug ~/Projects/indi-3rdparty/indi-asi
-- The CXX compiler identification is GNU 12.2.0
-- The C compiler identification is GNU 12.2.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Found ASI: /usr/lib/x86_64-linux-gnu/libASICamera2.so;/usr/lib/x86_64-linux-gnu/libEFWFilter.so;/usr/lib/x86_64-linux-gnu/libUSB2ST4Conv.so;/usr/lib/x86_64-linux-gnu/libEAFFocuser.so
-- Found CFITSIO 4.2.0: /usr/lib/x86_64-linux-gnu/libcfitsio.so
-- Found INDI: /usr/lib/x86_64-linux-gnu/libindidriver.so;/usr/lib/x86_64-linux-gnu/libindiAlignmentDriver.so (found version "1.9.9") 
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.13") 
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.8.1") 
-- Found USB1: /usr/lib/x86_64-linux-gnu/libusb-1.0.so (found version "1.0.26") 
-- Performing Test USB1_HAS_LIBUSB_ERROR_NAME
-- Performing Test USB1_HAS_LIBUSB_ERROR_NAME - Success
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Performing Test COMPATIBLE_FORTIFY_SOURCE
-- Performing Test COMPATIBLE_FORTIFY_SOURCE - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /home/vincent/Projects/build/indi-asi

But errors appear with the command "make -j4"
vincent@telescope:~/Projects/build/indi-asi$ make -j4
[  7%] Building CXX object CMakeFiles/indi_asi_ccd.dir/asi_base.cpp.o
[ 14%] Building CXX object CMakeFiles/indi_asi_single_ccd.dir/asi_base.cpp.o
[ 21%] Building CXX object CMakeFiles/indi_asi_st4.dir/asi_st4.cpp.o
[ 28%] Building CXX object CMakeFiles/indi_asi_wheel.dir/asi_wheel.cpp.o
In file included from /home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:23:
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:83: error: ‘FITSRecord’ is not a member of ‘INDI’
   76 |         virtual void addFITSKeywords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords) override;
      |                                                                                   ^~~~~~~~~~
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:83: error: ‘FITSRecord’ is not a member of ‘INDI’
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:93: error: template argument 1 is invalid
   76 |         virtual void addFITSKeywords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords) override;
      |                                                                                             ^
In file included from /home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:23:
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:83: error: ‘FITSRecord’ is not a member of ‘INDI’
   76 | ddFITSKeywords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords) override;
      |                                                             ^~~~~~~~~~
 
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:93: error: template argument 2 is invalid
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:83: error: ‘FITSRecord’ is not a member of ‘INDI’
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:93: error: template argument 1 is invalid
   76 | ords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords) override;
      |                                                             ^
 
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:93: error: template argument 2 is invalid
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:22: error: ‘virtual void ASIBase::addFITSKeywords(INDI::CCDChip*, int&)’ marked ‘override’, but does not override
   76 |         virtual void addFITSKeywords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords) override;
      |                      ^~~~~~~~~~~~~~~
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:22: error: ‘virtual void ASIBase::addFITSKeywords(INDI::CCDChip*, int&)’ marked ‘override’, but does not override
   76 |         virtual void addFITSKeywords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords) override;
      |                      ^~~~~~~~~~~~~~~
[ 35%] Linking CXX executable indi_asi_st4
[ 42%] Linking CXX executable indi_asi_wheel
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1520:76: error: ‘FITSRecord’ is not a member of ‘INDI’
 1520 | void ASIBase::addFITSKeywords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords)
      |                                                                            ^~~~~~~~~~
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1520:76: error: ‘FITSRecord’ is not a member of ‘INDI’
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1520:86: error: template argument 1 is invalid
 1520 | void ASIBase::addFITSKeywords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords)
      |                                                                                      ^
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1520:86: error: template argument 2 is invalid
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp: In member function ‘virtual void ASIBase::addFITSKeywords(INDI::CCDChip*, int&)’:
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1522:31: error: no matching function for call to ‘ASIBase::addFITSKeywords(INDI::CCDChip*&, int&)1522 |     INDI::CCD::addFITSKeywords(targetChip, fitsKeywords);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:34:
/usr/include/libindi/indiccd.h:508:22: note: candidate: ‘virtual void INDI::CCD::addFITSKeywords(INDI::CCDChip*)508 |         virtual void addFITSKeywords(CCDChip * targetChip);
      |                      ^~~~~~~~~~~~~~~
/usr/include/libindi/indiccd.h:508:22: note:   candidate expects 1 argument, 2 provided
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1528:22: error: request for member ‘push_back’ in ‘fitsKeywords’, which is of non-class type ‘int’
 1528 |         fitsKeywords.push_back({"GAIN", np->value, 3, "Gain"});
      |                      ^~~~~~~~~
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1534:22: error: request for member ‘push_back’ in ‘fitsKeywords’, which is of non-class type ‘int’
 1534 |         fitsKeywords.push_back({"OFFSET", np->value, 3, "Offset"});
      |                      ^~~~~~~~~
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1520:76: error: ‘FITSRecord’ is not a member of ‘INDI’
 1520 | ddFITSKeywords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords)
      |                                                             ^~~~~~~~~~
 
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1520:76: error: ‘FITSRecord’ is not a member of ‘INDI’
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1520:86: error: template argument 1 is invalid
 1520 | ords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords)
      |                                                             ^
 
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1520:86: error: template argument 2 is invalid
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp: In member function ‘virtual void ASIBase::addFITSKeywords(INDI::CCDChip*, int&)’:
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1522:31: error: no matching function for call to ‘ASIBase::addFITSKeywords(INDI::CCDChip*&, int&)1522 |     INDI::CCD::addFITSKeywords(targetChip, fitsKeywords);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:34:
/usr/include/libindi/indiccd.h:508:22: note: candidate: ‘virtual void INDI::CCD::addFITSKeywords(INDI::CCDChip*)508 |         virtual void addFITSKeywords(CCDChip * targetChip);
      |                      ^~~~~~~~~~~~~~~
/usr/include/libindi/indiccd.h:508:22: note:   candidate expects 1 argument, 2 provided
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1528:22: error: request for member ‘push_back’ in ‘fitsKeywords’, which is of non-class type ‘int’
 1528 |         fitsKeywords.push_back({"GAIN", np->value, 3, "Gain"});
      |                      ^~~~~~~~~
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1534:22: error: request for member ‘push_back’ in ‘fitsKeywords’, which is of non-class type ‘int’
 1534 |         fitsKeywords.push_back({"OFFSET", np->value, 3, "Offset"});
      |                      ^~~~~~~~~
[ 42%] Built target indi_asi_st4
[ 42%] Built target indi_asi_wheel
[ 50%] Building CXX object CMakeFiles/indi_asi_focuser.dir/asi_focuser.cpp.o
[ 57%] Building CXX object CMakeFiles/asi_camera_test.dir/asi_camera_test.cpp.o
make[2]: *** [CMakeFiles/indi_asi_single_ccd.dir/build.make:76 : CMakeFiles/indi_asi_single_ccd.dir/asi_base.cpp.o] Erreur 1
make[1]: *** [CMakeFiles/Makefile2:119 : CMakeFiles/indi_asi_single_ccd.dir/all] Erreur 2
make[1]: *** Attente des tâches non terminées....
[ 64%] Building CXX object CMakeFiles/indi_asi_ccd.dir/asi_ccd.cpp.o
make[2]: *** [CMakeFiles/indi_asi_ccd.dir/build.make:76 : CMakeFiles/indi_asi_ccd.dir/asi_base.cpp.o] Erreur 1
make[2]: *** Attente des tâches non terminées....
[ 71%] Linking CXX executable asi_camera_test
[ 71%] Built target asi_camera_test
In file included from /home/vincent/Projects/indi-3rdparty/indi-asi/asi_ccd.h:25,
                 from /home/vincent/Projects/indi-3rdparty/indi-asi/asi_ccd.cpp:23:
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:83: error: ‘FITSRecord’ is not a member of ‘INDI’
   76 | ddFITSKeywords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords) override;
      |                                                             ^~~~~~~~~~
 
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:83: error: ‘FITSRecord’ is not a member of ‘INDI’
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:93: error: template argument 1 is invalid
   76 | ords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords) override;
      |                                                             ^
 
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:93: error: template argument 2 is invalid
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:22: error: ‘virtual void ASIBase::addFITSKeywords(INDI::CCDChip*, int&)’ marked ‘override’, but does not override
   76 |         virtual void addFITSKeywords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords) override;
      |                      ^~~~~~~~~~~~~~~
[ 78%] Linking CXX executable indi_asi_focuser
make[2]: *** [CMakeFiles/indi_asi_ccd.dir/build.make:90 : CMakeFiles/indi_asi_ccd.dir/asi_ccd.cpp.o] Erreur 1
make[1]: *** [CMakeFiles/Makefile2:93 : CMakeFiles/indi_asi_ccd.dir/all] Erreur 2
[ 78%] Built target indi_asi_focuser
make: *** [Makefile:136 : all] Erreur 2

And the installation fails.
I think I made a mistake somwhere but I don't find.

Is there any other solution to install 3rd party drivers on Debian ?

Thank you for your help
Vincent
Last edit: 7 months 4 days ago by Vincent Bouttard. Reason: typos
7 months 4 days ago #95964

Please Log in or Create an account to join the conversation.

  • Posts: 263
  • Thank you received: 66
Are you compiling indi and indi-3rdpary from the 2.0.3 git tag or from HEAD? Make sure you are compiling from the tagged release.
The following user(s) said Thank You: Vincent Bouttard
7 months 3 days ago #95997

Please Log in or Create an account to join the conversation.

  • Posts: 12
  • Thank you received: 1
Hi Aaron,

I compiled from HEAD and not from 2.0.3 git tag.
Thanks a lot. I will try this.

Vincent
7 months 2 days ago #96001

Please Log in or Create an account to join the conversation.

  • Posts: 362
  • Thank you received: 114
Yes this is clearly version mismatch between indi and indi-3rdparty. You must make sure that These are from same version.
7 months 2 days ago #96005

Please Log in or Create an account to join the conversation.

  • Posts: 12
  • Thank you received: 1
Hi all,

I used the 2.0.3 tag and it works, both ASI camera and EFW.

Thanks for your kindly help

Vincent
6 months 3 weeks ago #96163

Please Log in or Create an account to join the conversation.

Time to create page: 0.711 seconds