无需自己同步官方openwrt源码,采用Lean的openwrt源码是极好的,感谢Lean长久的坚持。

https://github.com/coolsnowwolf/lede

准备工作

注意

不要用 root 用户 git 和编译!!!
国内用户编译前最好准备好梯子
默认登陆IP 192.168.1.1, 密码 password

Ubuntu新建账户

需要准备一个干净的Ubuntu,不能用root账户,最好在国外。我用的是阿里云的香港轻量,ubuntu 18.04。

创建用户:vagrant为用户名

sudo useradd -m vagrant -d /home/vagrant -s /bin/bash

2、为创建的用户设置密码

sudo passwd vagrant

3、修改用户的权限:( /etc/sudoers文件只有r权限,在改动前需要增加w权限,改动后,再去掉w权限 )

(1)为sudoers增加写入权限

sudo chmod +w /etc/sudoers

sudo vim /etc/sudoers

(2)为用户XXX添加读写权限

# User privilege specification

root ALL=(ALL:ALL) ALL

vagrant ALL=(ALL:ALL) ALL // 这一行为新添加的代码

(3)将sudoers文件的操作权限改为只读模式

4、搞一台linux VPS最好是ubuntu系统的,你可以用自己的机器,但是第一次编译花费时间较长,不如注册个Linode,新用户会送一定的预存金额,可以借此开一台VPS,Linode是按时间付费,编译完就删掉VPS,下次想编译了就再开一台。强烈建议!

5、安装screen,这个软件可以让你的VPS在脱离SSH连接的情况下依旧可以后台运行,配合Linode的VPS,完全解放双手!

sudo apt-get install screen //安装screen

screen -S buildopenwrt //创建screen会话buildopenwrt

screen -r buildopenwrt //切换到buildopenwrt会话

screen -ls //列出存在的会话列表

在会话中exit表示退出并删除该会话

screen可以理解成一个虚拟的终端,在你关闭SSH时可以接替你的会话,不至于中断当前任务。

6、安装编译组件:

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

7、拉取源码:

git clone https://github.com/coolsnowwolf/lede 命令下载好源代码,然后 cd lede 进入目录

8、配置编译

./scripts/feeds update -a

./scripts/feeds install -a

make menuconfig

之后进入如下界面,这实际上是一个图形化的配置界面,用来控制编译,并不是编译的过程。

进入Target System和Subtarget勾选你需要编译的平台,我用的是X86,并且是64位的,所以你需要选择自助选择。

进入Target Images勾选你需要的固件格式等(img、vmdk等这里我保持默认,默认也够用了吧?)

进入LuCI–>Applications内选中你需要的插件

在这里有一些别的选项,比如一些VPN、aria2的web管理等等,根据需要自己进去研究。

勾选完需要的东西就可以退回第一个界面保存退出,保存按默认的文件名称(.config)保存即可,不需要修改。编译会根据.config的内容编译,想要恢复到初始配置删掉.config文件即可。

在编译的过程中,要下载一些组件什么的,如果你不翻墙,下载速度会非常慢,甚至下载不下来。也正因为这一点,更推荐国外的VPS,但是自己编译也不用太担心,Lean的源码实际已经替换掉下载链接,我在编译过程中没有发现因为无法下载源码导致编译失败的情况。

9、编译

保存后执行以下命令

make -j1 V=s //第一次编译非常的慢,要花上一两个小时

编译成功后在bin/targets/目录下面会有你要的目标平台的固件

10、二次编译

(二次编译是指下一次你编译别的固件的时候)

cd lede 进入LEDE目录

git pull 同步更新大雕源码

./scripts/feeds update -a && ./scripts/feeds install -a 更新FEEDS

rm -rf ./tmp && rm -rf .config 清除编译配置和缓存

make menuconfig 进入编译配置菜单

make -j1 V=s n=线程数+1,例如4线程的I5填-j5,开始编译

编译完成后固件输出在/lede/bin/targets

11、特别说明:

https://www.right.com.cn/forum/thread-344825-1-1.html

该链接比较详细的说明了Luci包含的各个插件详情!与Lean同步更新,值得研读一下!

即使编译了ssr-plus之后,你发现在菜单里依然没有选项。因为作者又一次调皮了,居然给隐藏了。

输入以下代码后可以看到

echo 0xDEADBEEF > /etc/config/google_fu_mode

Lean大大已经默认整合了Luci中文包

12、鸣谢:

本文是在 爱墨迹 小站基础上修改而成,引用了他的部分文字与图片,非常感谢!

https://imgki.com/archives/openwrt-lean.html

x86 openwrt编译备忘录的更多相关文章

  1. 【笔记】搭建OpenWrt编译环境

    参考书目<B智能路由开发指南> 目标:搭建一个OpenWrt编译环境,可以同时在家里和公司使用. [2018-09-13] 刚开始想用自己的电脑共享远程桌面,但不知道什么原因搞不定,所以干 ...

  2. openwrt编译环境搭建

    1,首先安装ubuntu系统,这里安装的是虚拟机 2,安装openwrt编译所需环境  apt-get install build-essential libncures5-dev gawk libs ...

  3. OpenWRT 编译 error GNU libiconv not in use but included iconv.h is from...

    OpenWRT 编译 error GNU libiconv not in use but included iconv.h is from... 编译的时候碰到一个常见的错误,但是却在一个陌生的地方爆 ...

  4. < IOS > X-code 5.1 x86 - 64 编译问题

    关于xcode 5.1   x86 - 64 编译问题   坐等了N久,终于IOS 7.1 发布了,作为一个果粉,忍不住第一时间升级了.结果用设备测试的时候,出问题了,一直检测不到设备,哈哈,纠结了半 ...

  5. OpenWrt编译

    OpenWrt编译简单过程1,OpenWrt编译环境准备sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoco ...

  6. 轻松制作X86 OPENWRT USB启动盘

    本文介绍了一个x86 live USBi启动盘的制作方法. 该方法有如下特点: 1.  可在winXP/win 7/win vista上制作, U盘采用fat格式, 即使对于linux经验较少者, 也 ...

  7. OpenWrt编译后生成的bin文件:jffs2与squashfs、factory与sysupgrade

    OpenWrt编译后会生成多个bin文件,比如 openwrt-ar71xx-generic-tl-wr841nd-jffs2-factory.bin 8126464 openwrt-ar71xx-g ...

  8. OpenWrt编译到底脚本

    在办公室编译OpenWrt,费时很久,原因有两个. 一是办公室网络环境比较糟糕,经常断线不说,很多技术网站间歇性的连不上,不是撞到404就是DNS解析失败等. 二是初次编译OpenWrt时需要从网上下 ...

  9. OpenWRT编译记录--TPLINK_WR841ND_V7

    之前自己编译OpenWRT的一些记录,现在搬上来.简单介绍了编译环境的准备,编译过程,以及一些注意事项. 准备工作 本人是在Ubuntu环境下编辑的,首先安装编译所需要的组件包: sudo apt-g ...

随机推荐

  1. Metasploit学习笔记(一) Samba服务 usermap_script安全漏洞相关信息

    一.Samba介绍 Samba是linux和unix系统上实现smb协议的一个免费软件,由客户机和服务器构成.SMB是一种在局域网上实现共享文件和打印机的协议.存在一个服务器,客户机通过该协议可以服务 ...

  2. 解决pycharm打开html页面一直刷新

    顺序——> File ——>Project:项目名——>project Structure 右侧的 + Add ContentRoot下面只保留本项目路径,其他全删了 方法2(推荐) ...

  3. SQLPLUS ed无法调出编辑面板 SP2-0107:无须保存

    现象: 重新启动oracle启动sqlplus,首先执行ed命令时出错,没有调出编辑命令的文件: SQL> edSP2-0107: 无须保存. 分析:出错的原因可能是临时编辑文件中没有需要执行的 ...

  4. webpack--介绍、安装及入门

    最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了.后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载.下面的网页代码,相信很多人都见过. <scr ...

  5. search(0)- 企业搜索,写在前面

    计划研究一下搜索search,然后写个学习过程系列博客.开动之前先说说学习搜索的目的:不是想开发个什么搜索引擎,而是想用现成的搜索引擎在传统信息系统中引进搜索的概念和方法.对我来说,传统的管理系统le ...

  6. 了解JavaScript的语法基础,值和变量

    通过JavaScript语法基础学习了解到1.怎么使用js/*通常js的引入和css一样,分为内部,外部和行内引入,执行自上而下,有着先后顺序*/:2.js的语法/*2.1js是用字母,数字.特殊字符 ...

  7. Git安装配置及第一次上传项目到GitHub

    平时的学习工作少不了保存自己的Code到代码库,这里必须要使用到Git与GitHub. 1.   关于Git的安装 下载Git:下载地址:https://git-scm.com/downloads  ...

  8. hive中parquet存储格式数据类型timestamp的问题

    当存储格式为parquet 且 字段类型为 timestamp 且 数据用hive执行sql写入. 这样的字段在使用impala读取时会少8小时.建议存储为sequence格式或者将字段类型设置为st ...

  9. Oracle列转行 参数动态传入iBatis使用示例

    Oracle行转列 参数动态传入iBatis使用示例 最近做了一个需求,需要获取工作流数据的各个节点的渠道数量信息,各渠道的费用信息~ 之前的需求是只需要获取渠道数据,所以做了渠道兼容,每个渠道数量的 ...

  10. 使用Teigha.net读取CAD的常用功能模块

    Teigha中实体旋转 代码: using (var trans = database.TransactionManager.StartTransaction()) { Entity ent = tr ...