Home

Awesome

OpenWrt Node.js Packages (nodejs)

Description

OpenWrt Node.js Packages : for Head (Development branch)

Note: support arches are aarch64, arm, x86_64

License

See LICENSE file.

Usage

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

Request to add a package is welcome

If you want a new module (native module) that requires a precompiled binary, please open the issue.

Note

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

Illegal instruction issue

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.

Enable Inspector

ProcessorICUInspector
32bitDisableNO
32bitsmall-icuYES
64bitDisableNO
64bitsmall-icuYES
64bitsystem-icuYES

Debugging Guide Nice to use Chrome DevTools.

Note: ICU currently supports only LITTLE ENDIAN.

Note about mDNS and homebridge

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

Low memory

Specify v8-options.

--optimize_for_size --max_old_space_size=128 --gc_interval=100

For Reference: Avoid Garbage.

Or use swap.

Modules that use pre-compiled binary (native module)

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'.

Package Guidelines

See CONTRIBUTING.md file.