文章

Lean OpenWrt 编译使用小记

Lean OpenWrt 是 Lean 大佬修改的 OpenWrt 开源版本,和 KoolLede 是国内两个比较有名的分支。Lean OpenWrt 不提供预编译文件,所以想使用的话需要自己编译一遍。

编译需要使用 Ubuntu 系统,不要使用 WSL 会出问题。 编译没什么好说的,README 里面写的很详细一步步来就行了,推荐使用这个脚本白嫖下 Github 的服务器来云编译。

编译选项

如果没什么特别要求,保持默认就行,但来刷 Lean 的基本上都有一些奇奇怪怪的需求😁

这里有插件清单,包括 xls 格式的:https://www.right.com.cn/forum/thread-344825-1-1.html

酸乳饮料

Lean 内置的酸乳饮料插件很好用,而且没发布到官方源,也是很多同学来的目的。可惜现在默认给取消了,找回来分三步:

  1. 取消 feeds 注释。修改一下 feeds.conf.default 文件,去掉最后一行 helloword 的注释。重新执行 ./script/feeds update -a && ./script/feeds install -a. 如果是云编译,修改一下 diy-part1.sh 取消带 helloword 那一行的注释。
  2. make menuconfig 生成配置文件的时候,在 LuCI - Applications 里选中 luci-app-***-plus.
  3. 系统安装完毕后如果找不到菜单,那命令行执行一下 0xDEADBEEF > /etc/config/google_fu_mode 就可以了。

IPv6

Lean OpenWrt 默认不支持 IPv6,启用的话在 Extra packages 里选中 ipv6helper 就好啦,所需的依赖会自动勾选。

Samba4

默认安装的是 Samba36 不支持 Win8 之后使用的 Samba3 协议。如果直接勾选 Samba4 编译的话会报冲突,然而 Samba36 还无法取消勾选😶 按照下面步骤来就行了:

  1. Extra packages 里取消勾选 autosamba.
  2. LuCI - Applications 里取消勾选 luci-app-samba,勾选 luci-app-samba4.
  3. Network 里取消 samba36-server.

写入固件

假设写入内置存储,u 盘启动进入 PE 系统,先删除内置存储所有分区,执行 physdiskwrite -u [*.img] 然后选择磁盘编号就行了。physdiskwrite 官方下载在这里

写入之后重启并从内置存储启动,就能顺利进入系统命令行。默认情况下控制台地址是 192.168.1.1,如果和其他设备冲突的话,可以顺手先改一下。编辑 /etc/config/network,修改 lan 接口的 ipaddr 属性为希望的 ip 地址。

Smba4

autosmb 目前不支持 Smba4,也就是说插入设备后得手动去设置一下共享。在服务 - 网络共享里添加一下,然后记得执行 /etc/init.d/samba4 restart 重启服务,否则似乎修改不生效。

另外安装的是 4.11 版本,默认禁用了 SMB1 协议,对于一些老的操作系统(比如电视盒子)可能无法访问。点击 编辑模板,加上两行配置:

server min protocol = NT1
client min protocol = NT1

NT1 是协议版本,可选值在参考文档里列出了。

访问光猫

首先确认路由器与光猫不在一个网段下,然后执行下面三个命令:

ifconfig eth0 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255
iptables -I forwarding_rule -d 192.168.1.1 -j ACCEPT
iptables -t nat -I postrouting_rule -d 192.168.1.1 -j MASQUERADE

其中第一行第一个是与光猫同网段的任意一个 ip,用于分配给路由器。eth0 是光猫连接的路由器端口。 第二三行是光猫的实际 ip.

上面命令重启后需要重新执行,可以加到开机启动项里。

挂载剩余空间

查看分区情况

默认情况下只会格式化并挂载镜像内指定的大小,剩余内存空间都浪费了。先执行 fdisk -l 查看磁盘分区情况。可以看到总共 29.51G 的 SSD 只用了 1G 左右。

root@OpenWrt:~# fdisk -l

Disk /dev/sda: 29.51 GiB, 31675383808 bytes, 61865984 sectors
Disk model: CNCTION 32GB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x319d78ac

Device     Boot Start     End Sectors Size Id Type
/dev/sda1  *      512   33279   32768  16M 83 Linux
/dev/sda2       33792 2130943 2097152   1G 83 Linux

创建分区

可以使用 fdisk 来创建分区,不过这里选择更直观的 cfdisk,记得先 opkg update && opkg install cfdisk 安装一下。很明显看出有剩余28.5G 的空间没有分配。

选中剩余空间,依次点击 New - Primary - Write - yes - Quit完成分区划分。此时再执行 fdisk -l 可以看到新分区了:

Disk /dev/sda: 29.51 GiB, 31675383808 bytes, 61865984 sectors
Disk model: CNCTION 32GB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x319d78ac

Device     Boot   Start      End  Sectors  Size Id Type
/dev/sda1  *        512    33279    32768   16M 83 Linux
/dev/sda2         33792  2130943  2097152    1G 83 Linux
/dev/sda3       2131968 61865983 59734016 28.5G 83 Linux # <<<<<<<<<<

格式化并挂载

执行 mkfs.ext4 /dev/sda3 格式化新的分区。OpenWrt 默认没有生成 /opt 目录,这个通常用于安装自定义程序、大型程序等等。我们不妨干脆挂载为 opt 来使用。

mkdir /opt
mount -o rw /dev/sda3 /opt

最后执行 df -h 看一下挂载情况:

root@OpenWrt:/# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                48.3M     48.3M         0 100% /rom
tmpfs                     1.9G     11.3M      1.9G   1% /tmp
/dev/loop0              973.9M    154.2M    819.7M  16% /overlay
overlayfs:/overlay      973.9M    154.2M    819.7M  16% /
/dev/sda1                15.7M      4.9M     10.5M  32% /boot
/dev/sda1                15.7M      4.9M     10.5M  32% /boot
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/sda3                27.9G     44.0M     26.4G   0% /opt #<<<<<<<<

现在剩余空间可以正常使用了,并且挂载为了 /opt.