最近在捣鼓一台旧的路由器,由于一直靠在论坛用别人自己编译的固件,且各个固件都有所好处,所以决定自己编译一个最合适自己的固件

首先是准备工作

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编译相关推荐

  1. 从零开始学习OpenWrt完美教程-转

    Cisco/Linksys在2003年发布了WRT54G这款无线路由器,同年有人发现它的IOS是基于Linux的,然而Linux是基于GPL许可证发布的,按照该许可证Cisco应该把WRT54G 的I ...

  2. 从零开始学习OpenWrt完美教程+学习笔记

    原贴地址:zhidx.jiguo.com/p/186.html Cisco/Linksys在2003年发布了WRT54G这款无线路由器,同年有人发现它的IOS是基于Linux的,然而Linux是基于G ...

  3. 最新版OpenWrt编译教程,解决依赖问题

    最新版OpenWrt编译教程,解决依赖问题 参考文章: (1)最新版OpenWrt编译教程,解决依赖问题 (2)https://www.cnblogs.com/jzssuanfa/p/7400840. ...

  4. 【物联网】OpenWrt编译和修改基础--预科

    该文章讲解一下在AR9331上使用Openwrt的编译修改方法,前面先介绍一下硬件平台特点,为后面的代码修改做铺垫,然后描述一下Openwrt的编译烧写流程,最后再重点讲述编译配置.代码修改细节. 1 ...

  5. OpenWrt 编译及batman-adv组件选择(for Netgear WNDR3800)

    OpenWrt 编译(ubuntu)及batman-adv配置(for Netgear WNDR3800) 一.编译openwrt固件 1.下载源码,如15.05(Chaos Calmer)这个版本 ...

  6. OpenWRT编译 -- 出现‘...net/mac80211/mac80211.ko‘ is missing的错误

    1.背景   1.在 ubuntu 环境下搭建好 OpenWRT 的开发环境使用良久之后(具体的搭建可以查阅 OpenWRT 编译 – 搭建属于自己的 OpenWRT 的开发环境),心血来潮想要换一下 ...

  7. openwrt编译固件流程

    openwrt编译固件分为环境配置以及固件编译两个部分,下面将按步骤介绍编译固件的方法流程 1.环境配置 编译固件需要先配置环境,自己所需的环境在官网中可以找到.选择适合自己的分支,默认的分支为mas ...

  8. OpenWRT编译失败问题解决(一)

    最近在做OpenWRT相关的项目,按照步骤在编译时报错,提示增加编译选项 -j1 V=s 查看详细报错信息. make -j1 V=s 之后看到打印信息,gcc-linaro-4.8-2014.04. ...

  9. openwrt编译kcptun报错proxy.golang.org 无法下载

    openwrt编译kcptun报错proxy.golang.org 无法下载. 错误提示: Get https://proxy.golang.org/github.com/kardianos/gove ...

最新文章

  1. r语言如何写入一个excel_R语言如何进行聚类分析?
  2. 2021 亚马逊云科技中国峰会,对话《容器混合云会是未来的答案吗》
  3. 使用tensoflow serving来部署模型推理节点
  4. 当心在Lib中定义非const全局变量
  5. PHP 多参数方法的重构
  6. [jQuery] 说说看jQuery的选择器有哪些?
  7. sftp shell 批量上传文件_如何在shell脚本里使用sftp批量传送文件-阿里云开发者社区...
  8. 【Vue.js源码解析 三】-- 模板编译和组件化
  9. Linux 命令(63)—— nm 命令
  10. ffmpeg前景_5G时代音视频开发前景怎么样?音视频开发需要掌握哪些技术?
  11. 硬,软连接,以及在windows中的用法
  12. 应用安全-安全设备-Waf系列-软Waf-D盾
  13. LINUX第2天——基础操作
  14. dede采集-织梦全自动采集插件-织梦免费采集插件
  15. 迅雷 服务器响应异常,迅雷7经常崩溃无法正常使用的两大解决方法
  16. 远程安全接入解决方案
  17. HTML短信验证码框,vue实现短信验证码输入框
  18. tpwr886n路由器设置虚拟服务器,tl-wr886n路由器设置步骤图解 | 192路由网
  19. 微信开放平台开发第三方授权登陆(二):PC网页端
  20. python 电压 谐波_教你计算总谐波失真(THD)

热门文章

  1. 利用c++完成学生成绩管理系统
  2. 清空mysql 表数据
  3. python制作网页系统_使用python静态网页生成工具pelican快速在github上部署网站博客...
  4. VR/AR迷失元宇宙“硝烟”
  5. 弹性地基梁板法计算原理_yjk软件基础常见问题
  6. iOS菜鸟成长笔记(3)——斯坦福公开课学习(1)
  7. 打印机打印列队中打印状态为错误的解决方式之一
  8. 学习笔记18--定位系统之差分定位系统
  9. 继父母离异,继子女是否还有赡养继父母的义务
  10. 视频调度指挥系统服务器,非常实用的应急指挥中心的视频系统设计方案