node-red 1.0.x 的时候重新安装过。上篇里有错误描述的地方,以此篇中改正。
rockpis是一款低功耗的小板子,arm-cortex a35架构,4核心。不到1瓦的功耗中,有线网卡占了一半。某宝上购买,建议买不带存储的型号,70元的价位。
树莓派则是功耗高,发烫。
恩智浦的 i.mx6ull 是上一代低功耗架构 A7的芯片,老了,太慢。米家网关(第二款)用过这个芯片。
系统的准备。用balenaEtcher-Portable 将官方提供的系统镜像烧写到卡里。用 rock 作为用户名和密码登录。
登陆后显示 Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.4.143-55-rockchip-g6b7accbc999b aarch64
修改为root登录,密码设为 rock 吧。
rock@rockpis:~$ sudo passwd root
Enter new UNIX password: rock
Retype new UNIX password: rock
passwd: password updated successfully
修改sshd(不是ssh)配置文件,允许root登录。
rock@rockpis:~$ su root
Password: rock
root@rockpis:~# vi /etc/ssh/sshd_config
按下 insert 键,添加下行内容。
PermitRootLogin yes
按 esc键,输入 :wq (冒号 wq)保存和退出
apt update -y
apt clean
这里不是 apt upgrade。显示内存卡容量和内容容量如下。
root@rockpis:/usr/local# df -hT
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 210M 0 210M 0% /dev
tmpfs tmpfs 43M 304K 43M 1% /run
/dev/mmcblk0p2 ext4 15G 541M 14G 4% /
tmpfs tmpfs 213M 0 213M 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs tmpfs 213M 0 213M 0% /sys/fs/cgroup
tmpfs tmpfs 43M 0 43M 0% /run/user/0
root@rockpis:/usr/local# free -h
total used free shared buff/cache available
Mem: 425M 36M 166M 304K 222M 378M
Swap: 0B 0B 0B
安装解压缩算法。
node-v14.15.4-linux-arm64.tar.xz
用 winSCP将 node-v14.15.4-linux-arm64.tar.xz 上传到 /usr/local/目录下(非必须)
回到命令行,cd /usr/local,运行
node-v14.15.4-linux-arm64.tar.xz
mv node-v14.15.4-linux-arm64 ./node
rm -f node-v14.15.4-linux-arm64.tar.xz
ln -s /usr/local/node/bin/node /usr/bin/node
ln -s /usr/local/node/lib/node_modules/npm/bin/npm-cli.js /usr/bin/npm
ln -s /usr/local/node/lib/node_modules/npm/bin/npx-cli.js /usr/bin/npx
这里没有在修改环境变量path。在systemd中path不好用,所以用软连方式。启动脚本red.js里,path也不好用。
不用重启,也不用source变量。查看下
root@rockpis:/usr/local# npm -v
6.14.10
root@rockpis:/usr/local# node -v
v14.15.4
root@rockpis:/usr/local# npx -v
6.14.10
root@rockpis:/usr/local# mkdir nodered
root@rockpis:/usr/local# cd nodered
建目录,存放nodered的程序。先完善编译环境。
root@rockpis:/usr/local/nodered# apt install gcc g++ make -y
root@rockpis:/usr/local/nodered# apt install python3 -y
npm install --save node-pre-gyp --registry=https://registry.npm.taobao.org
nodejs中已经内置了 node-gyp,这个算是是编译的管理方式。
npm install --save node-pre-gyp --registry=https://registry.npm.taobao.org
剩下的各项,基本上是上一篇中的内容。
这次,串口似乎没有问题了,不用单独安装了。(安装 modbus就行)
安装完成,启动后,占用空间如下
root@rockpis:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 210M 0 210M 0% /dev
tmpfs 43M 300K 43M 1% /run
/dev/mmcblk0p2 15G 1.2G 13G 9% /
tmpfs 213M 0 213M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 213M 0 213M 0% /sys/fs/cgroup
tmpfs 43M 0 43M 0% /run/user/0
root@rockpis:~# free -h
total used free shared buff/cache available
Mem: 425M 122M 105M 300K 197M 292M
Swap: 0B 0B 0B
systemd的脚本 nodered.service,内容如下
[Unit]
Description=Node-RED graphical event wiring tool
Wants=network.target
Documentation=http://nodered.org/docs/hardware/raspberrypi.html
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/var/nodered/
Nice=5
Environment="NODE_OPTIONS=--max_old_space_size=256"
ExecStart=/usr/local/nodered/node_modules/node-red/red.js
# Use SIGINT to stop
KillSignal=SIGINT
# Auto restart on crash
Restart=on-failure
# Tag things in the log
SyslogIdentifier=Node-RED
#StandardOutput=syslog
[Install]
WantedBy=multi-user.target