首先声明,自行编译是一个自我折腾的过程,没时间或精力就不要试了,这里介绍个人尝试在ubuntu/debian 下编译OpenWRT固件和应用SDK 的过程。
一般推荐 ubuntu 系统,最新的 LTS 版即可。系统要求,内存 1-4 GB(编译x86固件需要4GB内存),空间20GB以上。关键是外网连接速度要快,否则一天一夜都下不完。建议在国外VPS里编译。
安装依赖
添加用户,必须在非 root
用户下编译
1
adduser qwe
切换到 root 用户,运行 visudo
命令
找到 root ALL=(ALL) ALL
,在下面添加一行 xxx ALL=(ALL) ALL
其中 xxx
是要加入的用户名称
1
2
3
4
5
6
apt-get update
sudo apt-get install git-core build-essential libssl-dev libncurses5-dev unzip gawk zlib1g-dev python python-dev openssl
sudo apt-get install flex bison autoconf texinfo asciidoc
sudo apt-get install ccache
sudo apt-get install libmnl-dev
sudo apt-get install libevent-dev
下载源码
1
2
git clone https://github.com/openwrt/openwrt.git
cd openwrt
如果要编译其它的包,如果没有就略过下面一步
1
2
3
cd package
git clone https://github.com/xxx.git
git clone https://github.com/xxxx.git
更新下载并安装所有可用的 feeds
1
2
3
4
cd ~/openwrt
./scripts/feeds update -a
./scripts/feeds install -a
构建基础环境
1
make menuconfig
- Target System 选中’(Atheros AR7xxx/AR9xxx)’
- Subtarget 选中 ‘(Genaric devices with NAND flsh)’
- Target Profile 选中’(NETGEAR WNDR3700v4/WNDR4300)’
选择好路由器型号之后 save
,则可以执行
1
make defconfig
可选配置
再次执行:
1
make menuconfig
选择自己所需要安装的包。
1
save -> exit
执行 scripts/diffconfig.sh > diffconfig
保存修改内容至 diffconfig
文件
开始编译
1
make -j1 V=s
在虚拟机中大概编译了一个半到二个小时,大多数时间都在下载,所以要保持网络通畅
编译好了之后可在 bin/xxx 目录找到生成的固件
openwrt-xxx-squashfs-factory.bin
和 openwrt-xxx-squashfs-sysupgrade.bin
已经安装了 OpenWrt 那么可用 sysupgrade
固件进行升级,会保留用户数据(也可选不保留)
factory
固件在第一次刷机的时候使用
本文网址: https://pylist.com/topic/210.html 转摘请注明来源