Ubuntu 玩转openwrt(LEDE)

安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sudo apt update

#sudo apt upgrade -y #建议更新到最新


sudo apt install build-essential ccache ecj fastjar file g++ gawk \
gettext git java-propose-classpath libelf-dev libncurses5-dev \
libncursesw5-dev libssl-dev python python2.7-dev python3 unzip wget \
python3-distutils python3-setuptools python3-dev rsync subversion \
swig time xsltproc zlib1g-dev -y

cd ~
#git clone git@github.com:openwrt/openwrt.git
git clone https://github.com/openwrt/openwrt.git
git pull
#git checkout lede-17.01 #LEDE

编译前工作

生成配置文件

1
2
3
4
5
6
7
# 生成配置文件 使用按键 Y M N
# Y <*> 编译并放入固件
# M <M> 编译后不进入固件,放在buildsystem下
# N < > 排除
make menuconfig


提前下载软件包及编译工具

1
./scripts/feeds update -a && ./scripts/feeds install -a

编译

1
2
3
4
5
6
7

# make 显示详情 V=99
# make 用几个核心 -j 1|2|4...
#预下载包
make download V=s
make V=99

编译完成

1
2
3
4
5
6
7
8
9
10
11
12
13
build_dir用于解压缩所有源档案并编译它们。
staging_dir用于将所有已编译的程序“安装”到其中,准备用于构建更多包或准备固件映像。

编译完成固件位于 bin文件夹下

# 清空 已经编译的固件 软件包
make clean
# 清空 已经编译的固件 软件包 交叉编译工具
make dirclean
# 完全清空(初始化)
make distclean


由于中断操作导致二次编译不通过报toptool错误

1
2
3
4
5
# make -j1 V=s
#删除预编译包
rm -rf ./build_dir

make clean

参考