我设法做最后的交叉编译串行口,采用最丑陋的方法:)下面是工作的方法:
在本机x86 linux机器上, cd <your work area>
设置的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安装。请注意,由于npm安装坚持要编译64位软件包,所以我必须手动提供--package_name,--hosted_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/
最后,我可以打开串口和准备好的内容。我真的希望有更简单的方法!
快乐黑客!
感谢您的信息尼古拉斯! –