目录
以前一直都是用别人弄好的openwrt的固件,放假期间也没什么事,就打算自己编译一下自己的固件,也记录一些东西以便以后使用:
第一步:
注意:
1. 不要用 root 用户 git 和编译!!!
2. 国内用户编译前最好准备好梯子
3. 默认登陆IP 192.168.1.1, 密码 password
编译命令如下:
1. 首先装好 Ubuntu 64bit,推荐 Ubuntu 14 LTS x64(16LTS 18LTS其实也是可以的)
2. 命令行输入 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
3. git clone [https://github.com/coolsnowwolf/lede](https://www.vjsun.com/wp-content/themes/begin/inc/go.php?url=https://github.com/coolsnowwolf/lede) 命令下载好源代码,然后 cd lede 进入目录
cd lede
4. ./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
make -j8 download v=s 下载dl库(国内请尽量全局科学上网) 5. 最后选好你要的路由,输入 make -j1 V=s (-j1 后面是线程数。第一次编译推荐用单线程,国内请尽量全局科学上网)即可开始编译你要的固件了。 也可以使用:make -j$(($(nproc) + 1)) V=s 编译
补充的一些内容:
1,给openwrt固件添加passwall方法:
使用方法:
添加 src-git lienol https://github.com/Lienol/openwrt-package 到 OpenWRT源码根目录feeds.conf.default文件(也就是上边的做完 “3”那步以后,把链接添加feeds.conf.default进去.下边的就可以省略,直接去执行上边的“4”)
使用本人源码请忽略上一步
然后执行
./scripts/feeds update -a
./scripts/feeds install -a
或者你可以把该源码手动下载或Git Clone下载放到OpenWRT源码的Package目录里面,然后编译。 如果你使用的是Luci19,请编译时选上"luci","luci-compat","luci-lib-ipkg"后编译。
2,修改选择使用哪个系统内核方法
编译切换内核:
打开openwrt目录/target/linux/架构/Makefile(利用工具winscp,比如我的目录就是/home/vjsun/lede/target/linux/x86/Makefile)
KERNEL_PATCHVER:=4.19
具体支持内核版本:include/kernel-version.mk(一样做完上边3以后,进去修改完内核,再继续进行“4”)
第二步:(make menuconfig )开始选择编译

- │ Target System (x86) ---> #设置CPU类型(我是软路由所以选择x86,硬路由选择自己的cpu)
- │ Subtarget (x86_64) ---> #设置CPU平台(我选择64位)
- │ Target Profile (Generic) ---> #设置镜像档案类型
- │ Target Images ---> #设置编译的格式(squashfs (NEW)选上)
- │ 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设置(这里重点开始选择- 3. Applications ->进去编译选择“y”,说明在下边链接 )
- │ Mail --->
- │ Multimedia ---> #设置多媒体
- │ Network ---> #网络配置
- │ Sound ---> #声音配置
- │ Utilities ---> #设置实用程序
- │ Xorg --->
同配置Linux内核类似,几乎每一个设置都有三个选项:y / m / n,分别代表如下含义:
LuCi Applications软件包说明:
记得退出(exit---保存yes).执行上边第5:make -j1 V=s,(其实,make V=s 就可以,他会自动的选择线路)。剩下的就慢慢等他编译吧。
编译完成后,前往:/home/vjsun/lede/bin/targets/x86/64这个目录获取编译成功的固件.
#:3-4之际其实还可以加一个 make download(把源码全部下载到DL下来,在编译),
$ls ~/lede/dl/ -LSrh|less
第三步:再次编译
完成首次编译 再编译可大大缩短时间,只输入以下代码,十几分钟的事情。
OpenWrt编译方式:
cd lede #进入LEDE目录
git pull #同步更新大雕源码
./scripts/feeds update -a && ./scripts/feeds install -a #更新FEEDS
rm -rf ./tmp && rm -rf .config #清除编译配置和缓存
make menuconfig #进入编译配置菜单
`make -j8 download v=s` 下载dl库(国内请尽量全局科学上网) make -j$(($(nproc) + 1)) V=s #n=线程数+1,例如4线程的I5填-j5,开始编译
以上代码一行一行操作。(图下边也是一冲清理步骤)

其它一些东西:
一些常用的配置,路由器路径
\etc\config 各个LUCI配置
\etc\gfwlist gfwlist目录
\etc\shadow 登录密码
\etc\firewall.user 自定义防火墙规则
\usr\share\adbyby adbyby里的相关规则和设置
\usr\lib\lua\luci\view\admin_status\index.htm 主页样式文件,温度显示等等
X86架构固件的index,默认被大雕files强奸了,自己到源码里替换
/lede/package/lean/autocore/files/index.htm
如果无效请make clean或者删除/lede/build_dir/target架构/autocore-1(编译其他失败同理)
修改默认IP
cd openwrt
vim package/base-files/files/bin/config_generate #大约在99行修改:192.168.1.1
1