搭建All in one - 编译Openwrt


一直在使用LEDE的Openwrt作为软路由的固件,只是因为学业原因这篇文章一直被咕了,现在终于有时间把它编辑出来

Lean’s OpenWrt: https://github.com/coolsnowwolf/lede
其实L大的说明也挺清楚的,但是为了自己的方便嘛…

准备工作

注意事项

  1. Linux操作系统,L大推荐使用Ubuntu 18 LTS x64,我这里使用Kali
  2. 不要用 root 用户 git 和编译!!!
  3. 国内用户编译前最好准备好梯子
  4. 默认登陆IP 192.168.1.1, 密码 password,此项我一般在安装后的控制台里手动修改

建立用户

1
2
3
mkidr /opt/led
useradd -d /opt/lede -s /bin/bash -m lede
chown -R /opt/lede lede

安装软件

1
2
3
#注意,使用root执行,或者使用sudo
apt-get update
apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3.5 python2.7 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 g++-multilib antlr3 gperf wget swig rsync
开始编译
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#注意,使用root执行,或者使用sudo
#clone源码
git clone https://github.com/coolsnowwolf/lede.git /tmp/lede
mv /tmp/lede/* /opt/lede -f
rm -rf /tmp/lede
su lede
#注意,以下命令均使用lede执行
cd ~
#配置编译
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
#下载库(国内请尽量使用膜法)
make -j8 download V=s

配置固件

make menuconfig之后会进入如下界面,你可以在这里自定义你所想要的内容

显示/隐藏
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Target System (x86)  --->  固件系统架构 (x86)
Subtarget (x86_64) ---> 子固件系统架构 (x86_64)
Target Profile (Generic x86/64) ---> 固件配置文件
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 ---> 开发
Emulators ----> 仿真器
Extra packages ---> 额外包
Firmware ---> 固件
Fonts ---> 字体
Kernel modules ---> 内核模块
Languages ---> 语言
Libraries ---> 库
LuCI ---> LuCI
Mail ---> 邮件
Multimedia ---> 多媒体
Network ---> 网络
Sound ---> 声音
Utilities ---> 通用
Video ---> 视频
Video Streaming ---> 视频流
Xorg ---> Xorg桌面
菜单选项很多很复杂,也很有专业性,在这里你可以定制属于你的路由固件 勾选完所需的部件之后可以进行保存退出,保存的文件名默认为.config。编译会按照.config的内容进行编译 在编译的过程中会同时下载一些组件,下载服务器大多都是位于国外,所以如果没有膜法,速度会非常慢,甚至下载失败
编译

保存后执行以下命令

1
make -j1 V=s //-j1 后面是线程数,第一次编译推荐用单线程
获取固件

固件位于bin/targets/<架构>下,可按照所选架构进行查找,我选择的是x86_64,故固件所在路径为/opt/lede/bin/targets/x86/64

固件说明

后缀适用情况
squashfs嵌入式设备
squashfs-factory从原厂系统刷到openwrt
squashfs-sysupgrade从openwrt刷到openwrt
initramfs无可用flash
缺少膜法工具

L大将其隐藏了,可用在feed中开启

1
2
3
4
5
6
git pull
rm -rf ./tmp
echo "src-git helloworld https://github.com/fw876/helloworld" >> feeds.conf.default
#或者去其注释
vim feeds.conf.default
./script/feeds update -a && ./script/feeds install -a
二次编译
1
2
3
4
5
git pull
./scripts/feeds update -a && ./scripts/feeds install -a
make defconfig
make -j8 download
make -j$(($(nproc) + 1)) V=s