完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
为什么想起要把Node.js编译进WRTNode呢,因为最近接触到一个自认为比较好的开源的物联网服务器平台——Coolpy,利用Node.js写成,它的移植性比较高,可以在很多平台上使用,所以我试着把它编译进WRTNode里面哈 我搜索了一些教程,但是在自己动手过程肯定要遇到一些问题,分享给大家 这里我们需要一些为Openwrt系统编译模块的知识 make menuconfig的时候把“build the openwrt SDK toolchain”选中,因为后面编译模块是需要的 为模块node新建一个文件夹,路径为../wrtnode/package/node 然后,我们为加进模块写makefile,内容如下: ================================= # # Copyright (C) 2006-2011 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # include $(TOPDIR)/rules.mk PKG_NAME:=node #node的版本 PKG_VERSION:=v0.10.28 PKG_RELEASE:=2 PKG_SOURCE:=node-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://nodejs.org/dist/${PKG_VERSION} #更改版本时也要修改 PKG_MD5SUM:=87768be7065d2120e71619948ab4bb2d GYP_DEFINES:=v8_use_mips_abi_hardfloat=false v8_can_use_fpu_instructions=false LIBS:=-I$(TOOLCHAIN_DIR)/mipsel-openwrt-linux-uclibc/include/c++/4.8.3/ -I$(TOOLCHAIN_DIR)/mipsel-openwrt-linux-uclibc/include/c++/4.8.3/mipsel-openwrt-linux-uclibc/ include $(INCLUDE_DIR)/package.mk define Package/node DEPENDS:=+libpthread +librt +uclibcxx SECTION:=lang CATEGORY:=Languages TITLE:=Node.js is a platform built on Chrome's JavaScript runtime URL:=http://nodejs.org/ endef define Package/node/description Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices. endef define Build/Prepare $(call Build/Prepare/Default) $(CP) node.patch $(PKG_BUILD_DIR)/ (cd $(PKG_BUILD_DIR); patch -p1 < node.patch; ); endef define Build/Configure (cd $(PKG_BUILD_DIR); export LIBS="$(LIBS)"; export CFLAGS="$(TARGET_CFLAGS) $(LIBS)"; export CXXFLAGS="$(TARGET_CXXFLAGS) $(LIBS)"; export GYPFLAGS="$(GYPFLAGS)"; ./configure --dest-cpu=mipsel --dest-os=linux --without-ssl --without-snapshot --with-ARM-float-abi=soft; ); endef define Build/Compile $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) GYP_DEFINES="$(GYP_DEFINES)" CC="$(TARGET_CC)" CXX="$(TARGET_CXX)" CFLAGS="$(TARGET_CFLAGS) $(LIBS)" CXXFLAGS="$(TARGET_CXXFLAGS) $(LIBS) -nostdinc++" LDFLAGS="$(TARGET_LDFLAGS) -nodefaultlibs -luClibc++ -lc -lgcc -lgcc_s -lpthread" || touch $(PKG_BUILD_DIR)/deps/v8/build/common.gypi $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) GYP_DEFINES="$(GYP_DEFINES)" CC="$(TARGET_CC)" CXX="$(TARGET_CXX)" CFLAGS="$(TARGET_CFLAGS) $(LIBS)" CXXFLAGS="$(TARGET_CXXFLAGS) $(LIBS) -nostdinc++" LDFLAGS="$(TARGET_LDFLAGS) -nodefaultlibs -luClibc++ -lc -lgcc -lgcc_s -lpthread" endef define Package/node/install mkdir -p $(1)/usr/bin $(CP) $(PKG_BUILD_DIR)/out/Release/node $(1)/usr/bin/ ln -s /usr/bin/node $(1)/usr/bin/nodejs endef $(eval $(call BuildPackage,node)) =============================== 1.编译不同版本的node,只要改动版本号和对应的MD5值就行,我们可以人工下载下来,用软件生成MD5值 2.此makefile大概分为几部分:为openwrt的加node选项;node模块的配置;node模块的编译(这也是为什么要选中编译编译工具的原因,当然也可以直接下载编译链工具);node模块的安装 3.我本来想编译最新版的node,但是似乎这个脚本不支持最新的,只支持v0.10.xx的版本 4.这个makefile本来是为Arduino YUN(基于AR9331)写的,因为WRTNode是MTK的MT7688,所以有所不同 a.如果是RT5350,MT7688的CPU,里面有几处的mipsel b.如果是ar71xx的CPU要把里面的几处mipsel(标记为红色)替换成mips c.如果是arm的CPU要把里面的几处mipsel(标记为红色)替换成arm 5.在编译的时候要下载源码包,有时候经常断,所以我们可以帮一把,把需要的源码包放在dl路径下,以加快速度~
写好makefile后,我们会在配置界面的language选项下面见到“node”的选项,“y”选中,为“*”状态 然后就是编译啦,祈祷不要出错啊~ 编译完成后,找wrtnode/bin/ramips/packages目录下是否有生成的包 然而并没有,把我呆住了……
|
|
相关推荐
12 个讨论
|
|
|
做的太棒了!nodejs官方不知道为什么不支持mips,可能是mips太小众了。
|
|
|
|
|
|
|
|
|
我正在学习nodejs。nodejs对树莓派支持很好,最新的源代码直接编译就OK了,不需要修改 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
9432 浏览 0 评论
【KV260视觉入门套件试用体验】四、KV260 视觉入门套件和固件更新
10237 浏览 0 评论
【KV260视觉入门套件试用体验】Vitis AI Library体验之OCR识别
9363 浏览 0 评论
【KV260视觉入门套件试用体验】Vitis AI 通过迁移学习训练自定义模型
10245 浏览 0 评论
【KV260视觉入门套件试用体验】KV260系列之Petalinux镜像+Resnet 50探索
9509 浏览 0 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-4 07:46 , Processed in 0.800520 second(s), Total 60, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2978