折腾OpenWrt

前言

家有newifi mini(学名为Lenovo Newifi mini Y1)路由器,默认用基于PandoraBox的OS。其实PandoraBox是在OpenWrt的基础上魔改得到的,把空间塞满了。于是我决定折腾一下自由的OpenWrt。

这个路由器CPU为MediaTek MT7620A 580MHz,闪存(相当于磁盘)16MB(小得惊人吧!),内存128MB。支持双频的WLAN,有一个USB2接口。

OpenWrt主要就是面向路由器等嵌入式设备的发行版,LEDE则是之前类似的另一个项目,现在已经合并,统称为OpenWrt。

刷入OpenWrt/LEDE

在官网或搜索引擎找到你的硬件在OpenWrt下的页面,下载对应的固件。newifi通过uboot可以很方便刷入任何系统,不过据说国内大部分智能路由器uboot都是被锁的。

完成之后在浏览器中打开192.168.1.1,进入LUCI配置。急需解决的是基本的网络问题,一般是PPPoE和WLAN之类的,可以很快搞定。需要注意第一次登录密码为空,尽快设置好root的密码。

如果你的路由器空间很紧张,比如只有4MB的闪存(难以想象),那么可能连LUCI都装不下。这时只能用ssh登录。当然LUCI有很多事情都干不了,也要用ssh。在Windows下用putty,而*nix应该自带ssh。在只有root用户时,后者用-l选项指定用户名即可。

配置

软件包管理

用ssh登录。首先LUCI可以安装中文翻译包,用opkg install luci-i18n-base-zh-cn。可以看出这个发行版使用opkg软件包管理,最好还是用官方源,国内源支持较少较旧,尽管官方源有点慢。另外每次重启后都应该运行update获取包信息,不会保存在本地的,因为空间很紧张。其实在LUCI里也可以安装,但是列表长得可怕。

然后安装一些自己喜欢的软件包吧,但是需要注意不要超过闪存空间,比如我只有10MB多一点的空间。我装了nano来代替可怕的vi

~~安装luci-ssl提高安全性,对LUCI使用HTTPS。~~还是算了,SSL证书很麻烦。

创建普通用户

OpenWrt默认只能用root登录,不安全也不方便。于是我决定创建普通用户。然而没有现成的命令,必须手动操作。

首先得用ssh登录。编辑/etc/passwd,加入类似zhzh2001:x:233:233:zhzh2001:/home/zhzh2001:/bin/ash。分别表示用户名:密码:用户ID(UID):用户组ID(GID):用户全名:~目录:登录的shell。接下来

1
2
3
$ passwd zhzh2001
$ mkdir /home/zhzh2001
$ chown zhzh2001 /home/zhzh2001

但这样这个用户不能执行管理员操作,装个sudo。然而sudo需要自己配置/etc/sudoer,注意要用root登录修改。然后就可以像正常发行版一样sudo xxx了。

参考https://vladimir-ivanov.net/create-user-without-useradd-command-openwrt/

安装USB

首先需要安装驱动kmod-usb-corekmod-usb-storagekmod-usb2(视需要的USB版本定)。如果像我一样需要用USB3的移动硬盘,那么kmod-usb-storage-uas很可能也要安装,否则可能无法识别移动硬盘。

这样应该能找到/dev/sda1之类的。用block info可以查看文件系统。运行block detect > /etc/config/fstab保存配置,下次用block mount/umount即可挂载。也可以去LUCI里修改,如果有多个设备方便修改。建议勾选LUCI里的”自动挂载未配置的磁盘分区“,可以实现自动挂载。

FAT32(vfat)

如果不需要创建分区(谁会去路由器上创建分区),只要安装kmod-fs-vfat即可读写。

NTFS

如果不需要创建分区,只要安装ntfs-3g即可读写,但性能不保证很好。如果考虑性能,用ext4之类的原生支持的文件系统。

已弃坑存档,下次再说了。