Padavan固件编译办法


推荐环境: 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) 环境仅需四步:

  1. 控制面板 -> 程序 -> 启用或关闭Windows功能 -> 勾选"适用于Linux的Windows子系统",然后重启电脑

    Padavan固件编译办法_第1张图片
    wsl.1

  2. 打开Microsoft应用商店,安装 Ubuntu 18.04 LTS

    Padavan固件编译办法_第2张图片
    wsl.2

  3. 从开始菜单启动 Ubuntu 18.04,设置好用户名和密码

    Padavan固件编译办法_第3张图片
    wsl.3

  4. 在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
  1. 之后按照下面的步骤进行后续操作;
    编译完成后用以下命令将编译好的固件复制到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 \
cpio git python-docutils gettext automake autopoint texinfo build-essential help2man \
pkg-config zlib1g-dev libgmp3-dev libmpc-dev libmpfr-dev libncurses5-dev libltdl-dev

# 对于pacman系 (ArchLinux/manjaro):
sudo pacman -Syu --needed git base-devel cmake gperf ncurses libmpc gmp python-docutils \
vim rpcsvc-proto fakeroot
拉取源码
git clone --depth=1 https://gitee.com/hanwckf/rt-n56u.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

# 或者,也可以从源码编译工具链,这需要一些时间:
# Manjaro/ArchLinux 用户请使用gcc-8
# sudo pacman -S gcc8
# sudo ln -sf /usr/bin/gcc-8 /usr/local/bin/gcc
# sudo ln -sf /usr/bin/g++-8 /usr/local/bin/g++
./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
./clear_tree
fakeroot ./build_firmware_modify PSG1218
#脚本第一个参数为路由型号,当前支持的所有型号在trunk/configs/templates/里面

编译好的.trx固件在trunk/images里,可直接在breed里刷入;在Padavan里也可以直接从webui更新固件,或者手动将固件上传到路由器中然后用以下命令刷入:

mtd_write -r write  Firmware_Stub
#例如:mtd_write -r write /tmp/PSG1218.trx Firmware_Stub

你可能感兴趣的:(Padavan固件编译办法)