OpenWrt Node.js Packages : for Head (Development branch)
Note: support arches are aarch64, arm, x86_64
See LICENSE file.
Add the following line to feeds.conf or feeds.conf.default.
src-git node https://github.com/nxhack/openwrt-node-packages.git
Run
./scripts/feeds update node
rm ./package/feeds/packages/node
rm ./package/feeds/packages/node-*
./scripts/feeds install -a -p node
make defconfig
If you want a new module (native module) that requires a precompiled binary, please open the issue.
If you want to use with 23.05, see openwrt-23.05 branch (Current stable series)
On the host side, the following preparations are required.
sudo apt-get install gcc-multilib g++-multilib
V8 JIT code generates FP instruction. Node.js does not work without hardware FPU.
If you are running nodejs on the Atheros AR71xx/AR933x, MediaTek MT76x8, it will not work because there is no hardware FPU. ARM cores without vfp or neon (such as bcm53xx) will not work either.
Processor | ICU | Inspector |
---|---|---|
32bit | Disable | NO |
32bit | small-icu | YES |
64bit | Disable | NO |
64bit | small-icu | YES |
64bit | system-icu | YES |
Debugging Guide Nice to use Chrome DevTools.
Note: ICU currently supports only LITTLE ENDIAN.
Read this document: mDNS Options
If you want, you can install the OpenWrt mDNS package (umdns / avahi-dbus-daemon / mdnsresponder).
(1) Some OpenWrt / Lede images have built in dnscrypt-proxy package, which by default listening on 5353 port.
In that case, installed avahi-daemon will not start on ipv4 interface, only on ipv6 because ipv4 port is taken.
This will lead to strange issue: your homebrdge accessory will be visible in 'Home' app, but can't finish pairing.
To fix this, you have to stop and disable dnscrypt-proxy
Also, you have to enable: dbus and avahi-daemon services to start automatically, i.e for Lede:
/etc/init.d/dbus enable
/etc/init.d/avahi-daemon enable
(2) avahi on home network
Please read this document. 'Why avahi and bonjour don't work on your home network'
IGMP-querier will solve your problem.
OpenWrt allows "multicast_querier" (IGMP-querier) to be set when "igmp_snooping" is enabled.
OpenWrt custom packages available: https://github.com/nxhack/openwrt-custom-packages
Specify v8-options.
--optimize_for_size --max_old_space_size=128 --gc_interval=100
For Reference: Avoid Garbage.
Or use swap.
node-authenticate-pam
node-aws-crt
node-bcryp
node-bignum
node-bluetooth-hci-socket
node-bufferutil
node-deasync
node-ejdb2_node
node-epoll
node-expat
node-ffi-napi (ffi-napi, ref-napi)
node-fuse-bindings
node-hid
node-pty-prebuilt-multiarch
node-i2c-bus
node-leveldown
node-megahash
node-mdns
node-net-ping (raw-socket)
node-openzwave-shared
node-pi-spi
node-pty
node-rpio
node-serialport-bindings
node-sleep
node-spi-device
node-sqlite3
node-statvfs
node-ubus
node-usb
node-utf-8-validate
node-zigbee2mqtt (@serialport/bindings,unix-dgram)
Other modules can be installed by 'npm install'.
See CONTRIBUTING.md file.