Raspberry PI build machine for noobaa agent - noobaa/noobaa-core GitHub Wiki

The quick and dirty way

Prereq

node installation (default node is not for ARM)

wget https://nodejs.org/dist/v8.9.4/node-v8.9.4-linux-armv6l.tar.gz tar -xzf node-v8.9.4-linux-armv6l.tar.gz cp ./node-v8.9.4-linux-armv6l/bin/node /usr/local/noobaa/ sudo ln -s /home/pi/Downloads/src/node-v8.9.4-linux-armv6l/bin/npm /usr/local/bin/

build yasm (for snappy) wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz tar xzvf yasm-1.2.0.tar.gz cd yasm-1.2.0 ./configure make make install

building NooBaa

Source

downloaded source to /home/pi/Downloads/src unzip xx.zip cd /home/pi/Downloads/src/noobaa-core-xxx

Update the following files:

  • src/native/common.gypi - commented # '-msse4.1', # tell the compiler we use SSE4.1 in cm256
  • package.json remove dev dependencies
  • package.json remove fe
  • src/native/chunk/splitter_napi.cpp - line 36,121,165 changed int to (uint32_t) (ambiguous overload)
  • replace all the files under src/native/third_party/cm256 with the files from https://github.com/catid/cm256/archive/master.zip
  • src/native/third_party/cm256/gf256.h - LINUX_ARM if - remove the if (for some reason, this variable is not set

Build

  • Use an agent with the standard one-liner (it will fail)
  • npm install
  • sudo cp -R node_modules/ /usr/local/noobaa/
  • sudo cp -R ./build /usr/local/noobaa/
  • start the service