目录
- 打开ssh功能
- 安装entware
- 使用感想
- 备份和还原entware
- 注意
- 程序开启启动
- 参考文章
本想在极1S上安装些程序,结果登录ssh后发现系统自带的opkg有限制,即使更改为openWRT的源也不能安装,说各种不兼容。于是打算装entware。
entware是面向 Linux 设备的软件仓库集成工具,支持x86,x64,arm,mips架构。详情可以去仓库看。有了它就可以像普通linux主机使用apt一样安装各种程序了。
把它装在U盘或者SD卡中,可以看成便携式小系统。如果不想用entware及其软件,只需要拔下U盘或者SD卡。
对于极1S来说,需要准备SD卡,把entware安装在SD卡中。
打开ssh功能
参考这篇文章即可。
这里简单总结下:
在路由器上插入SD卡,在管理页面点击格式化(如果说不能挂载,需要格式化),然后通过smb来传文件,在电脑资源管理器里输入“\\hiwifi.com”(或“\\HIWIFI”),进入mobile文件夹。


在其中新建一个文本test.sh,内容如下:
#!/bin/bash# 启动SSH并设置自动启动
sed -i 's/1022/22/g' /etc/config/dropbear
/etc/init.d/dropbear enable
/etc/init.d/dropbear start
在管理界面安装定时重拨插件,不过该插件下架了,搜不到,先随便点击一个插件,把地址栏中的sid字段替换成sid=118284854,然后安装。

安装完成后在规则中输入以下代码。刚才在SMB的mobile中新建的test.sh就在/tmp/data/hwf_download/mobile/下。
* * * * * sh /tmp/data/hwf_download/mobile/test.sh
使用putty登录SSH,如果说连接不上拒绝连接之类的则需要等待片刻。账户是root,密码就是路由器后台管理页的密码。登录上之后就可以删除定时重拨插件了。


安装entware
本文把entware安装到SD卡中的mobile/others文件夹中。
在终端中依次执行以下2条命令,会新建/opt目录,然后把mobile/others挂载到/opt。不像其他文章把SD卡设备挂载过去,这样文件会比较混乱。
mkdir -p /opt
mount -o bind /tmp/data/hwf_download/mobile/others /opt
去仓库下载generic.sh,用SMB传到mobile文件夹,然后执行/tmp/data/hwf_download/mobile/generic.sh
没错极1S要选mipselsf-k3.4目录下的。
不出意外的话,会提示如下,如果没错误则安装成功。
generic.sh脚本执行的主要是一些文件的下载和复制。我在安装时遇到wget下载超时失败的问题,重试了很久,最后把一些文件先下载到电脑上再传到SD卡上,修改脚本再执行的。
Info: Congratulations!
Info: If there are no errors above then Entware was successfully initialized.
Info: Add /opt/bin & /opt/sbin to $PATH variable
Info: Add "/opt/etc/init.d/rc.unslung start" to startup script for Entware services to start
还没完呢,按照上面的提示,要设置环境变量和启动服务。
设置环境变量:
export PATH="/opt/bin:/opt/sbin:"${PATH}
到这里执行which opkg 返回结果是/opt/bin/opkg则说明安装成功。此时可以利用opkg install htop类似的命令安装程序。
目前设置仅在当前会话有效,会在重启后消失,需要修改开启启动相关文件,使之开机即可使用entware。
开机设置环境变量。修改文件 /etc/profile,在最后面添加代码 . /opt/etc/profile 。注意点后面有空格。

用vi修改/etc/rc.local ,在exit 0前添加3行代码,即挂载目录和启动entware服务,效果如下:

到这里才算完整的安装。可以重启下测试效果。
列出下自己安装的程序: screen, nano, iftop, htop, wget, curl, php-cli 。
使用感想
- 利用smb方便管理和测试程序。把程序直接拖进smb://hiwifi.com/mobile/others,然后在SSH中cd到/opt就可以测试了。

- entware的grep支持正则,系统自带的不支持。
- 使用entware的wget貌似不会出现下载超时失败的情况。
备份和还原entware
有一次路由器玩坏了不能启动,内存卡没拔下来,点了重置按钮结果内存卡内容也清空了。然后漫长的又安装了一遍entware。重置一定要拔卡。也要有备份的习惯。
备份到mobile目录:
cd /tmp/data/hwf_download/mobile/
tar -zcvf entware_opt.tar.gz others
还原命令:
cd /tmp/data/hwf_download/mobile/
tar -zxvf entware_opt.tar.gz -C /tmp/storage/mmcblk0/hwf_download/mobile
注意
如果你想安装极路由官方市场上的app,请在环境变量PATH中删除/opt相关条目,不然它会调用entware的opkg。让它使用系统的opkg来装,不然可能会出现问题。
程序开启启动
如果想让entware安装的软件开机启动,你需要自己写启动脚本。比如说像zerotier这种组网程序,安装后没有自启动。zerotier-one进程不启动的情况下执行zerotier-cli join XXXX命令入网会报错zerotier-cli: missing port and zerotier-one.port not found in /opt/var/lib/zerotier-one,连入网都操作不了。不开机启动这个进程则无法组网。需要在/opt/etc/init.d/ 中添加启动脚本。
注意脚本的写法和系统/etc/init.d/的不一样。具体参考wiki。这个文件夹中的启动脚本由rc.func和rc.unslung管理,具体功能可以打开这两个脚本文件看看。
注意命名方式,是大小的“S”跟着数字的形式。各个脚本会安装数字顺序启动。这里的例子名称是S86zerotier,内容如下,写法其实很简单,主要是变量赋值,各个变量的用途请查看rc.func和rc.unslung。注意写完要赋予执行权限,不用enable就能生效。使用./S86zerotier start测试即可。
#!/bin/sh
ENABLED=yes
PROCS=zerotier-one
ARGS=""
PRECMD=""
PREARGS=""
DESC=$PROCS
POSTCMD=""
PATH=/opt/bin:/opt/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/tmp/cryptdata/bin:/tmp/cryptdata/sbin:/tmp/cryptdata/usr/bin:/tmp/cryptdata/usr/sbin
. /opt/etc/init.d/rc.func
参考文章
1: 极路由1S(HC5661A)开启SSH功能
2:在LEDE上使用Entware
3:How to add a new package













