全局科学上网!!!
拉取源代码
首先找到官方源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文件夹下找到镜像文件。