Edge-impulse-daemon: command not found

sudo npm install -g edge-impulse-cli

Output:

npm WARN deprecated request@2.88.2: request has been deprecated, see https://github. c o m/request/request/issues/3142
loadDep:readable-stream → ▀ ╢███████████████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
/home/ic6/.npm-packages/bin/edge-impulse-daemon -> /home/ic6/.npm-packages/lib/node_modules/edge-impulse-cli/build/serial-daemon/cli/daemon.js
/home/ic6/.npm-packages/bin/edge-impulse-uploader -> /home/ic6/.npm-packages/lib/node_modules/edge-impulse-cli/build/serial-daemon/cli/uploader.js
/home/ic6/.npm-packages/bin/edge-impulse-data-forwarder -> /home/ic6/.npm-packages/lib/node_modules/edge-impulse-cli/build/serial-daemon/cli/data-forwarder.js

@serialport/bindings@8.0.8 install /home/ic6/.npm-packages/lib/node_modules/edge-impulse-cli/node_modules/@serialport/bindings
prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild

prebuild-install WARN install EACCES: permission denied, access ‘/home/ic6/.npm’
make: Entering directory ‘/home/ic6/.npm-packages/lib/node_modules/edge-impulse-cli/node_modules/@serialport/bindings/build’
CXX(target) Release/obj.target/bindings/src/serialport.o
CXX(target) Release/obj.target/bindings/src/serialport_unix.o
…/src/serialport_unix.cpp: In function ‘int setup(int, OpenBaton*)’:
…/src/serialport_unix.cpp:166:5: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 1005 [-Wformat-truncation=]
int setup(int fd, OpenBaton *data) {
^~~~~
In file included from /usr/include/stdio.h:862:0,
from …/src/serialport.h:3,
from …/src/serialport_unix.cpp:2:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:65:44: note: ‘__builtin___snprintf_chk’ output 20 or more bytes (assuming 1043) into a destination of size 1024
__bos (__s), __fmt, __va_arg_pack ());
^
…/src/serialport_unix.cpp: In function ‘void EIO_Open(uv_work_t*)’:
…/src/serialport_unix.cpp:79:6: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 1003 [-Wformat-truncation=]
void EIO_Open(uv_work_t* req) {
^~~~~~~~
In file included from /usr/include/stdio.h:862:0,
from …/src/serialport.h:3,
from …/src/serialport_unix.cpp:2:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:65:44: note: ‘__builtin___snprintf_chk’ output 22 or more bytes (assuming 1045) into a destination of size 1024
__bos (__s), __fmt, __va_arg_pack ());
^
CXX(target) Release/obj.target/bindings/src/poller.o
CXX(target) Release/obj.target/bindings/src/serialport_linux.o
SOLINK_MODULE(target) Release/obj.target/bindings.node
COPY Release/bindings.node
make: Leaving directory ‘/home/ic6/.npm-packages/lib/node_modules/edge-impulse-cli/node_modules/@serialport/bindings/build’

serialport@8.0.8 postinstall /home/ic6/.npm-packages/lib/node_modules/edge-impulse-cli/node_modules/serialport
node thank-you.js

Thank you for using serialport!
If you rely on this package, please consider supporting our open collective:

https://opencollective. c o m/serialport/donate

/home/ic6/.npm-packages/lib
└─┬ edge-impulse-cli@1.6.7
├─┬ borc@2.1.2
│ ├── bignumber.js@9.0.0
│ ├─┬ buffer@5.6.0
│ │ └── base64-js@1.3.1
│ ├── commander@2.20.3
│ ├── ieee754@1.1.13
│ ├── iso-url@0.4.7
│ ├─┬ json-text-sequence@0.1.1
│ │ └── delimit-stream@0.1.0
│ └─┬ readable-stream@3.6.0
│ ├── inherits@2.0.4
│ ├── string_decoder@1.3.0
│ └── util-deprecate@1.0.2
├── UNMET PEER DEPENDENCY bufferutil@^4.0.1
├─┬ cbor@5.0.2
│ └── nofilter@1.0.3
├── commander@4.1.1
├─┬ inquirer@7.2.0
│ ├─┬ ansi-escapes@4.3.1
│ │ └── type-fest@0.11.0
│ ├─┬ chalk@3.0.0
│ │ ├─┬ ansi-styles@4.2.1
│ │ │ ├── @types/color-name@1.1.1
│ │ │ └─┬ color-convert@2.0.1
│ │ │ └── color-name@1.1.4
│ │ └─┬ supports-color@7.1.0
│ │ └── has-flag@4.0.0
│ ├─┬ cli-cursor@3.1.0
│ │ └─┬ restore-cursor@3.1.0
│ │ ├─┬ onetime@5.1.0
│ │ │ └── mimic-fn@2.1.0
│ │ └── signal-exit@3.0.3
│ ├── cli-width@2.2.1
│ ├─┬ external-editor@3.1.0
│ │ ├── chardet@0.7.0
│ │ ├─┬ iconv-lite@0.4.24
│ │ │ └── safer-buffer@2.1.2
│ │ └─┬ tmp@0.0.33
│ │ └── os-tmpdir@1.0.2
│ ├─┬ figures@3.2.0
│ │ └── escape-string-regexp@1.0.5
│ ├── lodash@4.17.15
│ ├── mute-stream@0.0.8
│ ├── run-async@2.4.1
│ ├─┬ rxjs@6.5.5
│ │ └── tslib@1.13.0
│ ├─┬ string-width@4.2.0
│ │ ├── emoji-regex@8.0.0
│ │ └── is-fullwidth-code-point@3.0.0
│ ├─┬ strip-ansi@6.0.0
│ │ └── ansi-regex@5.0.0
│ └── through@2.3.8
├─┬ npm-registry-fetch@5.0.1
│ ├── bluebird@3.7.2
│ ├── figgy-pudding@3.5.2
│ ├─┬ lru-cache@5.1.1
│ │ └── yallist@3.1.1
│ ├─┬ make-fetch-happen@6.1.0
│ │ ├─┬ agentkeepalive@3.5.2
│ │ │ └── humanize-ms@1.2.1
│ │ ├─┬ cacache@13.0.1
│ │ │ ├── chownr@1.1.4
│ │ │ ├── fs-minipass@2.1.0
│ │ │ ├─┬ glob@7.1.6
│ │ │ │ ├── fs.realpath@1.0.0
│ │ │ │ ├─┬ inflight@1.0.6
│ │ │ │ │ └── wrappy@1.0.2
│ │ │ │ ├─┬ minimatch@3.0.4
│ │ │ │ │ └─┬ brace-expansion@1.1.11
│ │ │ │ │ ├── balanced-match@1.0.0
│ │ │ │ │ └── concat-map@0.0.1
│ │ │ │ ├── once@1.4.0
│ │ │ │ └── path-is-absolute@1.0.1
│ │ │ ├── graceful-fs@4.2.4
│ │ │ ├── infer-owner@1.0.4
│ │ │ ├── mkdirp@0.5.5
│ │ │ ├─┬ move-concurrently@1.0.1
│ │ │ │ ├── aproba@1.2.0
│ │ │ │ ├─┬ copy-concurrently@1.0.5
│ │ │ │ │ └── iferr@0.1.5
│ │ │ │ ├─┬ fs-write-stream-atomic@1.0.10
│ │ │ │ │ ├── imurmurhash@0.1.4
│ │ │ │ │ └─┬ readable-stream@2.3.7
│ │ │ │ │ ├── isarray@1.0.0
│ │ │ │ │ ├── process-nextick-args@2.0.1
│ │ │ │ │ ├── safe-buffer@5.1.2
│ │ │ │ │ └── string_decoder@1.1.1
│ │ │ │ └── run-queue@1.0.3
│ │ │ ├─┬ p-map@3.0.0
│ │ │ │ └─┬ aggregate-error@3.0.1
│ │ │ │ ├── clean-stack@2.2.0
│ │ │ │ └── indent-string@4.0.0
│ │ │ ├── promise-inflight@1.0.1
│ │ │ ├── rimraf@2.7.1
│ │ │ └─┬ unique-filename@1.1.1
│ │ │ └── unique-slug@2.0.2
│ │ ├── http-cache-semantics@3.8.1
│ │ ├─┬ http-proxy-agent@2.1.0
│ │ │ ├─┬ agent-base@4.3.0
│ │ │ │ └─┬ es6-promisify@5.0.0
│ │ │ │ └── es6-promise@4.2.8
│ │ │ └─┬ debug@3.1.0
│ │ │ └── ms@2.0.0
│ │ ├── https-proxy-agent@3.0.1
│ │ ├── minipass-collect@1.0.2
│ │ ├── minipass-flush@1.0.5
│ │ ├── minipass-pipeline@1.2.3
│ │ ├─┬ promise-retry@1.1.1
│ │ │ ├── err-code@1.1.2
│ │ │ └── retry@0.10.1
│ │ ├─┬ socks-proxy-agent@4.0.2
│ │ │ ├── agent-base@4.2.1
│ │ │ └─┬ socks@2.3.3
│ │ │ ├── ip@1.1.5
│ │ │ └── smart-buffer@4.1.0
│ │ └── ssri@7.1.0
│ ├─┬ minipass@3.1.3
│ │ └── yallist@4.0.0
│ ├─┬ minipass-fetch@1.2.1
│ │ ├── encoding@0.1.12
│ │ └── minipass-sized@1.0.3
│ ├─┬ minipass-json-stream@1.0.1
│ │ └── jsonparse@1.3.1
│ ├─┬ minizlib@2.1.0
│ │ └── yallist@4.0.0
│ ├─┬ npm-package-arg@7.0.0
│ │ ├── hosted-git-info@3.0.4
│ │ ├─┬ osenv@0.1.5
│ │ │ └── os-homedir@1.0.2
│ │ └─┬ validate-npm-package-name@3.0.0
│ │ └── builtins@1.0.3
│ └── safe-buffer@5.2.1
├─┬ request@2.88.2
│ ├── aws-sign2@0.7.0
│ ├── aws4@1.10.0
│ ├── caseless@0.12.0
│ ├─┬ combined-stream@1.0.8
│ │ └── delayed-stream@1.0.0
│ ├── extend@3.0.2
│ ├── forever-agent@0.6.1
│ ├─┬ form-data@2.3.3
│ │ └── asynckit@0.4.0
│ ├─┬ har-validator@5.1.3
│ │ ├─┬ ajv@6.12.2
│ │ │ ├── fast-deep-equal@3.1.3
│ │ │ ├── fast-json-stable-stringify@2.1.0
│ │ │ ├── json-schema-traverse@0.4.1
│ │ │ └── uri-js@4.2.2
│ │ └── har-schema@2.0.0
│ ├─┬ http-signature@1.2.0
│ │ ├── assert-plus@1.0.0
│ │ ├─┬ jsprim@1.4.1
│ │ │ ├── extsprintf@1.3.0
│ │ │ ├── json-schema@0.2.3
│ │ │ └─┬ verror@1.10.0
│ │ │ └── core-util-is@1.0.2
│ │ └─┬ sshpk@1.16.1
│ │ ├── asn1@0.2.4
│ │ ├── bcrypt-pbkdf@1.0.2
│ │ ├── dashdash@1.14.1
│ │ ├── ecc-jsbn@0.1.2
│ │ ├── getpass@0.1.7
│ │ ├── jsbn@0.1.1
│ │ └── tweetnacl@0.14.5
│ ├── is-typedarray@1.0.0
│ ├── isstream@0.1.2
│ ├── json-stringify-safe@5.0.1
│ ├─┬ mime-types@2.1.27
│ │ └── mime-db@1.44.0
│ ├── oauth-sign@0.9.0
│ ├── performance-now@2.1.0
│ ├── qs@6.5.2
│ ├─┬ tough-cookie@2.5.0
│ │ ├── psl@1.8.0
│ │ └── punycode@2.1.1
│ ├── tunnel-agent@0.6.0
│ └── uuid@3.4.0
├─┬ request-promise@4.2.5
│ ├── request-promise-core@1.1.3
│ └── stealthy-require@1.1.1
├─┬ serialport@8.0.8
│ ├─┬ @serialport/binding-mock@8.0.6
│ │ ├─┬ @serialport/binding-abstract@8.0.6
│ │ │ └── debug@4.1.1
│ │ └── debug@4.1.1
│ ├─┬ @serialport/bindings@8.0.8
│ │ ├─┬ bindings@1.5.0
│ │ │ └── file-uri-to-path@1.0.0
│ │ ├── debug@4.1.1
│ │ ├── nan@2.14.1
│ │ └─┬ prebuild-install@5.3.4
│ │ ├── detect-libc@1.0.3
│ │ ├── expand-template@2.0.3
│ │ ├── github-from-package@0.0.0
│ │ ├── minimist@1.2.5
│ │ ├── napi-build-utils@1.0.2
│ │ ├── node-abi@2.18.0
│ │ ├── noop-logger@0.1.1
│ │ ├─┬ npmlog@4.1.2
│ │ │ ├─┬ are-we-there-yet@1.1.5
│ │ │ │ ├── delegates@1.0.0
│ │ │ │ └─┬ readable-stream@2.3.7
│ │ │ │ ├── safe-buffer@5.1.2
│ │ │ │ └── string_decoder@1.1.1
│ │ │ ├── console-control-strings@1.1.0
│ │ │ ├─┬ gauge@2.7.4
│ │ │ │ ├── has-unicode@2.0.1
│ │ │ │ ├── object-assign@4.1.1
│ │ │ │ ├─┬ string-width@1.0.2
│ │ │ │ │ ├── code-point-at@1.1.0
│ │ │ │ │ └─┬ is-fullwidth-code-point@1.0.0
│ │ │ │ │ └── number-is-nan@1.0.1
│ │ │ │ ├─┬ strip-ansi@3.0.1
│ │ │ │ │ └── ansi-regex@2.1.1
│ │ │ │ └─┬ wide-align@1.1.3
│ │ │ │ └─┬ string-width@2.1.1
│ │ │ │ ├── is-fullwidth-code-point@2.0.0
│ │ │ │ └─┬ strip-ansi@4.0.0
│ │ │ │ └── ansi-regex@3.0.0
│ │ │ └── set-blocking@2.0.0
│ │ ├─┬ pump@3.0.0
│ │ │ └── end-of-stream@1.4.4
│ │ ├─┬ rc@1.2.8
│ │ │ ├── deep-extend@0.6.0
│ │ │ ├── ini@1.3.5
│ │ │ └── strip-json-comments@2.0.1
│ │ ├─┬ simple-get@3.1.0
│ │ │ ├─┬ decompress-response@4.2.1
│ │ │ │ └── mimic-response@2.1.0
│ │ │ └── simple-concat@1.0.0
│ │ ├─┬ tar-fs@2.1.0
│ │ │ ├── mkdirp-classic@0.5.3
│ │ │ └─┬ tar-stream@2.1.2
│ │ │ ├── bl@4.0.2
│ │ │ └── fs-constants@1.0.0
│ │ └── which-pm-runs@1.0.0
│ ├── @serialport/parser-byte-length@8.0.6
│ ├── @serialport/parser-cctalk@8.0.6
│ ├── @serialport/parser-delimiter@8.0.6
│ ├── @serialport/parser-readline@8.0.6
│ ├── @serialport/parser-ready@8.0.6
│ ├── @serialport/parser-regex@8.0.6
│ ├─┬ @serialport/stream@8.0.6
│ │ └── debug@4.1.1
│ └─┬ debug@4.1.1
│ └── ms@2.1.2
├─┬ tiny-async-pool@1.1.0
│ ├── semver@5.7.1
│ └── yaassertion@1.0.2
├─┬ tsee@1.3.0
│ ├── @types/node@12.12.47
│ ├── tsargs@1.4.0
│ └── UNMET PEER DEPENDENCY typescript@^3.1.6
├── UNMET PEER DEPENDENCY utf-8-validate@^5.0.2
├── wavefile@11.0.0
└── ws@7.3.0

npm WARN ws@7.3.0 requires a peer of bufferutil@^4.0.1 but none was installed.
npm WARN ws@7.3.0 requires a peer of utf-8-validate@^5.0.2 but none was installed.
npm WARN tsargs@1.4.0 requires a peer of typescript@^3.1.6 but none was installed.

Does this yield the same error now when you run edge-impulse-daemon or does it go through now? If not, which Linux version are you using?

Yes, I get the same error!

Ubuntu 18.04.4 LTS
AMD® Ryzen threadripper 1950x 16-core processor × 32
GeForce GTX 1080 Ti/PCIe/SSE2
64-bit

@ahmedkhalaf1 Can you try a manual install, and paste the output here?

$ mkdir ~/edge-impulse-cli
$ cd edge-impulse-cli
$ npm pack edge-impulse-cli
$ tar xvf edge-impulse-cli-1.6.7.tgz
$ cd package
$ npm install
$ npm link
$ edge-impulse-daemon

should I remove first using:

rm -rf /home/ic6/.npm-packages/lib/node_modules/edge-impulse-cli

?

Should not be necessary.

Everything was fine until here:

npm link

output:

npm ERR! code EACCES
npm ERR! syscall unlink
npm ERR! path /home/ic6/.npm-packages/lib/node_modules/edge-impulse-cli/LICENSE
npm ERR! errno -13
npm ERR!
npm ERR! Your cache folder contains root-owned files, due to a bug in
npm ERR! previous versions of npm which has since been addressed.
npm ERR!
npm ERR! To permanently fix this problem, please run:
npm ERR! sudo chown -R 1000:1000 “/home/ic6/.npm”

npm ERR! A complete log of this run can be found in:
npm ERR! /home/ic6/.npm/_logs/2020-06-17T17_58_41_928Z-debug.log

Interesting, I think the error gives the solution already:

npm ERR! To permanently fix this problem, please run:
npm ERR! sudo chown -R 1000:1000 “/home/ic6/.npm”

And relink?

chown: cannot access ‘“/home/ic6/.npm’: No such file or directory

I think something weird with the quotes. Try:

sudo chown -R 1000:1000 /home/ic6/.npm

And then continue the script from npm link.

Super weird… Can you try:

$ sudo chown -R 1000:1000 /home/ic6/.npm-packages
$ sudo npm link
$ edge-impulse-daemon

Or if this still does not work:

$ cd ~/edge-impulse-cli/package
$ ln -s $PWD/build/serial-daemon/cli/daemon.js /usr/local/bin/edge-impulse-daemon

(Last one might require sudo)

Hi @janjongboom,

Apologies for resurrecting this old thread. I am trying to run ‘edge-impulse-daemon’ with Arduino nano ble-33 sense as a part of the Coursera course and see a similar error.

Could you please suggest if it was concluded when reported last time?

balaji@ubuntu-workstation:~/Arduino/bin$ edge-impulse-daemon
/home/balaji/.npm-global/lib/node_modules/edge-impulse-cli/node_modules/bindings/bindings.js:121
    throw e;
    ^

Error: The module '/home/balaji/.npm-global/lib/node_modules/edge-impulse-cli/node_modules/@serialport/bindings/build/Release/bindings.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 64. This version of Node.js requires
NODE_MODULE_VERSION 83. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
at Object.Module._extensions..node (internal/modules/cjs/loader.js:1122:18)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at bindings (/home/balaji/.npm-global/lib/node_modules/edge-impulse-cli/node_modules/bindings/bindings.js:112:48)
at Object.<anonymous> (/home/balaji/.npm-global/lib/node_modules/edge-impulse-cli/node_modules/@serialport/bindings/lib/linux.js:2:36)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)

Thanks,
Balaji

npm uninstall edge-impulse-cli -g
npm install edge-impulse-cli@latest -g

Performing an uninstall and re-install worked for me, thanks!

1 Like

Hey, Ubuntu 20.04 user here, I fumbled a bit with these issues as well, just so it helps anyone that cannot run the commands although install works fine, for me what worked was to export the path :

export PATH=$PATH:/home/$USER/.npm-global/bin

Afterward, the commands were available anywhere else.

3 Likes

“edge-impulse-daemon: command not found”
i tried every step but what ever i do same error !!!

Hello @techie ,

Which OS do you use?
When nothing of the above works, I have seen user reporting that restarting their computer solved the issue… Urgent edge-impulse-daemon: COMMAND NOT FOUND - #12 by Haythem.listic

Let me know if that fixes it

Regards,

Louis

1 Like

FYI, this is already done in the installation step at https://docs.edgeimpulse.com/docs/edge-impulse-cli/cli-installation#installation-linux-ubuntu-macos-and-raspbian-os:

echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.profile

What’s missing is the command:

source ~/.profile

Which will actually apply the changes made in the previous command, and then edge-impulse-daemon works.

@louis may I suggest this command is added to the documentation of Edge Impulse CLI, since many (like me) will forget it’s needed?

Can someone help me figure out why my pi says there is not camera connected? The program says command not found or it says the camera is not supported.