全局科学上网!!!

拉取源代码

首先找到官方源github地址:https://github.com/openwrt/openwrt,进入复制git地址https://github.com/openwrt/openwrt.git
打开Linux系统,以Ubuntu为例,打开系统终端,将源代码拉至本地:

sudo git clone https://github.com/openwrt/openwrt.git OpenWRT

源代码将保存至后面指定的文件夹,此处为OpenWRT,注意路径不能有中文
如果已经拉取,可以通过如下命令更新:

sudo git pull

安装必须组件

进入OpenWRT文件夹。
根据官方手册,不同的系统在编译前需安装不同组件,地址如下:https://openwrt.org/docs/guide-developer/toolchain/install-buildsystem
可知Ubuntu系统需要执行如下命令:

sudo apt update
sudo apt install build-essential clang flex bison g++ gawk gcc-multilib g++-multilib gettext git libncurses5-dev libssl-dev python3-distutils rsync unzip zlib1g-dev file wget

其它系统自行查找。
执行完毕后,进入下一步。

拉取编译依赖

执行如下命令,更新所有源码:

sudo ./scripts/feeds update -a

将源码移动到packge文件夹:

sudo ./scripts/feeds install -a

配置编译选项

由于拉下来的库所有权不为当前用户,所以先更改权限:

sudo chown -R $USER OpenWRT

进入tui配置界面:

make menuconfig

界面内的配置略。
如果需要生成VMDK文件,需要额外安装qemu,默认的编译不会主动安装:

sudo apt-get install qemu
sudo apt-get install qemu-utils

需要注意的是,配置镜像文件大小时不建议过大,否则会导致写入内核失败。建议预留50G以上硬盘空间

进行编译

执行:

make -j8 V=s

-j8代表使用8个线程进行编译,建议每个线程留出1G的内存,否则会因内存不足编译失败。
V=s代表显示详细编译信息,有利于排查错误,不加也可。

编译完成后即可在bin文件夹下找到镜像文件。