yodaos-project / ShadowNode

Use Node.js in your end devices(QQ: 796448809)
https://yodaos-project.github.io/ShadowNode/
Other
588 stars 46 forks source link

Is it support for my "Coin-sized Linux Computer": VoCore2 ? #572

Open Txiaozhe opened 4 years ago

Txiaozhe commented 4 years ago

vocore: https://vocore.io/v2.html

yorkie commented 4 years ago

As it's described as "Linux", ShadowNode is working on Linux :)

Txiaozhe commented 4 years ago

But my device installed one openwrt, and I run the ShadowNode bin for linux in my device, it is not running :(

legendecas commented 4 years ago

Please provide any outputs and details platform information if possible.

Txiaozhe commented 4 years ago

output

root@OpenWrt:~/iotjs/bin#
root@OpenWrt:~/iotjs/bin# ./iotjs
./iotjs: line 1: syntax error: unexpected ")"
root@OpenWrt:~/iotjs/bin#
root@OpenWrt:~/iotjs/bin#
root@OpenWrt:~/iotjs/bin#

platform information: https://vocore.io/v2.html#Parameters

Thanks :)

Txiaozhe commented 4 years ago

I use this https://github.com/yodaos-project/ShadowNode/releases/download/v0.11.7/shadow-node-v0.11.7-Linux-x86_64.tar.gz

yorkie commented 4 years ago

It seems that your device is MIPS and ShadowNode doesn't have this type of pre-release, you need to build it by yourself.

Txiaozhe commented 4 years ago

Okay, I will try it :) thanks

Txiaozhe commented 4 years ago

I tried it: use ubuntu by docker, install some dependents and a MIPS env in it, but my docker is crashed when I build something. If you have some configurations ? Could you please give me some advice ? Thanks :)

Txiaozhe commented 4 years ago

I try to build an openwrt of vocore2 before I build shadownode for MIPS because of the toolchain will be generated after build openwrt. build env: Ubuntu 64bit, 1.3GHz*2, 4GB mem the problem:

  1. firstly it is slowly!
  2. I got error:
    touch /home/txiaozhe/GitHub/openwrt/build_dir/toolchain-mipsel_24kc_gcc-7.3.0_musl/binutils-2.29.1/.built
    touch /home/txiaozhe/GitHub/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.3.0_musl/stamp/.binutils_installed
    make[3]: Leaving directory '/home/txiaozhe/GitHub/openwrt/toolchain/binutils'
    time: toolchain/binutils/compile#151.40#55.70#543.36
    make[2]: Leaving directory '/home/txiaozhe/GitHub/openwrt'
    toolchain/Makefile:96: recipe for target '/home/txiaozhe/GitHub/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.3.0_musl/stamp/.toolchain_compile' failed
    make[1]: *** [/home/txiaozhe/GitHub/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.3.0_musl/stamp/.toolchain_compile] Error 2
    make[1]: Leaving directory '/home/txiaozhe/GitHub/openwrt'
    Build failed - please re-run with -j1 to see the real error message
    /home/txiaozhe/GitHub/openwrt/include/toplevel.mk:216: recipe for target 'world' failed
    make: *** [world] Error 1
    txiaozhe@txiaozhe-UL30A:~/GitHub/openwrt$ 
    txiaozhe@txiaozhe-UL30A:~/GitHub/openwrt$ 
    txiaozhe@txiaozhe-UL30A:~/GitHub/openwrt$ 

    Could you please take a look and give me some advice ? Thanks:)

yorkie commented 4 years ago

@Txiaozhe this build has not entered the ShadowNode package yet, it seems failed on your toolchain.

Txiaozhe commented 4 years ago

@Txiaozhe this build has not entered the ShadowNode package yet, it seems failed on your toolchain.

Yes, the fail happened in my building toolchain

Txiaozhe commented 4 years ago

@Txiaozhe this build has not entered the ShadowNode package yet, it seems failed on your toolchain.

Yes, the fail happened in my building toolchain

Because, I need to build shadownode, the toolchain is needed, but if i want to get the toolchain for vocore , I must build openwrt for vocore. The doc of vocore say that.

yorkie commented 4 years ago

Unfortunately I'm not familiar with the vocore build system, and compiling ShadowNode for mips should not depend on openwrt or buildroot, as I described before, creating your toolchain file should be enough.

yorkie commented 4 years ago

BTW, if you still need a openwrt package, a working version is here: https://github.com/yodaos-project/yodaos/tree/v9.x/openwrt/package/yodaos/shadow-node.

Txiaozhe commented 4 years ago

Thanks, I got my toolchain file and I use this cmd to build shadownode for vocore:

$ tools/build.py --clean --target-os linux --cmake-toolchain-file /my/toolchain/dir/file

but I got an error:

Could not find toolchain file

but I check the path for this toolchain, it is right.

qile222 commented 4 years ago

Is this path /my/toolchain/dir/file correct ?

Txiaozhe commented 4 years ago

Is this path /my/toolchain/dir/file correct ?

Yes,I am sure. It is the absolute path of this toolchain file.

yorkie commented 4 years ago
toolchain

Report a complete error?

Txiaozhe commented 4 years ago

error info:

/home/txiaozhe/GitHub/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.3.0_musl/bin/mipsel-openwrt-linux-gcc:1:
Parse error.  Expected a command name, got unquoted argument with text "ELF".
CMake Error at /usr/share/cmake-3.5/Modules/CMakeDetermineSystem.cmake:104 (message):
  Could not find toolchain file:
  /home/txiaozhe/GitHub/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.3.0_musl/bin/mipsel-openwrt-linux-gcc
Call Stack (most recent call first):
  CMakeLists.txt:17 (project)

CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!

[Failed - 1] cmake -B/home/txiaozhe/GitHub/ShadowNode/build/openwrt-linux/debug -H/home/txiaozhe/GitHub/ShadowNode -DCMAKE_TOOLCHAIN_FILE='/home/txiaozhe/GitHub/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.3.0_musl/bin/mipsel-openwrt-linux-gcc' -DCMAKE_BUILD_TYPE=Debug -DTARGET_ARCH=openwrt -DTARGET_OS=linux -DTARGET_BOARD=None -DPLATFORM_DESCRIPTOR=openwrt-linux -DENABLE_LTO=OFF -DENABLE_SNAPSHOT=ON -DBUILD_LIB_ONLY=OFF -DBUILD_STATIC=OFF -DINSTALL_PREFIX=/usr/local -DFEATURE_MEM_STATS=OFF -DFEATURE_CPU_PROFILER=OFF -DFEATURE_HEAP_PROFILER=OFF -DEXTERNAL_MODULES='' -DFEATURE_PROFILE='/home/txiaozhe/GitHub/ShadowNode/deps/jerry/jerry-core/profiles/es5.1.profile' -DMEM_HEAP_SIZE_KB=4096 -DEXTERNAL_LIBS='' -DEXTERNAL_COMPILE_FLAGS='' -DEXTERNAL_LINKER_FLAGS='' -DEXTERNAL_INCLUDE_DIR=''

txiaozhe@txiaozhe-UL30A:~/GitHub/ShadowNode$ 
txiaozhe@txiaozhe-UL30A:~/GitHub/ShadowNode$ 
txiaozhe@txiaozhe-UL30A:~/GitHub/ShadowNode$ 
Txiaozhe commented 4 years ago

build env: build env: Ubuntu 16.04 LTS 64bit, 1.3GHz*2, 4GB mem

yorkie commented 4 years ago

/home/txiaozhe/GitHub/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.3.0_musl/bin/mipsel-openwrt-linux-gcc

Please make sure your toolchain is working on your host machine, it seems getting the following error: Expected a command name, got unquoted argument with text "ELF���"

qile222 commented 4 years ago

Use uname -a to determine your architecture then download the right toolchain

Txiaozhe commented 4 years ago

The architecture of my vocore is: Linux OpenWrt 3.18.29 #3 Sat Aug 25 14:47:39 UTC 2018 mips GNU/Linux

And what the awkward is I can not download the toolchain anyway but can only generated after compile the OpenWrt for vocoreV2.

The document of vocoreV2 says:

note: To get toolchain, please check github.com/vonger/vocore2, after compile openwrt you will get it.

I read the doc of 'github.com/vonger/vocore2' and compiled it but the generated toolchain looks like invalid :(