View on GitHub

All about X-Wrt

Home x-wrt.com Blog blog.x-wrt.com

编译教程

很多人不知道怎样编译一个自己的固件,这里主要简单介绍大概的编译打包流程,具体的情况还需要大家自己发挥,情况千变万化,大家随机应变。

1 编译准备

我们建议使用Ubuntu系统作为编译环境,这里以Ubuntu 18.04作为例子,其他版本也是可以的。特别注意的是,整个编译过程,都是用普通用户操作,不要用root用户操作。

首先要安装编译所需要的软件包:

sudo apt-get install build-essential flex gawk gettext git-core libncurses5-dev libssl-dev subversion unzip zlib1g-dev

下载源码:

git clone https://github.com/x-wrt/x-wrt.git
cd x-wrt
./scripts/feeds update -a
./scripts/feeds install -a

配置固件的命令make menuconfig 但是我们可以从配置模版开始会更轻松一些。

比如ar71xx-generic的设备可以用拷贝这个模版feeds/x/rom/lede/config.ar71xx-generic

cp feeds/x/rom/lede/config.ar71xx-generic .config

还有更多配置模版,请参考目录下的config.*文件:

feeds/x/rom/lede/config.ar71xx-generic
feeds/x/rom/lede/config.ar71xx-generic-nosymbol
feeds/x/rom/lede/config.ar71xx-nand
feeds/x/rom/lede/config.ar71xx-nand-nosymbol
feeds/x/rom/lede/config.ar71xx-tiny
feeds/x/rom/lede/config.ath79-generic
feeds/x/rom/lede/config.ath79-generic-nosymbol
feeds/x/rom/lede/config.bcm53xx-generic
feeds/x/rom/lede/config.ipq40xx-generic
feeds/x/rom/lede/config.ipq806x-generic
feeds/x/rom/lede/config.kirkwood-generic
feeds/x/rom/lede/config.mvebu-cortexa9
feeds/x/rom/lede/config.ramips-mt7620
feeds/x/rom/lede/config.ramips-mt7620-nosymbol
feeds/x/rom/lede/config.ramips-mt7621
feeds/x/rom/lede/config.ramips-mt76x8
feeds/x/rom/lede/config.ramips-mt76x8-nosymbol
feeds/x/rom/lede/config.ramips-rt3883-nosymbol
feeds/x/rom/lede/config.sunxi-cortexa7
feeds/x/rom/lede/config.x86_64
feeds/x/rom/lede/config.x86_generic

2. 配置目标

在模版配置文件的基础上,执行make menuconfig命令进行个性化定制,增删应用。

首先,在菜单Target Profile里面选择自己的目标设备,比如Phicomm K2T

然后,再定位到各个子菜单,选择对应的软件包

3. 执行编译

命令:

make

或者

make -j1 V=s

生成的包在bin/targets/下面

3. 高阶配置

为了得到满意的固件,下面对编译配置选项做更多的详细说明,但是更多的可能并不局限于这些说明内容,还有更多期待大家自己探索。

3.1 选择应用

首先,进入make menuconfig菜单

要编译到固件里面,就要选择<*>,如果只选择<M>只是编译成软件包ipk,不会打包进入固件。

进入LuCI - Applications子菜单下面,选择自己想要的应用

常见的软件包:

luci-app-aria2 ARRIA2下载工具
luci-app-ddns DDNS工具
luci-app-mwan3 MWAN3负载均衡
luci-app-nft-qos 流量控制
luci-app-openvpn OPENVPN
luci-app-samba SAMBA网络共享
luci-app-upnp UPNP设置
luci-app-wireguard WireGuard配置界面

进入Kernel modules - USB Support菜单,选择USB支持的驱动

进入Kernel modules - Filesystems菜单,选择需要支持的文件系统,比如ext4,ntfs,vfat

进入Kernel modules - Wireless Drivers菜单,选择无线支持的驱动,如果需要挂卡的驱动,也是在这里找