Qengineering / RPi-image

Raspberry Pi 4 Buster 64-bit OS with deep learning examples
https://qengineering.eu/deep-learning-examples-on-raspberry-32-64-os.html
BSD 3-Clause "New" or "Revised" License
133 stars 20 forks source link

install raspistill or libcamera #14

Open sungbohsun opened 2 years ago

sungbohsun commented 2 years ago

How to install raspistill or libcamera? According to the official article, I encountered an error.

pi@raspberrypi:~/libcamera $ ninja -C build install ninja: Entering directory `build' [5/188] Compiling C++ object src/ipa/rkisp1/ipa_rkisp1.so.p/algorithms_gsl.cpp.o FAILED: src/ipa/rkisp1/ipa_rkisp1.so.p/algorithms_gsl.cpp.o c++ -Isrc/ipa/rkisp1/ipa_rkisp1.so.p -Isrc/ipa/rkisp1 -I../src/ipa/rkisp1 -Iinclude -I../include -Isrc/ipa -I../src/ipa -Iinclude/libcamera/ipa -Iinclude/libcamera -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++17 -O0 -g -Wl,--start-group -lstdc++fs -Wl,--end-group -Wshadow -include /home/pi/libcamera/build/config.h -fPIC -DLIBCAMERA_BASE_PRIVATE -MD -MQ src/ipa/rkisp1/ipa_rkisp1.so.p/algorithms_gsl.cpp.o -MF src/ipa/rkisp1/ipa_rkisp1.so.p/algorithms_gsl.cpp.o.d -o src/ipa/rkisp1/ipa_rkisp1.so.p/algorithms_gsl.cpp.o -c ../src/ipa/rkisp1/algorithms/gsl.cpp In file included from ../include/libcamera/controls.h:11, from ../src/ipa/libipa/algorithm.h:12, from ../src/ipa/rkisp1/algorithms/algorithm.h:10, from ../src/ipa/rkisp1/algorithms/gsl.h:10, from ../src/ipa/rkisp1/algorithms/gsl.cpp:8: /usr/include/c++/8/optional: In instantiation of ‘_Tp std::optional<_Tp>::value_or(_Up&&) && [with _Up = const libcamera::utils::details::defopt_t&; _Tp = std::vector]’: ../src/ipa/rkisp1/algorithms/gsl.cpp:63:71: required from here /usr/include/c++/8/optional:1267:8: error: call of overloaded ‘vector(const libcamera::utils::details::defopt_t&)’ is ambiguous : static_cast<_Tp>(std::forward<_Up>(u)); ^~~~~~~~~~~~ In file included from /usr/include/c++/8/vector:64, from ../include/libcamera/controls.h:16, from ../src/ipa/libipa/algorithm.h:12, from ../src/ipa/rkisp1/algorithms/algorithm.h:10, from ../src/ipa/rkisp1/algorithms/gsl.h:10, from ../src/ipa/rkisp1/algorithms/gsl.cpp:8: /usr/include/c++/8/bits/stl_vector.h:515:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(std::initializer_list<_Tp>, const allocator_type&) [with _Tp = short unsigned int; _Alloc = std::allocator; std::vector<_Tp, _Alloc>::allocator_type = std::allocator]’ vector(initializer_list __l, ^~ /usr/include/c++/8/bits/stl_vector.h:476:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>&&) [with _Tp = short unsigned int; _Alloc = std::allocator]’ vector(vector&& x) noexcept ^~ /usr/include/c++/8/bits/stl_vector.h:458:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = short unsigned int; _Alloc = std::allocator]’ vector(const vector& x) ^~ /usr/include/c++/8/bits/stl_vector.h:415:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>::size_type, const allocator_type&) [with _Tp = short unsigned int; _Alloc = std::allocator; std::vector<_Tp, _Alloc>::size_type = long unsigned int; std::vector<_Tp, _Alloc>::allocator_type = std::allocator]’ vector(size_type n, const allocator_type& a = allocator_type()) ^~ /usr/include/c++/8/bits/stl_vector.h:402:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(const allocator_type&) [with _Tp = short unsigned int; _Alloc = std::allocator; std::vector<_Tp, _Alloc>::allocator_type = std::allocator]’ vector(const allocator_type& __a) _GLIBCXX_NOEXCEPT ^~ [6/188] Compiling C++ object src/ipa/rkisp1/ipa_rkisp1.so.p/algorithms_lsc.cpp.o FAILED: src/ipa/rkisp1/ipa_rkisp1.so.p/algorithms_lsc.cpp.o c++ -Isrc/ipa/rkisp1/ipa_rkisp1.so.p -Isrc/ipa/rkisp1 -I../src/ipa/rkisp1 -Iinclude -I../include -Isrc/ipa -I../src/ipa -Iinclude/libcamera/ipa -Iinclude/libcamera -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++17 -O0 -g -Wl,--start-group -lstdc++fs -Wl,--end-group -Wshadow -include /home/pi/libcamera/build/config.h -fPIC -DLIBCAMERA_BASE_PRIVATE -MD -MQ src/ipa/rkisp1/ipa_rkisp1.so.p/algorithms_lsc.cpp.o -MF src/ipa/rkisp1/ipa_rkisp1.so.p/algorithms_lsc.cpp.o.d -o src/ipa/rkisp1/ipa_rkisp1.so.p/algorithms_lsc.cpp.o -c ../src/ipa/rkisp1/algorithms/lsc.cpp In file included from ../include/libcamera/controls.h:11, from ../src/ipa/libipa/algorithm.h:12, from ../src/ipa/rkisp1/algorithms/algorithm.h:10, from ../src/ipa/rkisp1/algorithms/lsc.h:10, from ../src/ipa/rkisp1/algorithms/lsc.cpp:8: /usr/include/c++/8/optional: In instantiation of ‘_Tp std::optional<_Tp>::value_or(_Up&&) && [with _Up = const libcamera::utils::details::defopt_t&; _Tp = std::vector]’: ../src/ipa/rkisp1/algorithms/lsc.cpp:46:60: required from here /usr/include/c++/8/optional:1267:8: error: call of overloaded ‘vector(const libcamera::utils::details::defopt_t&)’ is ambiguous : static_cast<_Tp>(std::forward<_Up>(u)); ^~~~~~~~~~~~ In file included from /usr/include/c++/8/vector:64, from ../include/libcamera/controls.h:16, from ../src/ipa/libipa/algorithm.h:12, from ../src/ipa/rkisp1/algorithms/algorithm.h:10, from ../src/ipa/rkisp1/algorithms/lsc.h:10, from ../src/ipa/rkisp1/algorithms/lsc.cpp:8: /usr/include/c++/8/bits/stl_vector.h:515:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(std::initializer_list<_Tp>, const allocator_type&) [with _Tp = double; _Alloc = std::allocator; std::vector<_Tp, _Alloc>::allocator_type = std::allocator]’ vector(initializer_list l, ^~ /usr/include/c++/8/bits/stl_vector.h:476:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>&&) [with _Tp = double; _Alloc = std::allocator]’ vector(vector&& __x) noexcept ^~ /usr/include/c++/8/bits/stl_vector.h:458:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = double; _Alloc = std::allocator]’ vector(const vector& x) ^~ /usr/include/c++/8/bits/stl_vector.h:415:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>::size_type, const allocator_type&) [with _Tp = double; _Alloc = std::allocator; std::vector<_Tp, _Alloc>::size_type = long unsigned int; std::vector<_Tp, _Alloc>::allocator_type = std::allocator]’ vector(size_type n, const allocator_type& __a = allocator_type()) ^~ /usr/include/c++/8/bits/stl_vector.h:402:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(const allocator_type&) [with _Tp = double; _Alloc = std::allocator; std::vector<_Tp, _Alloc>::allocator_type = std::allocator]’ vector(const allocator_type& a) _GLIBCXX_NOEXCEPT ^~ In file included from ../include/libcamera/controls.h:11, from ../src/ipa/libipa/algorithm.h:12, from ../src/ipa/rkisp1/algorithms/algorithm.h:10, from ../src/ipa/rkisp1/algorithms/lsc.h:10, from ../src/ipa/rkisp1/algorithms/lsc.cpp:8: /usr/include/c++/8/optional: In instantiation of ‘_Tp std::optional<_Tp>::value_or(_Up&&) && [with _Up = const libcamera::utils::details::defopt_t&; _Tp = std::vector]’: ../src/ipa/rkisp1/algorithms/lsc.cpp:79:62: required from here /usr/include/c++/8/optional:1267:8: error: call of overloaded ‘vector(const libcamera::utils::details::defopt_t&)’ is ambiguous : static_cast<_Tp>(std::forward<_Up>(u)); ^~~~~~~~~~~~ In file included from /usr/include/c++/8/vector:64, from ../include/libcamera/controls.h:16, from ../src/ipa/libipa/algorithm.h:12, from ../src/ipa/rkisp1/algorithms/algorithm.h:10, from ../src/ipa/rkisp1/algorithms/lsc.h:10, from ../src/ipa/rkisp1/algorithms/lsc.cpp:8: /usr/include/c++/8/bits/stl_vector.h:515:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(std::initializer_list<_Tp>, const allocator_type&) [with _Tp = short unsigned int; _Alloc = std::allocator; std::vector<_Tp, _Alloc>::allocator_type = std::allocator]’ vector(initializer_list __l, ^~ /usr/include/c++/8/bits/stl_vector.h:476:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>&&) [with _Tp = short unsigned int; _Alloc = std::allocator]’ vector(vector&& x) noexcept ^~ /usr/include/c++/8/bits/stl_vector.h:458:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = short unsigned int; _Alloc = std::allocator]’ vector(const vector& x) ^~ /usr/include/c++/8/bits/stl_vector.h:415:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(std::vector<_Tp, _Alloc>::size_type, const allocator_type&) [with _Tp = short unsigned int; _Alloc = std::allocator; std::vector<_Tp, _Alloc>::size_type = long unsigned int; std::vector<_Tp, _Alloc>::allocator_type = std::allocator]’ vector(size_type n, const allocator_type& __a = allocator_type()) ^~ /usr/include/c++/8/bits/stl_vector.h:402:7: note: candidate: ‘std::vector<_Tp, _Alloc>::vector(const allocator_type&) [with _Tp = short unsigned int; _Alloc = std::allocator; std::vector<_Tp, _Alloc>::allocator_type = std::allocator]’ vector(const allocator_type& __a) _GLIBCXX_NOEXCEPT ^~ [10/188] Compiling C++ object src/qcam/qcam.p/.._cam_options.cpp.o ninja: build stopped: subcommand failed.

Qengineering commented 2 years ago

@sungbohsun,

Unfortunately, libcamera works with the Raspberry Pi Bullseye OS. This image has still the 'old' Buster OS. Buster has raspistill default on board. If you want a camera working use Gstreamer or OpenCV cap(). See also

Qengineering commented 1 year ago

I am happy to announce the new Bullseye version.