1.首先创建虚拟机:
直接按照这个配置选择其他默认即可。分配空间应该不少于35G,否则会应空间不足导致编译失败。
2.安装ubuntu-18.04
下载地址https://cn.ubuntu.com/download
下载后直接上虚拟机的CD开始安装,开机按F2,选择中文
选则安装
只用来做编译固件的话就选第一项清除
最后设置一下用户名密码重启就ok了
3.准备环境,克隆代码。
进入ubuntu桌面后调整一下分辨率(设置-设备)下:
调整为1024*768以上,应用即可。
ctrl+alt+T或者桌面右键打开终端界面:
依次输以下命令安装依赖(需要登录密码):
先输入: sudo apt-get update 然后输入: sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler
依赖安装完成,开始克隆git上的代码,命令如下:
git clone https://github.com/coolsnowwolf/lede
4.克隆完成,开始编译:
cd lede ./scripts/feeds update -a ./scripts/feeds install -a make menuconfig
这个时候可以开始配置内核了,这里简单的说一下
│ Target System (x86) ---> #设置CPU类型 │ Subtarget (x86_64) ---> #设置CPU平台 │ Target Profile (Generic) ---> #设置镜像档案类型 │ Target Images ---> #设置编译的格式 │ Global build settings ---> #全局设置 │ [ ] Advanced configuration options (for developers) ---- #高级配置选项 │ [ ] Build the OpenWrt Image Builder #创建OpenWrt镜像生成器 │ [ ] Build the OpenWrt SDK #创建OpenWrt SDK │ [ ] Package the OpenWrt-based Toolchain #打包基于OpenWrt的工具链 │ [ ] Image configuration ---> #镜像配置 │ Base system ---> #设置基础系统 │ Administration ---> #管理 │ Boot Loaders ---> #设置启动加载器 │ Development ---> # │ Extra packages ---> #设置额外软件包 │ Firmware ---> #设置固件 │ Fonts ---> #设置字体 │ Kernel modules ---> #设置内核模块 │ Languages ---> #设置语言 │ Libraries ---> #设置库 │ LuCI ---> #LuCi设置 │ Mail ---> │ Multimedia ---> #设置多媒体 │ Network ---> #网络配置 │ Sound ---> #声音配置 │ Utilities ---> #设置实用程序 │ Xorg --->
服务插件的配置在LuCI —>Applications下配置,插件应用说明请参照这里OpenWrt 编译 LuCI -> Applications 添加插件应用说明-L大
配置完成save一下就可以开始编译了
make -j1 V=s // -j1 后面是线程数。第一次编译推荐用单线程
如下编译界面(第一次编译时间会比较久,耐心等待)
编译过程中会跳出一个驱动加载选择项,视情况选择,我这里选N
大约3小时之后初次编译完成,显示如下
这时候在文件夹bin/targets/你选择的编译方案/下会有对应的包,我这里选的是x86-64位
如上openwrt-x86-64-combined-squashfs.img就是镜像文件了,提取刻盘就可以用了。
这里附上一个初次编译完成后文件所占空间的图:
5.二次编译
git pull ./scripts/feeds update -a ./scripts/feeds install -a rm -rf bin rm -rf tmp make menuconfig
6.clean相关:
没有错误的时候不用clean,这样编译会快很多,编译器会自动编译变动的部份。当排除错误时就应当clean一下(当出现莫名其妙的错误时,就要想到可能是没有clean导致的)。
clean编译的临时文件有三个方法,对应的清除程度不同,如下图所示,然后再次执行编译过程!ss
转载请注明出处。
Lienol所fork自lean/lede且保持必要更新同步的Lienol/lean-lede源码:
https://github.com/Lienol/lean-lede