Featured image of post OpenWrt零基础编译-LEDE源码

OpenWrt零基础编译-LEDE源码

编译属于自己的OpenWrt固件吧

环境准备

推荐使用Ubuntu Server 20.04.6来进行编译,安装教程可看本站链接Ubuntu Server 20.04.6安装在Hyper-V上

LEDE 源码要求使用非root账户来进行一切操作,以避免不必要的bug.所以进入到系统后不要切换到root账号,直接用登录账户就行。这是Lean的源码仓库链接Lean的LEDE源码仓库.

确保你的Ubuntu硬盘空间至少在80G以上,推荐100G以上。

确保你的Ubuntu能够链接全球网络。

编译前的准备

通过SSH工具链接到你的Ubuntu,输入以下命令,使用sudo开头的命令行,系统第一次会提示输入密码,输入你的登录密码即可。

(1)升级系统相关组件,依顺序一条一条复制安装:

1
2
3
4
sudo apt update -y           
sudo apt install -y curl     
sudo apt install -y socat    
sudo apt full-upgrade -y

(2)安装编译依赖,整个命令全部复制安装:

1
2
3
4
5
6
7
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 libglib2.0-dev libgmp3-dev libltdl-dev \
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \
libpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \
vim wget xmlto xxd zlib1g-dev python3-setuptools

以上命令可以在第一次安装完成后,再进行两次复制安装,以保证所有依赖全部安装成功。

(3)下载源码

git clone https://github.com/coolsnowwolf/lede 这条命令也需要执行3次确保源码全不下载成功

(4)进入lede目录

cd lede

(5) 添加软件源,输入命令vim feeds.conf.default,进入下列界面,把下面两条软件源信息加入

1
2
src-git kenzo https://github.com/kenzok8/openwrt-packages
src-git small https://github.com/kenzok8/small

这里普及VIM命令的使用,把输入法调整为英文输入法,且为小写输入模式,进入界面后,

按键盘i是进入编辑模式,把上面两条信息复制进去.

然后按键盘Esc键,退出编辑模式。

再按键盘Shift键加:冒号键后, 输入保存退出命令wq就成功修改了。

如果操作失误, 改乱了,按下Esc键,退出编辑模式,按u键撤销操作。

或者按下Esc键,退出编辑模式,按键盘Shift键加:冒号键后, 输入放弃修改命令e!。按i从新修改;类似命令有:

1
2
3
4
q             # 若文件没有修改,直接退出
​q!            # 文件已经被修改,放弃修改退出
​wq            # 文件已经被修改,保存修改并退出
​e!            # 放弃修改,重新回到文件打开时的状态

或者按键盘Shift键加:冒号键后, 输入放弃修改退出命令q!,再输入命令vim feeds.conf.default从新编辑。

(6)更新 feeds,一条一条复制执行。

1
2
3
./scripts/feeds update -a     #这条命令也执行3次。

./scripts/feeds install -a

(7)进入编译界面,选择配置

make menuconfig

选择软件与编译固件

进入了编译界面后。作为初学者,就先了解几处需要配置的地方即可,其它方面默认。

(1)进入Target Images选项,光标上下移到Target Images,按回车键进入按下图设置:

连续按两次Esc键退到上一级菜单,或者左右移动光标到Exit处,按回车也能退到上一级

(2)进入LuCI选项,光标上下移到LuCI,按回车键进入,再选择 Themes 选项进入;默认只有一个自带主题,可上下移动光标选择2—3个主题即可; 选择方式按空格键,括号内出现代表选择,再按空格键括号里没有,代表不选择。

(3)退出 Themes 主题选项,选择 Applications 选项,选择将要编译进固件的软件;这里建议少选软件,以保证第一次能编译成功。因为有可能存在两个功能相似的软件会出现Bug,

这里建议跟着图里走,选红框内的软件就行:

再说一个重点< >后的是软件本体,大多数软件就是一个。有的软件有很多插件; [ ]后的都是软件的插件,它们都隶属于上一个< >。所以只管选择< >就好,前面带[ ]都是插件,不用管,默认就好。

1

2

3

4

5

6

以上所有截图,没有红框的都不要,除非默认自带的。

(4)选择好后,左右移动光标到保存处,回车保存,按图操作:

(5)之后会退回到软件选择界面, 直接退出,一级一级退出,直到命令操作界面,

下载 dl 库,并开始编译软件,一行一行复制,输入命令:

1
2
3
4
5
make download -j8       # 连续执行两遍

make download

make V=s -j4            # 执行编译

(6)第一次编译时间大概为1小时左右,后面二次编译速度就会快很多。等待它编译完成,若输出没有报错,恭喜你编译成功,固件位置在/lede/bin/targets/x86/64/。用WinSCP获取。

二次编译

二次编译在一般情况下大致分为3种情况:

(1),不配置软件,只升级相关软件,进行编译

1
2
3
4
5
6
7
8
cd lede
git pull
./scripts/feeds update -a
./scripts/feeds install -a
make defconfig
make download -j8
make download
make V=s -j4

(2)在原有配置上,进行软件增减,进行编译

1
2
3
4
5
6
7
8
cd lede
git pull
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
make download -j8
make download
make V=s -j4

(3)删除原有配置,重新配置,进行编译

1
2
3
4
5
6
7
8
9
cd lede
git pull
rm -rf ./tmp && rm -rf .config
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
make download -j8
make download
make V=s -j4

相关命令

如果不能编译成功,可能会用到的相关命令

1
2
3
4
5
6
7
make clean          # 清除旧的编译产物(可选)
make dirclean       # 清除旧的编译产物、交叉编译工具及工具链等目录(可选)
make distclean      # 清除 Open­Wrt 源码以外的文件(可选)
git clean -xdf      # 还原 Open­Wrt 源码到初始状态(可选)

sudo reboot         # 重启Ubuntu系统
sudo poweroff       # 关机Ubuntu系统
comments powered by Disqus
Built with Hugo
主题 StackJimmy 设计