旧笔记本装OpenWrt变软路由

Creative Commons
本作品采用知识共享署名

本文记录将旧笔记本装为openwrt的过程。

固件来源

恩山论坛
https://www.right.com.cn/forum/thread-4053752-1-1.html
上面链接是基于下面的链接定制的,可以通过下面的源代码编译
https://github.com/coolsnowwolf/lede

硬件说明

10年前的上网本Thinkpad E135, 屏幕,键盘都有损坏。CPU是AMD E2-1800, 内存之前加到6G,128G SSD

软件说明

选择20210210 SirpdboyOpenWrt-IPV4P-Firmware.zip下载
该版本是基于x86d的openwrt完整版

烧写

1. 制作启动盘

下载微PE,http://www.wepe.com.cn/download.html
运行后选择安装到U盘.
选择待写入U盘,其它选项都不变.

2. 放置工具

将下载的固件20210210 SirpdboyOpenWrt-IPV4P-Firmware.zip解压缩会得到下面两个文件:
20210210-Ipv4-x86-64-generic-squashfs-combined.img.gz
20210210-Ipv4-x86-64-generic-squashfs-combined.img-efi.gz
我的笔记本支持efi,因此再次解包20210210-Ipv4-x86-64-generic-squashfs-combined-efi.img.gz

1
gzip -d 20210210-Ipv4-x86-64-generic-squashfs-combined-efi.img.gz

得到20210210-Ipv4-x86-64-generic-squashfs-combined-efi.img,将其放入烧写WePE的U盘。
下载”DiskImg物理机专用img写盘工具.zip”,解压缩成exe后也放入WePE的U盘。

3. 刷机

将U盘插入笔记本,开机按F12,选择从U盘启动。启动后会进入Windows PE。
双击进入diskgenius,将SSD硬盘的分区全部删除。
在Windwos PE下打开U盘,双击“DiskImg物理机专用img写盘工具.exe”,然后在选择U盘中的20210210-Ipv4-x86-64-generic-squashfs-combined-efi.img进行烧写。
烧写完后会有3个分区:

  1. BIOS boot: 239k
  2. EFI system: 16M
  3. Openwrt系统:960M
    此时重启机器,进可以从屏幕上看到openwrt的提示,巧回车就进入的console

配置和使用

1.修改IP

刷机完后笔记本的默认IP是192.168.1.1,我们要改成和无线路由一样的网段,并配置IP为192.168.101.66,在console执行vim /etc/config/network,修改为

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'

config globals 'globals'
option ula_prefix 'fdf1:53e1:6bd9::/48'

config interface 'lan'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.101.66'
option netmask '255.255.255.0'
option ip6assign '60'
option ifname 'eth0'
option gateway '192.168.101.1'
option dns '192.168.101.1'

然后保存退出,在console中执行/etc/init.d/network restart命令让其生效。
此时通过其它笔记本的浏览器访问192.168.101.66就可以访问openwrt的webUi了,用户名是root,密码是password。

此时也可以通过ssh来访问,并可以通过opkg install命令来安装各种软件包。

2. 旁路路由

由于openwrt里面没有含E135无线网卡的驱动,因此只能用一个有线网卡,安装了openwrt的笔记本就只能当做旁路路由,上网笔记本上进行配置:在网络连接中将DHCP改为手动配置,将IP地址设置为192.168.101.6, 只要是101网段就可以。掩码设置为255.255.255.0, 网关和DNS设置为openwrt的IP地址192.168.101.66,之后上网的流量就会从openwrt的笔记本上走一圈,目前能走满我的100M带宽,而且CPU使用率低于10%.

3. SSD利用

前面提到了装完openwrt后只有3个分区,总计加起来不到1G,我的SSD有128G,也就是说还有127G没有用,这里用openwrt上自带的fdisk对其进行创建分区,并使用mkfs.ext4进行格式化。注意:不能在WindowsPE下用diskgenius进行分区和格式化,这样会破坏引导区。
创建完成后,在openwrt的webui中的”系统->挂载点”将新格式化的分区进行挂载。

4. 功耗

开机合屏,一般在13W左右。如果打开屏幕会到15W,由于有ssh可以用,所以可以不用笔记本上的屏幕。在openwrt上使用wget下载,CPU占用率90%,也能跑满100M带宽,功耗在20~25W之间跳动。另外就是工作的时候CPU电风扇一直在转。以13W计算,如果24小时开机,大约要耗10度电,如果还要在openwrt上后台一直跑点应用,功耗会更大,因此24小时开始一个月的用电量在10~20度之间。重度用户这个耗电量应该还是算低的。

5. WOL

对于我这个轻度用户,挂机下载不是经常性需求,也不做端口映射对外开服务器,因此完全没有必要24小时开机。只在需要的时候开机,但笔记本必须要把屏打开才能按到电源键,作为一个服务器式的软路由这多少有点不方便。所以就想到用WOL开机,配置方式如下:

  1. 进入openwrt笔记本的BISO,将WOL设置为AC和电池下都可以唤醒。如果只设置AC下可以唤醒,当AC断电再上电后WOL就无法唤醒了。
  2. Windows上安装WakeOnLan, https://www.nirsoft.net/utils/wakemeonlan-x64.zip
  3. 在主力电脑上开机后执行下面脚本,完成openwrt唤醒和旁路由配置
    1
    2
    3
    netsh interface ip set address name="WLAN" source=static addr=192.168.101.6 mask=255.255.255.0 gateway=192.168.101.66
    netsh interface ip set dns name="WLAN" source=static addr=192.168.101.66 register=primary
    & 'D:\Program Files\Aquila Technology\WakeOnLAN\WakeOnLanC.exe' -w -mac 00:00:00:00:00:00

记得将上面的00:00:00:00:00:00修改为openwrt笔记本的MAC地址。