推荐环境: Ubuntu 18 / wsl (Ubuntu 18) / Debian 9 / Arch Linux
经过测试,Padavan固件的编译可在Windows 10 的 wsl (Ubuntu 18.04) 环境中进行(受限于IO性能,编译速度有点慢),推荐没有安装Linux的同学使用此方法进行编译,可以省去装系统的麻烦,但是要注意C盘必须留有足够大的剩余空间(15G+)以容纳wsl
在 Windows 10 部署 wsl (Ubuntu 18.04) 环境仅需四步:
-
控制面板 -> 程序 -> 启用或关闭Windows功能 -> 勾选"适用于Linux的Windows子系统",然后重启电脑
-
打开Microsoft应用商店,安装 Ubuntu 18.04 LTS
-
从开始菜单启动 Ubuntu 18.04,设置好用户名和密码
在shell里依次执行以下命令:更换成国内镜像源并更新所有软件包,同时把/opt目录权限修改成777(执行sudo命令需要输入上一步里设置好的密码)
sudo sed -i 's#http://archive.ubuntu.com#https://mirrors.huaweicloud.com#' /etc/apt/sources.list
sudo sed -i 's#http://security.ubuntu.com#https://mirrors.huaweicloud.com#' /etc/apt/sources.list
sudo apt update
sudo apt upgrade
sudo chmod 777 /opt
- 之后按照下面的步骤进行后续操作,在WSL环境下,需要使用
sudo
进行编译,或者使用fakeroot-tcp
代替fakeroot
。编译完成后用以下命令将编译好的固件复制到C盘根目录:
cp -f /opt/rt-n56u/trunk/images/*.trx /mnt/c
安装依赖包
# 对于deb系 (debian/ubuntu):
sudo apt update
sudo apt install unzip libtool-bin curl cmake gperf gawk flex bison nano xxd \
fakeroot kmod cpio git python3-docutils gettext automake autopoint \
texinfo build-essential help2man pkg-config zlib1g-dev libgmp3-dev \
libmpc-dev libmpfr-dev libncurses5-dev libltdl-dev wget libc-dev-bin
# 对于pacman系 (ArchLinux/manjaro):
sudo pacman -Syu --needed git base-devel cmake gperf ncurses libmpc \
gmp python-docutils vim rpcsvc-proto fakeroot cpio help2man
拉取源码
git clone --depth=1 https://e.coding.net/hanwckf/rt-n56u/padavan.git /opt/rt-n56u
#git clone --depth=1 https://github.com/hanwckf/rt-n56u.git /opt/rt-n56u
准备工具链
cd /opt/rt-n56u/toolchain-mipsel
# (推荐)使用脚本下载预编译的工具链:
sh dl_toolchain.sh
# 或者,也可以从源码编译工具链,这需要一些时间:
./clean_toolchain
./build_toolchain
(可选)修改机型配置文件
nano /opt/rt-n56u/trunk/configs/templates/PSG1218.config
如果需要启用或者关闭某项功能,就将对应的项目赋值成y或者n,或者在其前面加上#
注释符,每个项目的具体说明请参考 README.md
,例如:
#CONFIG_FIRMWARE_CPU_600MHZ=y #表示不将mt7620超频到600Mhz
CONFIG_FIRMWARE_INCLUDE_SCUTCLIENT=y #表示包含scutclient
CONFIG_FIRMWARE_INCLUDE_RTL_SDR=n #代表不包含rtl-sdr
开始编译
cd /opt/rt-n56u/trunk
# 对于WSL环境,需要使用sudo进行编译,或者使用fakeroot-tcp代替fakeroot
fakeroot ./build_firmware_modify PSG1218
# 脚本第一个参数为路由型号,在trunk/configs/templates/中
# 编译好的固件在trunk/images里
# 首次编译完成后,如果需要再次编译其它固件,需要执行清理脚本:
./clean_tree
编译好的.trx固件在trunk/images
里,可直接在breed里刷入;在Padavan里也可以直接从webui更新固件,或者手动将固件上传到路由器中然后用以下命令刷入:
mtd_write -r write <trx文件路径> Firmware_Stub
#例如:mtd_write -r write /tmp/PSG1218.trx Firmware_Stub