node.js – 在arm-linux上安装node-serialport模块

我一直在
linux X86机器上使用node-serialport,效果很好.现在我试图在运行arm linux的嵌入式平台上安装node-serialport.我设法交叉编译节点本身,并能够在目标平台上运行node / npm.

但是,只运行npm install serialport不起作用:

binary not available for your platform 

然后npm使用node-gyp启动构建.不幸的是,构建需要Python,这在我的嵌入式平台上是不可用的(尝试交叉编译python而没有成功:()

任何人都可以帮我在linux机器上交叉编译串口吗?我在网上尝试了很多方法,但所有这些方法都出于某种原因而失败了

最佳答案 我设法最后使用最丑的方法做交叉编译串口:)以下是有效的方法:

在本机x86 linux框中,
cd

设置cross_compiler工具环境变量:

export AR=arm-marvell-linux-gnueabi-ar
export CC=arm-marvell-linux-gnueabi-gcc
export CXX=arm-marvell-linux-gnueabi-g++
export LINK=arm-marvell-linux-gnueabi-g++
export npm_config_arch=arm
export npm_config_nodedir=/home/ysoni/node

现在运行npm install.请注意,因为npm安装坚持我应该编译64位包,所以我不得不手动提供–package_name, – atom_path等.我从serialport网站获得了这些参数.

npm install serialport --arch=x64 --target_arch=arm  --remote_path=./serialport/v1.4.0/Release/ --package_name=node-v11-linux-ia32.tar.gz --staged_tarball=build/stage/serialport/v1.4.0/Release/node-v11-linux-ia32.tar.gz --hosted_path=https://node-serialport.s3.amazonaws.com/serialport/v1.4.0/Release/ --hosted_tarball=https://node-serialport.s3.amazonaws.com/serialport/v1.4.0/Release/node-v11-linux-ia32.tar.gz

将生成包含.bin和serialport文件夹的node_modules目录.
现在,将node_modules的内容复制到target_platform.
我编写了一个示例.js脚本来测试是否可以打开串行设备.该脚本必须与node_modules位于同一目录中.

预计必须有一个最后的障碍!!很奇怪,我不得不做一些重命名.您的平台可能不需要这样做:

busybox mv node_modules/serialport/build/serialport/v1.4.2/Release/node-v11-linux-arm/ node_modules/serialport/build/serialport/v1.4.2/Release/v8-3.11-linux-arm/

最后,我可以打开serialport和准备好的内容.我真的希望有更简单的方法!

快乐的黑客!!

点赞