从零开始的OpenWRT编译
最近在捣鼓一台旧的路由器,由于一直靠在论坛用别人自己编译的固件,且各个固件都有所好处,所以决定自己编译一个最合适自己的固件
首先是准备工作
sudo apt-get update
sudo apt-get install -y git-core build-essential libssl-dev libncurses5-dev unzip
sudo apt-get install -y subversion mercurial
sudo apt-get install -y gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev
sudo apt-get install -y gawk asciidoc libz-dev libssl-dev time
Debian的vps可能需要新建一下用户
引用一下zouyongjin的教程
文中的humou均改成自己想要的用户名
在root权限下操作
useradd -g echo echo
passwd echo
visudo
在这里找到root ALL=(ALL:ALL) ALL 下面添加一行
echo ALL=(ALL:ALL) ALL
这是接下来操作的注意事项:
1. 请使用一个非root用户来完成这些工作!
2. 这里的所有命令都在OpenWrt编译系统的根目录下运行(例如~/openwrt/trunk/)
3. 编译系统的绝对路径中不能含有空格!
4. 如果你使用root用户下载了源码,请把你下载来的源码的所有者更改为一个非root用户。(sudo chown -R user:user /openwrt/)
1.接下来是获取Openwrt源码
git clone https://git.openwrt.org/openwrt/openwrt.git
或者https://github.com/openwrt/openwrt.git
等待代码下载。结束后,目录下会出现openwrt文件夹
2.进入openwrt目录,执行
./scripts/feeds update -a
./scripts/feeds install -a
3.配置编译选项:
make menuconfig
用方向键、空格(选择,出现M代表编译但不编译到固件,*号(按y也有)表示编译进固件)、按两下esc返回等操作来配置选项,本人的路由器是newifi mini,配置如下(大部分为针对我需求的选项):
Target System --> MediaTek Ralink MIPS
Subtarget --> MT7620 based boards
Target Profile --> Lenovo Y1
Package the OpenWrt-based Toolchain
Base system --> block-mount
libstdcpp
Kernel moudules --> Filesytems --> kmod-fs-ext4
kmod-fs-ntfs
kmod-fs-vfat(可要可不要)
Native Language Support ---> kmod-nls-utf8
USB Support ---> kmod-usb-ohci ##默认已选 old usb1.0
kmod-usb-storage
kmod-usb-storage-extras
kmod-usb-uhci ## usb1.1
kmod-usb2
Libraries --> SSL --> libopenssl
libffmpeg-mini(这是FFmpeg,不需要的可以不安装)
libxml2
LuCI --> Collections --> luci
Modules --> Translations -->Chinese
Applications --> luci-app-adblock (这里都是自己需要的插件的luci,自己选择需要哪些)
luci-app-hd-idle
luci-app-ntpc
luci-app-samba4
luci-app-transmission
luci-app-uhttpd
luci-app-upnp
Theme --> luci-theme-material
Network --> BitTorrent --> transmission-daemon-openssl
transmission-remote-openssl
transmission-web
Downloas Manager --> ariang
webui-aria2
yaaw
File Transfer --> curl
vsftpd
Time Synchronization --> ntpclient
Utilities —> Filesystem —> <*> badblocks
ntfs-3g
Utilities ---> disc ---> <*> fdisk
Utilities ---> <*> usbutils
最后save并按两次esc
4.编译
make V=s -j8
输出为
Signing package index...
make[2]: Leaving directory '/home/echo/openwrt'
export MAKEFLAGS= ;make -w -r checksum
make[2]: Entering directory '/home/echo/openwrt'
make[2]: Leaving directory '/home/echo/openwrt'
make[1]: Leaving directory '/home/echo/openwrt'
这时可在~/openwrt/bin/targets/ramips/mt7620中找到固件openwrt-ramips-mt7620-y1-squashfs-sysupgrade.bin
错误总结:
在编译过程中会碰到各种奇怪的错误,不过通常都是因为没有安装好编译所需的工具,例如gawk等等,希望这篇文章能帮各位解决一小部分问题
感谢GoldMoon所写的教程,帮我解决初期的大部分问题,他的文章地址点击打开链接
---------------------
作者:晓丶玉女
来源:CSDN
原文:https://blog.csdn.net/a1246526429/article/details/80344889
版权声明:本文为博主原创文章,转载请附上博文链接!
从零开始的OpenWRT编译相关推荐
- 从零开始学习OpenWrt完美教程-转
Cisco/Linksys在2003年发布了WRT54G这款无线路由器,同年有人发现它的IOS是基于Linux的,然而Linux是基于GPL许可证发布的,按照该许可证Cisco应该把WRT54G 的I ...
- 从零开始学习OpenWrt完美教程+学习笔记
原贴地址:zhidx.jiguo.com/p/186.html Cisco/Linksys在2003年发布了WRT54G这款无线路由器,同年有人发现它的IOS是基于Linux的,然而Linux是基于G ...
- 最新版OpenWrt编译教程,解决依赖问题
最新版OpenWrt编译教程,解决依赖问题 参考文章: (1)最新版OpenWrt编译教程,解决依赖问题 (2)https://www.cnblogs.com/jzssuanfa/p/7400840. ...
- 【物联网】OpenWrt编译和修改基础--预科
该文章讲解一下在AR9331上使用Openwrt的编译修改方法,前面先介绍一下硬件平台特点,为后面的代码修改做铺垫,然后描述一下Openwrt的编译烧写流程,最后再重点讲述编译配置.代码修改细节. 1 ...
- OpenWrt 编译及batman-adv组件选择(for Netgear WNDR3800)
OpenWrt 编译(ubuntu)及batman-adv配置(for Netgear WNDR3800) 一.编译openwrt固件 1.下载源码,如15.05(Chaos Calmer)这个版本 ...
- OpenWRT编译 -- 出现‘...net/mac80211/mac80211.ko‘ is missing的错误
1.背景 1.在 ubuntu 环境下搭建好 OpenWRT 的开发环境使用良久之后(具体的搭建可以查阅 OpenWRT 编译 – 搭建属于自己的 OpenWRT 的开发环境),心血来潮想要换一下 ...
- openwrt编译固件流程
openwrt编译固件分为环境配置以及固件编译两个部分,下面将按步骤介绍编译固件的方法流程 1.环境配置 编译固件需要先配置环境,自己所需的环境在官网中可以找到.选择适合自己的分支,默认的分支为mas ...
- OpenWRT编译失败问题解决(一)
最近在做OpenWRT相关的项目,按照步骤在编译时报错,提示增加编译选项 -j1 V=s 查看详细报错信息. make -j1 V=s 之后看到打印信息,gcc-linaro-4.8-2014.04. ...
- openwrt编译kcptun报错proxy.golang.org 无法下载
openwrt编译kcptun报错proxy.golang.org 无法下载. 错误提示: Get https://proxy.golang.org/github.com/kardianos/gove ...
最新文章
- r语言如何写入一个excel_R语言如何进行聚类分析?
- 2021 亚马逊云科技中国峰会,对话《容器混合云会是未来的答案吗》
- 使用tensoflow serving来部署模型推理节点
- 当心在Lib中定义非const全局变量
- PHP 多参数方法的重构
- [jQuery] 说说看jQuery的选择器有哪些?
- sftp shell 批量上传文件_如何在shell脚本里使用sftp批量传送文件-阿里云开发者社区...
- 【Vue.js源码解析 三】-- 模板编译和组件化
- Linux 命令(63)—— nm 命令
- ffmpeg前景_5G时代音视频开发前景怎么样?音视频开发需要掌握哪些技术?
- 硬,软连接,以及在windows中的用法
- 应用安全-安全设备-Waf系列-软Waf-D盾
- LINUX第2天——基础操作
- dede采集-织梦全自动采集插件-织梦免费采集插件
- 迅雷 服务器响应异常,迅雷7经常崩溃无法正常使用的两大解决方法
- 远程安全接入解决方案
- HTML短信验证码框,vue实现短信验证码输入框
- tpwr886n路由器设置虚拟服务器,tl-wr886n路由器设置步骤图解 | 192路由网
- 微信开放平台开发第三方授权登陆(二):PC网页端
- python 电压 谐波_教你计算总谐波失真(THD)
热门文章
- 利用c++完成学生成绩管理系统
- 清空mysql 表数据
- python制作网页系统_使用python静态网页生成工具pelican快速在github上部署网站博客...
- VR/AR迷失元宇宙“硝烟”
- 弹性地基梁板法计算原理_yjk软件基础常见问题
- iOS菜鸟成长笔记(3)——斯坦福公开课学习(1)
- 打印机打印列队中打印状态为错误的解决方式之一
- 学习笔记18--定位系统之差分定位系统
- 继父母离异,继子女是否还有赡养继父母的义务
- 视频调度指挥系统服务器,非常实用的应急指挥中心的视频系统设计方案