Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Sign In

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

ProtoBuffer errors installing on the Raspberry PI

Hello, I've been trying to get the NCSDK installed on my PI running Stretch fully updated and upgraded. The error was due to the ProtoBuffers being wrong version (supplied 2.5 but files were created with version 3 !!)- so I downloaded and installed 3.5 from googles git hub which took about 4 hours to compile . It looks like it is now building the caffe c++ objects now - FYI


  • 8 Comments sorted by Votes Date Added
  • Nope, still crashes see log, ive taken a lot out as it would not post here

    pi@raspberrybot:~/workspace/ncsdk $ make install

    make install starting.
    --2018-02-04 17:27:45--

    Movidius Neural Compute Toolkit Setup.
    Checking OS and version...
    Installing on Raspbian Stretch

    Installer NCSDK version:
    Creating setup directory...

    -- Build files have been written to: /opt/movidius/bvlc-caffe/build
    make[1]: Entering directory '/opt/movidius/bvlc-caffe/build'
    make[2]: Entering directory '/opt/movidius/bvlc-caffe/build'
    make[3]: Entering directory '/opt/movidius/bvlc-caffe/build'
    [ 1%] Running C++/Python protocol buffer compiler on /opt/movidius/bvlc-caffe/src/caffe/proto/caffe.proto

    [ 75%] Built target caffe
    make[3]: Entering directory '/opt/movidius/bvlc-caffe/build'
    Scanning dependencies of target upgrade_solver_proto_text
    make[3]: Leaving directory '/opt/movidius/bvlc-caffe/build'
    make[3]: Entering directory '/opt/movidius/bvlc-caffe/build'
    [ 75%] Building CXX object tools/CMakeFiles/upgrade_solver_proto_text.dir/upgrade_solver_proto_text.cpp.o
    [ 76%] Linking CXX executable upgrade_solver_proto_text
    ../lib/ undefined reference to

    google::protobuf::internal::AssignDescriptors(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::internal::MigrationSchema const*, google::protobuf::Message const* const*, unsigned int const*, google::protobuf::MessageFactory*, google::protobuf::Metadata*, google::protobuf::EnumDescriptor const**, google::protobuf::ServiceDescriptor const**)'
    ../lib/ undefined reference to
    google::protobuf::internal::ArenaImpl::AllocateAlignedAndAddCleanup(unsigned int, void ()(void))'
    ../lib/ undefined reference to
    google::protobuf::internal::WireFormatLite::WriteFloatArray(float const*, int, google::protobuf::io::CodedOutputStream*)'
    ../lib/ undefined reference to
    google::protobuf::io::CodedOutputStream::WriteVarint64SlowPath(unsigned long long)'
    ../lib/ undefined reference to
    google::protobuf::internal::WireFormatLite::Int32Size(google::protobuf::RepeatedField<int> const&)'
    ../lib/ undefined reference to
    google::protobuf::internal::ArenaImpl::AllocateAligned(unsigned int)'
    ../lib/ undefined reference to
    google::protobuf::internal::RegisterAllTypes(google::protobuf::Metadata const*, int)'
    ../lib/ undefined reference to
    ../lib/ undefined reference to
    google::protobuf::io::CodedInputStream::SkipFallback(int, int)'
    ../lib/ undefined reference to
    google::protobuf::internal::ArenaImpl::AddCleanup(void*, void ()(void))'
    ../lib/ undefined reference to
    google::protobuf::internal::WireFormatLite::WriteDoubleArray(double const*, int, google::protobuf::io::CodedOutputStream*)'
    ../lib/ undefined reference to
    google::protobuf::internal::WireFormatLite::UInt32Size(google::protobuf::RepeatedField const&)'
    ../lib/ undefined reference to
    google::protobuf::internal::OnShutdownDestroyMessage(void const*)'
    ../lib/ undefined reference to
    google::protobuf::internal::OnShutdownDestroyString(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const)'
    ../lib/ undefined reference to google::protobuf::internal::fixed_address_empty_string[abi:cxx11]' ../lib/ undefined reference togoogle::protobuf::Message::SpaceUsedLong() const'
    ../lib/ undefined reference to `google::protobuf::Arena::OnArenaAllocation(std::type_info const
    , unsigned int) const'
    collect2: error: ld returned 1 exit status
    tools/CMakeFiles/upgrade_solver_proto_text.dir/build.make:128: recipe for target 'tools/upgrade_solver_proto_text' failed
    make[3]: *** [tools/upgrade_solver_proto_text] Error 1
    make[3]: Leaving directory '/opt/movidius/bvlc-caffe/build'
    CMakeFiles/Makefile2:467: recipe for target 'tools/CMakeFiles/upgrade_solver_proto_text.dir/all' failed
    make[2]: *** [tools/CMakeFiles/upgrade_solver_proto_text.dir/all] Error 2
    make[2]: Leaving directory '/opt/movidius/bvlc-caffe/build'
    Makefile:127: recipe for target 'all' failed
    make[1]: *** [all] Error 2
    make[1]: Leaving directory '/opt/movidius/bvlc-caffe/build'
    Installation failed. Error on line 535
  • Please can anybody help? I bought this as a product that supported the raspberry pi but it is not living up to that expectation!

  • @hexitex Can you try installing the NCSDK on a fresh Raspberry Pi and let me know what the results are?

  • It was a fresh raspberry pi

  • Did you read the first comment, the supplied files were created with a different version of protobuffer than the one in your package

  • @Tome_at_Intel , I am dead in the water here - surely not having the correct version of the protobuffer is a big indication that your script is incorrect! This is just an expensive paperweight for me at the moment - I know it is a dev board but it really should work if I have satisfied the requirements to run it.

  • @hexitex or @Tome_at_Intel is there a solution to this problem? As I am experiencing the same issue at line 535. I am trying the full installation, vs the API. Will the API negate this error? Will i lose out on anything if I proceed with API instead?

  • @tc23 Information on Raspberry Pi installation instructions can be found at What version of the NCSDK are you trying to install? Can you post your installation log? Is this a fresh Raspberry Pi?

    If you install API mode, you will lose out on the toolkit half of the NCSDK. This means that you will be able to run examples and any applications you have created, but you will need to compile the Movidius graph file on another machine since you won't have the compiler available. This means that this other machine will have to have the full version of the NCSDK installed and you'll have compile your model on that platform. You will then have to transfer the compiled graph file over to the Pi.

    Once the graph file is compiled and transferred, you won't need to create another graph file unless you want to use a different model/modified your model or you install a different version of the NCSDK.

Sign In or Register to comment.