4 编译OpenWrt

过去折腾OpenWrt时候就觉得OpenWrt各个版本都有这样那样的问题。trunc版不怎么稳定,而且很多软件似乎都不能安装,上次我强行安装一个软件,结果路由器变砖了,还是找人修复的。AA版(Attitude Adjustment 12.09)用的人多,但是官方不支持720n。BB版(BarrierBreaker 14.07)支持720n,但是用的人好像不多,比如(6)中用的就是AA版。很多教程用的都是AA版,BB版设置界面跟AA版差很远。编译过程中遇到的主要问题:

4.1 编译环境的搭建:大部分都是用的Ubuntu,但最近我用的比较多的是Debian。但是Debian下环境的搭建其实跟Unbuntu还是有点差别的,后来我看了官方文档才知道。(查资料的时候openwrt网站抽风,这份文档打不开。)只好按照其他的文档来做,最主要看的的是《新版OpenWrt编译教程》和 《720N(V3 4M Flash) OpenWrt 编译教程》。要下载的内容有1个多G,下载时间很长。

apt-get install build-essential asciidoc binutils bzip2 gawk gettext  git libncurses5-dev libz-dev patch unzip zlib1g-dev  subversion

其实应该用不着安装这么多包,应该只需要(没有验证):

apt-get install libncurses5-dev zlib1g-dev gawk

4.2 编译AA版,加入720n支持的方法有好几种,有的直接修改703的文件,有的是新增一个定义。网上有改好的git(https://github.com/fqrouter/openwrt-attitude-adjustment/tree/tl-wr720n),版本太旧,编译也失败(中间还包含另外一个版本,需要用git切换到720n版)切换git的分支参考git clone命令使用)。

git clone git://github.com/fqrouter/openwrt-attitude-adjustment

git checkout -t origin/tl-wr720n

另外一个版本(https://github.com/tominescu/attitude_adjustment)也一样编译失败

(后来发现不是这两个版本有问题,而是编译过程需要下载的库抽风了)作者有提供有一个编译好的版本,但是不带luci,安装了好像有问题。

4.3 没办法,通过svn下载官方版本,其实也有git版本。

svn co svn://svn.openwrt.org/openwrt/branches/attitude_adjustment

编译出错。注意:使用多线程编译(make -j 4)是看不到报错信息的,要用单线程并用make V=99。看到编译过程需要下载一些文件,有的需要翻墙下载,有的翻墙也下不了。比如luci那天就抽了,下不下来。后来自己通过迅雷下载了,放在自己用Server-U建了一个ftp服务器上,修改scripts/download.pl文件,增加一个@mirror到这个服务器。总算是能继续编译了。后来看到有文档说其实下载后放到dl目录下就可以了。

4.4 没有人告诉我编译要这么长时间的!第一次编译大概花了5个小时(单线程),我同时开了两个虚拟机,同时编译AA版和BB版,编译时间太久,我睡了一觉起来,发现BB版编译成功,但AA版编译失败,又有个服务器抽了。尤其是ftp://ftp.gnu.org这个服务器抽了很麻烦,其实也不是下载不了,只是每次下载一点就自动断线,后来我改了tools/patch/Makefile 和scripts/download.pl (通过github的搜索功能找到的,这个功能超级好),将其中的ftp://ftp.gnu.org都改成https://ftp.gnu.org,下载就没问题了。make -j 4(并行编译)可以大幅度提高编译速度,大概只要半个小时就能编译完,但要确定没有错误,因为多线程(-j)模式没有错误输出显示的。

4.5 没有人告诉我编译需要这么大空间的,最早我的虚拟机开了10G硬盘,我想编译一个几M的小东西,应该完全够用了,结果编译到一半报没有空间。又重新建一个虚拟机20G的,重新安装编译环境(又下了一次1个多G,汗)。。。我发现编译14.07的时候居然又报没空间了,20G都不够用!太丧心病狂了!!为此我克隆了一下虚拟机,一个用于编译AA版。另外一个用于编译BB版。

4.6 总算编译成功了一次,又回来折腾AA版720n的问题。通过github的版本“比较”功能(这个功能无敌超级好!)(https://github.com/fqrouter/openwrt-attitude-adjustment/compare/tl-wr720n),发现最初修改的10个文件。在官方版的基础上按这个改一遍。再编译,按说应该可以看到720n的target了,但是还是看不到。查了半天资料,发现增加新的profile,需要删除/tmp文件夹,重新make defconfig。这次终于看见720n了。编译过程到ar97xx的时候死掉,还以为是哪个文件改错了,又一个个该回去,每次试了编译都是到同一个地方死掉。。。全部改回原样也编译不了。实在找不到问题,重启了虚拟机,发现可以编译了Orz。只好又改一遍。(最近做事很不顺啊),总算OK了。

4.7 (6)文中的修改启动dnsmasq的ipset的方法是修改dnsmasq的编译文件,其实这是针对AA版。对于BB版,可以在make menuconfig的时候在base system中选择dnsmasq-full,取消dnsmasq。

其实本节整个都在做无用功,因为后来发现不是dnsmasq的安装问题。可能以后还要再编译,留下过程记录。

--------------------------------------------------------------------------------------------------------------------------

好吧,我又天真了,这样编译出的文件刷上去确实可用,但是所有kmod*的软件包安装会出错。。。说不满足需要的核心

Collected errors: * satisfy_dependencies_for: Cannot satisfy the following dependencies for ppp-mod-pptp: *         kernel (= 3.7.5-1-ae714825bf6dc29c42ed289dff7f1e5d) *         kernel (= 3.7.5-1-ae714825bf6dc29c42ed289dff7f1e5d) *         kernel (= 3.7.5-1-ae714825bf6dc29c42ed289dff7f1e5d) *         kernel (= 3.7.5-1-ae714825bf6dc29c42ed289dff7f1e5d) *         kernel (= 3.7.5-1-ae714825bf6dc29c42ed289dff7f1e5d) *         kernel (= 3.7.5-1-ae714825bf6dc29c42ed289dff7f1e5d) *         kernel (= 3.7.5-1-ae714825bf6dc29c42ed289dff7f1e5d) *         kernel (= 3.7.5-1-ae714825bf6dc29c42ed289dff7f1e5d) *         kernel (= 3.7.5-1-ae714825bf6dc29c42ed289dff7f1e5d) *  * opkg_install_cmd: Cannot install package ppp-mod-pptp.

查了半天,居然是豆瓣上有人给了正解:

你用的不是官方编译的内核 ,当然不能用官方编译的kmod模块了 
如果需要编译成能使用官方kmod软件包的,需要使用官方编译好的ImageBuilder ,编译方法见
OpenWRT:利用Image Builder编译生成自定义ROM

编译TL-WR720N用的OpenWrt折腾记相关推荐

  1. openwrt折腾记5 广告屏蔽大师adbyby深度调优(借用老毛子完美数据文件)

    广告屏蔽大师adbyby 深度调优 本文的精进 起始和结局 一.探索试融合试用adbyby规则文件 二.对luci-app-adbyby-plus更新lazy.txt,video.txt文件脚本adb ...

  2. openwrt折腾记1-DDNS动态域名更新与WIFI定时开关脚本

    本来无事,因为刚得知ipv6可以直接访问内部家庭宽带,于是开始试用.移动的第三方公司,运维人员给的答复是IP公网的需要安装专线,ipv6够呛. 0x01使用ipv6拨号 首先通过他的超极用户进入光猫, ...

  3. openwrt折腾记3-开通ipv6(二级路由)

    当前openwrt做的是二级路由器,不用来拨号.我猜拨号时可能解决方案较成熟.下面就说下怎么开通二级下的不完全方式. https://www.azimiao.com/8523.html 这是其中一篇文 ...

  4. Openwrt折腾记6-网络摄像头

    前言: 前几天买了个电视机上的摄像头,但是估计是电视配置或软件不好,视频通话太卡顿.今天把它装的极路由4的usb上了.由于当初挑的是电视免驱的,所以我猜想是通用的芯片. 调查驱动 LINUX uvc支 ...

  5. 小米路由(OpenWrt)折腾记(二)-- 搭建LLMP服务

    为什么80%的码农都做不了架构师?>>>    小米路由器买回来转眼都快一年了,本来打算好好折腾一番,最后也基本只是作为路由器功能了,第一篇写的ssh连接内网的功能还在使用,不过由于 ...

  6. 水星路器服务器无响应,联想M720Q、光网卡、Pon stick、Openwrt我的完美软路由折腾记...

    联想M720Q.光网卡.Pon stick.Openwrt我的完美软路由折腾记 2020-11-11 15:43:09 26点赞 208收藏 74评论 一直以来就是个完美党(其实就是zuo) ,之前的 ...

  7. n1运行linux,斐讯N1折腾记:运行 Linux 及优化

    此教程同样适用于斐讯 P1 咳咳咳,上篇教程教大家给斐讯 N1 降级并且刷了官改系统,可以当作一个电视盒子和下载机来使用. 有些小伙伴可能不想把它当作电视盒子,就想把它当作 NAS 或者是服务器,但是 ...

  8. armbian n1 桌面_斐讯N1折腾记:运行 Linux 及优化 | 米V米

    最后更新时间:2019年03月25日 此教程同样适用于斐讯 P1 咳咳咳,上篇教程教大家给斐讯 N1 降级并且刷了官改系统,可以当作一个电视盒子和下载机来使用. 有些小伙伴可能不想把它当作电视盒子,就 ...

  9. Ubuntu子系统折腾记

    文章目录 Ubuntu子系统折腾记 让WSL代替cmd和PowerShell 将Ubuntu子系统放到桌面 操作Windows上的硬盘文件 调用Windows中安装的Python 搭载Windows ...

最新文章

  1. 在线作图|2分钟画一张堆叠面积图
  2. Aliyun 挂载硬盘
  3. 26条面试经典问答(真实工作经验)
  4. 将用户添加至sudoers列表
  5. Android studio java文件显示变为红色J
  6. c语言实现去除字符串首尾空格
  7. Django(part23)--Django shell的使用
  8. http,session,cookie
  9. python上传文件 request_Python request post上传文件常见要点
  10. JWT/JJWT JSON WEB TOKEN介绍和使用
  11. iOS开发必读-GitHub 上Top100 的 Objective-C 项目
  12. mybaitis快速生成_Mybatis中使用mybatis-generator结合Ant脚本快速自动生成Model、Mapper等文件...
  13. 最佳匹配问题-KM算法
  14. XX市核酸检测软件开发基本方案
  15. 2003迁移2008R2难点分析
  16. 批量导出word中的清晰图片
  17. U盘提示格式化,8G的U盘变成了8M,并无法格式化打不开U盘解决方法
  18. 想进大公司先测你EQ
  19. 靠着这份“葵花宝典”,让我收到了6个大厂的offer(华为+字节+腾讯+京东+网易+滴滴)
  20. web前端学习之———互联网与HTML篇

热门文章

  1. python循环:嵌套打印小星星
  2. 建模大神告诉你,3Dmax和Maya哪个建模软件更实用
  3. How to get X86 CPU TDP
  4. adb shell settings 控制安卓系统设置
  5. Ant Design Pro组件pro-layout菜单自定义icon,以及二级菜单不显示icon处理
  6. 多闪删掉的作品怎么恢复_快手删除的作品怎么恢复 快手找回删除作品诀窍
  7. css3如何实现动画?常用的动画方法总结
  8. Reflect 映射
  9. Vue配置axios响应拦截器
  10. MySQL安装失败的几个小问题