环境准备
推荐使用Ubuntu LTS系统,官网下载最新版本即可,物理机、云服务器都可以,但是保证硬盘至少有60G以上,最好有100G以上,因为我这里选配了部分我觉得用得上的插件,编译的x86版本固件后,整个目录的空间占用就达到56G,磁盘太小占满后会编译失败。我这里是用的virtualbox安装的虚拟机
编译过程中会下载很多的依赖,很多依赖在外网因为一些不可描述的原因会下载失败,这里建议全局科学上网。
依赖安装
准备好编译用的服务器或虚拟机后,通过ssh登录到主机上,切记切换到非root用户(不能使用root用户编译),自己创建一个用户即可
useradd chengpei
切换到该用户的文件夹下,如:/home/chengpei
以此运行以下3行命令,安装编译openwrt所需的一些依赖软件
sudo apt update -y
sudo apt full-upgrade -y
sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libfuse-dev libglib2.0-dev libgmp3-dev \
libltdl-dev libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libpython3-dev libreadline-dev \
libssl-dev libtool lrzsz mkisofs msmtp ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 \
python3-pyelftools python3-setuptools qemu-utils rsync scons squashfs-tools subversion swig texinfo \
uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev
源码获取
编译的服务器以及相关的依赖软件安装好后,就可以下载源码准备编译了,这里使用的源码是:https://github.com/coolsnowwolf/lede
git命令下载源码:
git clone https://github.com/coolsnowwolf/lede
cd lede
./scripts/feeds update -a
./scripts/feeds install -a
第一条命令是从github上下载源码,成功后第二条命令是进入到源码目录中,第三四条命令是下载安装相关的插件
这里如果需要引入第三方的其他插件,例如:https://github.com/vernesong/OpenClash.git
可以在源码根目录中的feeds.conf.default文件里面追加上以下内容:
src-git vernesong https://github.com/vernesong/OpenClash.git
然后重新执行下载源码的第三四条命令,即可追加第三方的插件选项,以下是我的feeds.conf.default文件
后面三个都是我追加的
插件配置
以上操作完成后,可以执行以下命令配置固件了
make menuconfig
执行后会进入一个图形化配置页面,如图:
在该页面中可以配置固件相关的属性,如选择支持的芯片信号、文件系统根目录空间大小、需要安装的插件等,比如我这里是需要编译x86软路由所需的固件,所以选择Target System和Subtarget都是x86,如果要编译其他硬件支持的固件,则需要查询对应硬件使用的芯片型号进行选择。
其次比较有用的事第四个选项,里面可以配置文件系统根目录空间大小,这里我进行了修改
因为我有时会先用虚拟机安装一下试试,这里我还选中了Build VirtualBox image files,这样编译成功后会有VDI文件,可以直接创建一个虚拟机试用一下固件。
另外我需要试用Python3,所以我在Languages中配置了Python3相关的支持
接下来是最重要的插件配置,在LuCI菜单中
其中Application是配置插件的,Themes是配置主题的
启用IPv6:Extra-packages ---> ipv6helper
插件根据自己的需要选配,不建议全选可能会有一些冲突导致编译失败,主题建议就选这一个luci-theme-argon-mod,其他都丑。
选好后Save,再Exit即可,会自动生成.config文件,就包含了你配置的信息了
开始编译
以此执行以下命令开始编译
make download -j8
make V=s -j1
首次编译因为会下载很多依赖,需要时间非常长,可以挂机等待一晚上,如果失败了大概率是网络问题,需要梯子
编译成功后,进入~/lede/bin/targets/x86/64,即可看到编译好的固件
评论区