自己编译 Lean大神的OpenWrt 固件汇总(软路由x86_x64系统)

  • A+
所属分类:未分类

以前一直都是用别人弄好的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 命令下载好源代码,然后 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 )开始选择编译

自己编译 Lean大神的OpenWrt 固件汇总(软路由x86_x64系统)

 

  1. Target System (x86) ---> #设置CPU类型(我是软路由所以选择x86,硬路由选择自己的cpu)
  2. Subtarget (x86_64) ---> #设置CPU平台(我选择64位)
  3. Target Profile (Generic) ---> #设置镜像档案类型
  4. Target Images ---> #设置编译的格式(squashfs (NEW)选上)
  5. Global build settings ---> #全局设置
  6. [ ] Advanced configuration options (for developers) ---- #高级配置选项
  7. [ ] Build the OpenWrt Image Builder #创建OpenWrt镜像生成器
  8. [ ] Build the OpenWrt SDK #创建OpenWrt SDK
  9. [ ] Package the OpenWrt-based Toolchain #打包基于OpenWrt的工具链
  10. [ ] Image configuration ---> #镜像配置
  11. Base system ---> #设置基础系统
  12. Administration ---> #管理
  13. Boot Loaders ---> #设置启动加载器
  14. Development ---> #
  15. Extra packages ---> #设置额外软件包
  16. Firmware ---> #设置固件
  17. Fonts ---> #设置字体
  18. Kernel modules ---> #设置内核模块
  19. Languages ---> #设置语言
  20. Libraries ---> #设置库
  21. LuCI ---> #LuCi设置(这里重点开始选择- 3. Applications ->进去编译选择“y”,说明在下边链接 
  22. Mail --->
  23. Multimedia ---> #设置多媒体
  24. Network ---> #网络配置
  25. Sound ---> #声音配置
  26. Utilities ---> #设置实用程序
  27. Xorg --->

同配置Linux内核类似,几乎每一个设置都有三个选项:y / m / n,分别代表如下含义:
* `` (按下`y`)这个包会被包含进固件镜像
* `` (按下`m`)这个包会在生成刷新OpenWrt的镜像文件以后被编译,但是不会被包含进镜像文件
* `` (按下`n`)这个包不会被编译

LuCi Applications软件包说明:

https://www.vrrmr.net/img/luCI--%E8%AF%B4%E6%98%8E.txt

记得退出(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,开始编译 

以上代码一行一行操作。(图下边也是一冲清理步骤)

自己编译 Lean大神的OpenWrt 固件汇总(软路由x86_x64系统)

其它一些东西:

一些常用的配置,路由器路径

\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

weinxin
我的QQ群
这是我的QQ群扫一扫

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: