Ubuntu下编译openwrt

2023-11-08

从网上找的资料,还有自己出现的错误和解决方法,合并整理一下。

很多安装时出错以及找解决方法的过程,已经放在另一篇文章里了,下面也放链接了Ubuntu下编译openwrt的过程出错及解决_m0_60027682的博客-CSDN博客

我是跟着视频里面学的,然后这个文章的内容也很多是这位大佬的,只不过我将其他的资料也一起写入了我的文章,没有别的,我就想留着做笔记,并且分享给大家

 参考的编译教程:

在Ubuntu中编译openwrt(全过程) - 勤劳小虾米 - 博客园

『299』 傻瓜式编译OpenWrt固件全流程丨Ubuntu下基于Lean源码编译融合各种插件_哔哩哔哩_bilibili

从零开始:编译自己的openwrt超详细教程

1、首先装好 Ubuntu 64bit,推荐 Ubuntu 20.04 LTS x64

2、安装之前最好先更新下组件包:

sudo apt-get update

然后下载软件包,输入

sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 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 g++-multilib antlr3 gperf wget curl swig rsync

3、 使用命令下载好源代码(选其一)

(1)、(官网)下载好后,linux里面建一个目录,上传到Linux,解压(官网下载教程Ubuntu下编译openwrt的过程出错及解决_小蚂蚁t的博客-CSDN博客_编译openwrt出错

mkdir openwrt                        //建一个目录
cd openwrt                             //进去
rz                                           //弹出的框里选择下载好的文件,把下载的压缩包上传到linux
tar -zxvf 压缩包名.tar.gz        //解压

cd openwrt-b2ae423             //进入这个文件

(2)、新建一个openwrt目录,使用命令:

mkdir openwrt

sudo chmod 777 openwrt

  接下来的所有命令都在/openwrt目录下运行(编译系统的绝对路径中不能含有空格)。

通过git来下载

从官方源下载:git clone git://git.openwrt.org/openwrt.git

或者:git clone https://github.com/openwrt/openwrt.git

或者下载15.05的: git clone git://git.openwrt.org/15.05/openwrt.git,下载时间比较漫长,请耐心等待。

进入目录

4、缝合一些其他插件(可不做)

原地址:https://github.com/kenzok8/openwrt-packages

添加下面代码复制到 lede源码根目录 feeds.conf.default 文件

src-git kenzo https://github.com/kenzok8/openwrt-packages

src-git small https://github.com/kenzok8/small

添加软件扩展包,将feeds.conf.default修改为feeds.conf:(别的地方有,但是我没做这步)

cp feeds.conf.default feeds.conf

vim feeds.conf.default(别的地方有,但是我没做这步)

建议删掉最后一行最前面的#号,

像这样子

src-git helloworld https://github.com/fw876/helloworld

5、更新软件包,安装最新包,

更新包列表:./scripts/feeds update -a

集成到menuconfig:./scripts/feeds install -a

测试编译环境:make menuconfig

6、编译前关于平台、核心、型号的设置(第一二三大项);

这里是一个插件应用说明

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

前面三个根据自己的板子型号去选择(必选)

Target System (Atheros ATH79)--->

Subtarget (Devices with small flash)  --->

Target Profile (TP-Link TL-WR841N/ND v9)  --->

Base system(可选)

        <*> libstdcpp.................................... GNU标准C++库v3

Languages

        Lua --->(可选)

               <*>  libiwinfo-lua...................................... libiwinfo Lua绑定

                <*> lua............................... Lua编程语言(解释器)

 LuCI(必选)

        Collections  ---> 

                 <*> luci................... Uhttpd作为Webserver的LuCI接口(Web 界面

        Themes  ---> 

                -*- luci-theme-bootstrap…………..引导主题(默认)(想好看点可以选其他的)

        Modules---> 

                Translations---> 

                        <*> Chinese Simplified (zh_Hans)…………..简体中文

需要什么插件就安装什么

7:第一次编译耗时非常长也主要是因为要下载各种包(主要取决于网速),第二次就快很多了

make V=99

如果有报错,可以参考一下,这些是我编译过程中遇到的问题Ubuntu下编译openwrt的过程出错及解决_小蚂蚁t的博客-CSDN博客_openwrt编译出错

编译完后

编译完成后的文件地址

(略)scp -r 用户名@服务器地址:/openwrt/source/bin/targets/ramips/mt7620/本地地址

再次编译

make clean

make V=99

其他设置

开启IPV6

选上extra packages——ipv6helper

在 Network – Firewall – ip6tables 下启用 ip6tables-extra 和 ip6tables-mod-nat 项。


更改LAN口的默认IP地址

cd lede

vim package/base-files/files/bin/config_generate

大概在99行找到我们默认的原IP地址(192.168.1.1),按“i”把对应的IP更改即可

然后按shift+: 输入wq回车保存退出


编译丰富插件时,建议修改下面两项默认大小,留足插件空间。( x86/64 )!!!

Target Images ---> (16) Kernel partition size (in MB)           #默认是 (16) 建议修改 (256)

Target Images ---> (160) Root filesystem partition size (in MB) #默认是 (160) 建议修改 (512)


如果需要 Cloudflare DDNS 组件

默认情况下 Open­Wrt 中并没有 Cloud­flare DDNS 功能,就算勾选了DDNS也不包含cloudflare运营商。所以需要在编译时选择相应的组件,其位置在 NetworkIP Addresses and Names →ddns-scripets_cloudflare.com-v4

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu下编译openwrt 的相关文章

随机推荐

  • 有趣的数据结构算法3——单链表尾插法和头插法的实现

    有趣的数据结构算法3 单链表尾插法和头插法的实现 什么是单链表 头插法的实现 尾插法的实现 头插法实现代码 尾插法实现代码 GITHUB下载连接 以前学习C语言的时候 对于指针 链表什么的是最害怕的 但是现在 什么是单链表 单链表是一种链式
  • 在Visual Studio Code中使用CSSComb格式化CSS文件

    在Visual Studio Code中使用CSSComb格式化CSS文件 最近在使用Visual Studio Code 开始逐渐上手 发现非常好用 不管是在JS文件还是在HTML文件中 右键点击 都有 格式化文件 的菜单 帮助我们排版
  • linux查看服务端口号、查看端口(netstat、lsof)

    linux查看服务端口号 查看端口 netstat lsof netstat atulnp会显示所有端口和所有对应的程序 用grep管道可以过滤出想要的字段 a all 表示列出所有的连接 服务监听 Socket资料 t tcp 列出tcp
  • 配置docker阿里云镜像加速

    默认情况下docker安装镜像文件是从docker官方的镜像中心下载 https hub docker com 有时速度慢 可以通过配置docker阿里云镜像来加速 配置后 就从国内阿里云下载 注册阿里云用户 登录 gt 工作台 gt 产品
  • 200 ok 几种状态

    浏览器加载资源成功一般会有几种状态 200 ok 从原始服务器请求成功 200 ok from cache 200 ok from disk cache 200 ok from memory cache 304 not modified 向
  • mysql sql语句查询指定月份

    需求 根据输入年月 查询指定数据 方法1 SELECT FROM 表名 WHERE YEAR 列名 年份 AND MONTH 列名 月份 方法2 SELECT FROM 表名 WHERE date format 列名 Y m 2020 01
  • JDBC快速入门,mysql8.0版本+druid+spring jdbc使用,出现因版本错误的解决方法

    JDBC核心技术 JDBC概述 数据持久化 持久化 persistence 把数据保存到可掉电式存储设备中以供之后使用 大多数情况下 特别是企业级应用数据持久化意味着将内存中的数据保存到硬盘上加以 固化 而持久化的实现过程大多通过各种关系数
  • runaway

    runaway函数 这个程序是查看你所用的电脑中所分配的栈的大小 include
  • 解决Java从MySQL读取大量数据时卡…

    今天晚上突然有个服务无法启动 这个服务在启动的时候会从数据库中加载一些数据 查看日志 有开始加载的日志 但没有完成加载的日志 判断问题是在加载数据时卡住 用top查看进程 发现CPU占用为0 又怀疑可能是因为jvm内存不够 用jstat查看
  • js限制输入框字数

  • Ubuntu上配置VS Code调试C++

    直接使用GDB在Ubuntu上调试C code 有时不是很方便 这里介绍下在Ubuntu上通过Visual Studio Code调试C code操作步骤 通过CMake编译 安装所需依赖 1 在Ubuntu上安装Visual Studio
  • Qt学习之QMainWindow(一)QMainWindow简介

    详细的后续会讲到 这里重在理解过程 Qt中的顶层窗口称为MainWindow 属于类QMainWindow QMainWindow也是继承于QWidget 通过子类化QMainWindow可以创建一个应用程序的窗口 MainWindow的结
  • SpringBoot项目使用EasyExcel读取上传Excel

    SpringBoot项目使用EasyExcel读取上传Excel 1 EasyExcel简介 EasyExcel是一个基于Java的简单 省内存的读写Excel的开源项目 在尽可能节约内存的情况下支持读写百M的Excel EasyExcel
  • Mybatis的mapper.xml批量插入、修改sql

    今天要有个功能 要进行一批数据的插入和修改 为了不频繁调用数据库 所以想到了批量插入和修改 因为从毕业后 就没写过批量插入和批量修改 所以在这里记录一下 避免后续再遇到忘记怎么写了 批量插入 传入的参数是List lt 实体 gt list
  • 基于vue-element-ui开发Hproxy项目前端

    hproxy项目前端使用vue element admin框架 页面为hook列表 和一个添加hook页面 添加路由 编辑src router index js文件 在constantRoutes列表追加如下路由内容 path hproxy
  • 【OpenGL】机器人手臂的实现

    一 基本功能 实现了机器人的一只手臂 由上臂 下臂 五根手指共同组成 通过A S D F G键向上旋转 通过a s d f g键向下旋转 通过方向键left和right转向 通过up和down实现放缩 效果图如下 二 实现过程 1 实现手臂
  • 音频编解码G729 PCM

    G 711与G 729的带宽分别是80Kbps和24Kbps 恩奎斯特原理规定声音的采样频率是每秒8000次 每次8bit 语音数据带宽就是64Kbps 8000 8 正常语音包是10ms成帧一次 每两帧成一个包 这样 每秒就成50个包 1
  • mysql连接池唤醒_当MySQL连接池遇上事务(一):神秘的幽灵锁

    MySQL连接池是一个很好的设计 通过将大量短连接转化为少量的长连接 从而提高整个系统的吞吐率 一般各个团队都会对连接池进行封装 只提供简洁的接口供上层使用 在上层看来 并不知道底层是否使用了连接池 甚至连访问数据库的IP和Port都不知道
  • 贪心算法 - java切金条问题 - Kaiqisan

    大家好 都吃晚饭了吗 我是Kaiqisan 是一个已经走出社恐的一般生徒 今天康康一个贪心算法的经典例题 切金条问题 问题 一块金条切成两半 是需要花费和长度数值一样的铜板的 比如长度为20的金条 不管切成长度多大的两半 都要花费20个铜板
  • Ubuntu下编译openwrt

    从网上找的资料 还有自己出现的错误和解决方法 合并整理一下 很多安装时出错以及找解决方法的过程 已经放在另一篇文章里了 下面也放链接了Ubuntu下编译openwrt的过程出错及解决 m0 60027682的博客 CSDN博客 我是跟着视频