node-red 1.0.x 的時候從新安裝過。上篇裏有錯誤描述的地方,以此篇中改正。html
rockpis是一款低功耗的小板子,arm-cortex a35架構,4核心。不到1瓦的功耗中,有線網卡佔了一半。某寶上購買,建議買不帶存儲的型號,70元的價位。node
樹莓派則是功耗高,發燙。python
恩智浦的 i.mx6ull 是上一代低功耗架構 A7的芯片,老了,太慢。米家網關(第二款)用過這個芯片。linux
系統的準備。用balenaEtcher-Portable 將官方提供的系統鏡像燒寫到卡里。用 rock 做爲用戶名和密碼登陸。算法
登錄後顯示 Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.4.143-55-rockchip-g6b7accbc999b aarch64 npm
修改成root登陸,密碼設爲 rock 吧。架構
rock@rockpis:~$ sudo passwd root
Enter new UNIX password: rock
Retype new UNIX password: rock
passwd: password updated successfullyssh
修改sshd(不是ssh)配置文件,容許root登陸。spa
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