Skip to content
KARINKARIN
博客主页
项目总览
知识要点
捣鼓折腾
Git笔记
Excel修炼秘籍
github icon
  • 博客主页
    • 项目总览
        • 瞎折腾
          • 【Padavan】固件编译
            • 固件说明
              • 本地编译
                • 1、安装依赖包
                  • 2、克隆源码
                    • 3、准备工具链
                      • 4、自定义插件(可选)
                        • 5、修改机型配置文件(可选)
                          • 6、清理代码树并开始编译
                          • 云编译
                            • 1、进入项目地址
                              • 2、Fork 项目
                                • 3、进入已 Fork 的项目
                                  • 4、找到 build-padavan.yml
                                    • 5、编辑 build-padavan.yml
                                      • 6、修改型号
                                        • 7、自定义插件
                                          • 8、提交修改
                                            • 9、点击 star
                                              • 10、继续
                                                • 11、刷新确认
                                                  • 12、等待完成
                                                    • 13、查看下载
                                                    • 参考文档
                                                    • 【OpenWRT】固件编译
                                                      • 【openwrt】编译F大N1固件
                                                        • 【斐讯N1】Armbian
                                                          • 【斐讯N1】开机第一屏logo替换
                                                            • 【贝壳云】改造计划
                                                              • 【小娱C1C5】改造计划
                                                                • 【小娱C1C5】刷机
                                                                  • 【RM2100】刷机救转
                                                                    • 【魔百合Q5】改造计划
                                                                      • 【MSG1500】刷机
                                                                        • 【VuePress】博客搭建
                                                                          • 【bootimg】解包打包
                                                                            • 【squashfs】解包打包

                                                                            【Padavan】固件编译

                                                                            author iconkarincalendar icon2021年4月9日category icon
                                                                            • 折腾
                                                                            tag icon
                                                                            • padavan
                                                                            timer icon大约 7 分钟

                                                                            此页内容
                                                                            • 固件说明
                                                                            • 本地编译
                                                                              • 1、安装依赖包
                                                                              • 2、克隆源码
                                                                              • 3、准备工具链
                                                                              • 4、自定义插件(可选)
                                                                              • 5、修改机型配置文件(可选)
                                                                              • 6、清理代码树并开始编译
                                                                            • 云编译
                                                                              • 1、进入项目地址
                                                                              • 2、Fork 项目
                                                                              • 3、进入已 Fork 的项目
                                                                              • 4、找到 build-padavan.yml
                                                                              • 5、编辑 build-padavan.yml
                                                                              • 6、修改型号
                                                                              • 7、自定义插件
                                                                              • 8、提交修改
                                                                              • 9、点击 star
                                                                              • 10、继续
                                                                              • 11、刷新确认
                                                                              • 12、等待完成
                                                                              • 13、查看下载
                                                                            • 参考文档

                                                                            # 固件说明

                                                                            • 默认登陆IP:192.168.2.1
                                                                            • 默认用户名/密码:admin/admin
                                                                            • 默认wifi密码:1234567890
                                                                            • 集成/取消新增插件请修改此文件:trunk/build_firmware_modify
                                                                            • 已适配除官方适配外的以下机型
                                                                              • MI-R3P(感谢群里emmmm适配,可能led控制有点问题,其它功能正常)
                                                                              • 京东云路由(文件来自Lintel) 编译代码: JDC-1
                                                                              • 歌华链(感谢群里Heaven适配与测试)编译代码: GHL
                                                                              • NEWIFI-D1
                                                                              • B70(感谢Untitled提供荒野无灯的适配文件)
                                                                              • JCG-AC856M(感谢群里的旅途中的我适配和测试,gpio值还未完全适配,但不影响使用)
                                                                              • JCG-AC836M(感谢群里的碧霄客修改和测试)
                                                                              • YK-L1(L1、L1C、L1W通刷)
                                                                              • PSG712
                                                                              • PSG1208
                                                                              • PSG1218
                                                                              • 5K-W20 (USB)
                                                                              • OYE-001 (USB)
                                                                              • NEWIFI-MINI (USB)
                                                                              • MI-MINI (USB)
                                                                              • MI-3 (USB)
                                                                              • MI-R3G (USB)
                                                                              • HC5661A
                                                                              • HC5761A (USB)
                                                                              • HC5861B
                                                                              • 360P2 (USB)
                                                                              • MI-NANO
                                                                              • MZ-R13
                                                                              • MZ-R13P
                                                                              • RT-AC1200GU (USB)
                                                                              • XY-C1 (USB)
                                                                              • WR1200JS (USB)
                                                                              • NEWIFI3 (USB)
                                                                              • B70 (USB)
                                                                              • A3004NS (USB)
                                                                              • K2P
                                                                              • K2P-USB (USB)
                                                                              • JCG-836PRO (USB)
                                                                              • JCG-AC860M (USB)
                                                                              • DIR-882 (USB)
                                                                              • DIR-878
                                                                              • MR2600 (USB)
                                                                              • WDR7300
                                                                              • RM2100
                                                                              • R2100

                                                                            # 本地编译

                                                                            # 1、安装依赖包

                                                                            # 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 wget
                                                                            
                                                                            # CentOS 7
                                                                            sudo yum update
                                                                            sudo yum install ncurses-* flex byacc bison zlib-* texinfo gmp-* mpfr-* gettext libtool* libmpc-* gettext-* python-docutils nano help2man fakeroot
                                                                            sudo yum groupinstall "Development Tools"
                                                                            
                                                                            # CentOS 8
                                                                            sudo yum update
                                                                            sudo yum install ncurses-* flex byacc bison zlib-* gmp-* mpfr-* gettext libtool* libmpc-* gettext-* nano fakeroot
                                                                            sudo yum groupinstall "Development Tools"
                                                                            # CentOS 8不能直接通过yum安装texinfo,help2man,python-docutils。请去官网下载发行的安装包编译安装
                                                                            # 以texinfo为例
                                                                            # cd /usr/local/src
                                                                            # sudo wget http://ftp.gnu.org/gnu/texinfo/texinfo-6.7.tar.gz
                                                                            # sudo tar zxvf texinfo-6.7.tar.gz
                                                                            # cd texinfo-6.7
                                                                            # sudo ./configure
                                                                            # sudo make
                                                                            # sudo make install
                                                                            
                                                                            # Archlinux/Manjaro
                                                                            sudo pacman -Syu --needed git base-devel cmake gperf ncurses libmpc gmp python-docutils vim rpcsvc-proto fakeroot
                                                                            
                                                                            1
                                                                            2
                                                                            3
                                                                            4
                                                                            5
                                                                            6
                                                                            7
                                                                            8
                                                                            9
                                                                            10
                                                                            11
                                                                            12
                                                                            13
                                                                            14
                                                                            15
                                                                            16
                                                                            17
                                                                            18
                                                                            19
                                                                            20
                                                                            21
                                                                            22
                                                                            23
                                                                            24
                                                                            25

                                                                            # 2、克隆源码

                                                                            sudo git clone --depth=1 https://github.com/chongshengB/rt-n56u.git /opt/rt-n56u
                                                                            
                                                                            1

                                                                            # 3、准备工具链

                                                                            cd /opt/rt-n56u/toolchain-mipsel
                                                                            
                                                                            # (推荐)使用脚本下载预编译的工具链:
                                                                            sudo 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++
                                                                            
                                                                            sudo ./clean_toolchain
                                                                            sudo ./build_toolchain
                                                                            
                                                                            1
                                                                            2
                                                                            3
                                                                            4
                                                                            5
                                                                            6
                                                                            7
                                                                            8
                                                                            9
                                                                            10
                                                                            11
                                                                            12
                                                                            13

                                                                            # 4、自定义插件(可选)

                                                                            cd /opt/rt-n56u/trunk
                                                                            sudo nano build_firmware_modify		#用nano编辑build_firmware_modify文件
                                                                            #将下图中的插件自定义修改y/n,y是编译,n是不编译,修改好之后,Ctrl+O保存,Ctrl+X退出
                                                                            
                                                                            1
                                                                            2
                                                                            3

                                                                            # 5、修改机型配置文件(可选)

                                                                            # cd /opt/rt-n56u/trunk/configs/templates/  #进入此路径
                                                                            # ls  #查看所有型号路由器的配置文件
                                                                            nano /opt/rt-n56u/trunk/configs/templates/RM2100.config		#RM2100.config为红米AC2100路由器
                                                                            # 根据自身情况。自行修改对应的配置文件(可选)
                                                                            
                                                                            1
                                                                            2
                                                                            3
                                                                            4

                                                                            # 6、清理代码树并开始编译

                                                                            cd /opt/rt-n56u/trunk
                                                                            sudo ./clear_tree
                                                                            sudo fakeroot ./build_firmware_modify RM2100		#RM2100就是对应型号路由器的配置文件名
                                                                            # 脚本第一个参数为路由型号,在trunk/configs/templates/中
                                                                            # 编译好的固件在trunk/images里
                                                                            
                                                                            1
                                                                            2
                                                                            3
                                                                            4
                                                                            5

                                                                            # 云编译

                                                                            以 C 大的 padavan 自编译项目

                                                                            地址:https://github.com/chongshengB/Padavan-buildopen in new window

                                                                            说明

                                                                            现在不需要新建Release了,已经更改了脚本,直接fork,修改好之后,点击右上角的 Star 星星按钮即可开始自动编译(自己点击才会编译)。

                                                                            首先你得有个 github 账号(此处省略怎么注册)

                                                                            # 1、进入项目地址

                                                                            浏览器进入 https://github.com/chongshengB/Padavan-buildopen in new window

                                                                            # 2、Fork 项目

                                                                            点击右上的 Fork,就把这个项目 Fork 到自己的账号下了

                                                                            # 3、进入已 Fork 的项目

                                                                            然后会自动进入自己账号刚刚 Fork 的项目,点击 .guthub/workflows

                                                                            # 4、找到 build-padavan.yml

                                                                            进入到 Padavan-build/.github/workflows/,点击 build-padavan.yml

                                                                            # 5、编辑 build-padavan.yml

                                                                            可以看到 build-padavan.yml 文件的内容了,点击右上的 笔 图标,进入编辑状态

                                                                            # 6、修改型号

                                                                            根据第一行的提示内容,找到 TNAME: K2P-5.0,把 K2P-5.0 改成你要编译的型号(比如红米 AC2100 对应的是 RM2100)

                                                                            说明:怎么看不同机器的型号

                                                                            • 找到 git clone --depth=1 https://github.com/chongshengB/rt-n56u.git /opt/rt-n56u 这一行
                                                                            • 浏览器打开中间的网址(https://开头.git结尾)https://github.com/chongshengB/rt-n56u.git
                                                                            • 依次进入 rt-n56u/trunk/configs/templates,这里面就是所支持编译的所有机器型号(例如 360P2.config 文件,对应的机器型号是 360路由器P2,红米AC2100 就是 RM2100.config,上面修改 TNAME 时,不需要 .config 后缀)

                                                                            # 7、自定义插件

                                                                            自定义插件,具体看解释,很简单

                                                                             sed -i 's/CONFIG_FIRMWARE_INCLUDE_OPENSSL_EXE=n/CONFIG_FIRMWARE_INCLUDE_OPENSSL_EXE=y/g' .config
                                                                             ################################################################################################
                                                                             #因不同型号配置功能不一样,所以先把配置项删除,如果你自己要添加其他的,也要写上删除这一条,切记!!!
                                                                             ################################################################################################
                                                                             sed -i '/CONFIG_FIRMWARE_INCLUDE_MENTOHUST/d' .config #删除配置项MENTOHUST
                                                                             sed -i '/CONFIG_FIRMWARE_INCLUDE_SCUTCLIENT/d' .config #删除配置项SCUTCLIENT
                                                                             sed -i '/CONFIG_FIRMWARE_INCLUDE_SHADOWSOCKS/d' .config #删除配置项SS plus+
                                                                             sed -i '/CONFIG_FIRMWARE_INCLUDE_SSSERVER/d' .config #删除配置项SS server
                                                                             sed -i '/CONFIG_FIRMWARE_INCLUDE_DNSFORWARDER/d' .config #删除配置项DNSFORWARDER
                                                                             sed -i '/CONFIG_FIRMWARE_INCLUDE_ADBYBY/d' .config #删除配置项adbyby plus+
                                                                             sed -i '/CONFIG_FIRMWARE_INCLUDE_FRPC/d' .config #删除配置项内网穿透FRPC
                                                                             sed -i '/CONFIG_FIRMWARE_INCLUDE_FRPS/d' .config #删除配置项内网穿透FRPS
                                                                             sed -i '/CONFIG_FIRMWARE_INCLUDE_TUNSAFE/d' .config #删除配置项TUNSAFE
                                                                             sed -i '/CONFIG_FIRMWARE_INCLUDE_ALIDDNS/d' .config #删除配置项阿里DDNS
                                                                             sed -i '/CONFIG_FIRMWARE_INCLUDE_V2RAY/d' .config #删除配置项v2ray
                                                                             sed -i '/CONFIG_FIRMWARE_INCLUDE_TROJAN/d' .config #删除配置项trojan
                                                                             sed -i '/CONFIG_FIRMWARE_INCLUDE_WYYBIN/d' .config #删除配置项网易云解锁GO版本
                                                                             sed -i '/CONFIG_FIRMWARE_INCLUDE_ZEROTIER/d' .config #删除配置项zerotier
                                                                             sed -i '/CONFIG_FIRMWARE_INCLUDE_SMARTDNS/d' .config
                                                                             sed -i '/CONFIG_FIRMWARE_INCLUDE_SRELAY/d' .config
                                                                             sed -i 's/CONFIG_FIRMWARE_INCLUDE_OPENSSL_EXE=n/CONFIG_FIRMWARE_INCLUDE_OPENSSL_EXE=y/g' .config
                                                                             ######################################################################
                                                                             #以下选项是定义你需要的功能(y=集成,n=忽略),重新写入到.config文件
                                                                             ######################################################################
                                                                             echo "CONFIG_FIRMWARE_INCLUDE_MENTOHUST=n" >> .config #MENTOHUST
                                                                             echo "CONFIG_FIRMWARE_INCLUDE_SCUTCLIENT=n" >> .config #SCUTCLIENT
                                                                             echo "CONFIG_FIRMWARE_INCLUDE_SHADOWSOCKS=y" >> .config #SS plus+
                                                                             echo "CONFIG_FIRMWARE_INCLUDE_SSOBFS=n" >> .config # simple-obfs混淆插件
                                                                             echo "CONFIG_FIRMWARE_INCLUDE_SSSERVER=n" >> .config #SS server
                                                                             echo "CONFIG_FIRMWARE_INCLUDE_DNSFORWARDER=n" >> .config #DNSFORWARDER
                                                                             echo "CONFIG_FIRMWARE_INCLUDE_ADBYBY=y" >> .config #adbyby plus+
                                                                             echo "CONFIG_FIRMWARE_INCLUDE_FRPC=n" >> .config #内网穿透FRPC
                                                                             echo "CONFIG_FIRMWARE_INCLUDE_FRPS=n" >> .config #内网穿透FRPS
                                                                             echo "CONFIG_FIRMWARE_INCLUDE_TUNSAFE=n" >> .config #TUNSAFE
                                                                             echo "CONFIG_FIRMWARE_INCLUDE_ALIDDNS=y" >> .config #阿里DDNS
                                                                             echo "CONFIG_FIRMWARE_INCLUDE_SMARTDNS=y" >> .config #smartdns
                                                                             echo "CONFIG_FIRMWARE_INCLUDE_SMARTDNSBIN=y" >> .config #smartdns二进制文件
                                                                             echo "CONFIG_FIRMWARE_INCLUDE_V2RAY=y" >> .config #集成v2ray执行文件(3.8M左右),如果不集成,会从网上下载下来执行,不影响正常使用
                                                                             echo "CONFIG_FIRMWARE_INCLUDE_TROJAN=y" >> .config #集成trojan执行文件(1.1M左右),如果不集成,会从网上下载下来执行,不影响正常使用
                                                                             echo "CONFIG_FIRMWARE_INCLUDE_KOOLPROXY=y" >> .config #KP广告过滤
                                                                             echo "CONFIG_FIRMWARE_INCLUDE_CADDY=y" >> .config #在线文件管理服务
                                                                             echo "CONFIG_FIRMWARE_INCLUDE_CADDYBIN=n" >> .config #集成caddu执行文件(13M左右),如果不集成,会从网上下载下来执行,不影响正常使用
                                                                             echo "CONFIG_FIRMWARE_INCLUDE_ADGUARDHOME=y" >> .config
                                                                             echo "CONFIG_FIRMWARE_INCLUDE_SRELAY=n" >> .config #可以不集成
                                                                             echo "CONFIG_FIRMWARE_INCLUDE_WYY=y" >> .config #网易云解锁
                                                                             echo "CONFIG_FIRMWARE_INCLUDE_WYYBIN=y" >> .config #网易云解锁GO版本执行文件(4M多)注意固件超大小,不集成会自动下载
                                                                             echo "CONFIG_FIRMWARE_INCLUDE_ZEROTIER=y" >> .config #zerotier ~1.3M
                                                                             #########################################################################################
                                                                             #自定义添加其它功能请参考源码configs/templates/目录下的config文件。按照上面的格式添加即可
                                                                             #格式如下:
                                                                             #sed -i '/自定义项/d' .config
                                                                             #echo "自定义项=y" >> .config
                                                                             #########################################################################################
                                                                            
                                                                            1
                                                                            2
                                                                            3
                                                                            4
                                                                            5
                                                                            6
                                                                            7
                                                                            8
                                                                            9
                                                                            10
                                                                            11
                                                                            12
                                                                            13
                                                                            14
                                                                            15
                                                                            16
                                                                            17
                                                                            18
                                                                            19
                                                                            20
                                                                            21
                                                                            22
                                                                            23
                                                                            24
                                                                            25
                                                                            26
                                                                            27
                                                                            28
                                                                            29
                                                                            30
                                                                            31
                                                                            32
                                                                            33
                                                                            34
                                                                            35
                                                                            36
                                                                            37
                                                                            38
                                                                            39
                                                                            40
                                                                            41
                                                                            42
                                                                            43
                                                                            44
                                                                            45
                                                                            46
                                                                            47
                                                                            48
                                                                            49
                                                                            50
                                                                            51
                                                                            52
                                                                            53

                                                                            # 8、提交修改

                                                                            修改完成之后,点击右上的 Start commit,跳出小窗口点击 Commit changes

                                                                            # 9、点击 star

                                                                            提交之后,再点击右上的 Star,然后在点击 Action

                                                                            # 10、继续

                                                                            第一次云编译需要点击 I understand myworkflows , go ahead and enable them

                                                                            # 11、刷新确认

                                                                            如果还没有编译,在次点击两次 Star,让五角星变成黑色填充(文字变成 Unstar),刷新网址,就可以看到在编译了

                                                                            # 12、等待完成

                                                                            大概等 20 分钟左右,就会编译完成,期间不用管,可以干点其他事情,完成之后(用时21分27秒),点击 Build Padavan

                                                                            # 13、查看下载

                                                                            点击 Padavan-packages 下载到本地,解压后得到的固件就是刚刚编译的,之后就是刷机了

                                                                            # 参考文档

                                                                            https://github.com/chongshengB/Padavan-buildopen in new window

                                                                            https://github.com/chongshengB/rt-n56uopen in new window

                                                                            edit icon编辑此页open in new window
                                                                            上一页
                                                                            瞎折腾
                                                                            下一页
                                                                            【OpenWRT】固件编译
                                                                            MIT Licensed
                                                                            Copyright © 2022 karin