0x00 安装依赖

安装git以下载OpenWrt源码。安装编译工具以进行交叉编译:

sudo apt-get update
sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs unzip

feeds中的部分软件包可能只能通过subversion (缩写: svn)或者mercurial下载源代码。如果你需要安装这些软件包,你同时也应当安装svn和mercurial:

sudo apt-get install subversion mercurial

通过git来下载OpenWrt bleeding edge(trunk版本) 详情参考https://wiki.openwrt.org/doc/howto/buildroot.exigence 这里我编译是的15.05

git clone git://github.com/openwrt/openwrt.git

15.05 branch (Chaos Calmer)

git clone -b chaos_calmer git://github.com/openwrt/chaos_calmer.git

14.07 branch (Barrier Breaker)

git clone -b barrier_breaker git://github.com/openwrt/archive.git

0x01 安装Feeds

此处就是下载一些你之后要编译进firmware里的一些软件。若有自己需要额外添加的组件,可以通过添加feeds来实现。比如,我需要添加openvswitch的支持,在目录下输入如下命令:

echo 'src-git openvswitch git://github.com/schuza/openvswitch.git' >> feeds.conf.default

然后,更新下载feeds组件包并安装:

./scripts/feeds update -a //更新下载全部软件包./scripts/feeds update [包名]) //单独更新下载某软件包
./scripts/feeds install -a //安装全部软件包./scripts/feeds install [包名] //单独安装某软件包

0x02 配置OpenWRT

直接在 [openwrt主目录] 下输入命令 make menuconfig 即可开始自定义选择组件

Target System --> 选择路由器CPU

Target Profile --> 选择路由器型号

LuCI --> Modules --> <*> luci-base.........LuCI core libraries 然后进入下面的Translations --> 选择语言

添加LuCI界面

LuCI --> Collections --> <*> luci

添加UTF-8编码

Kernel modules --> Native Language Support --> <*> kmod-nls-utf8

若之前添加过自己的组件,就对应选择上,否则编译不进去!

全部选择完,一定记住保存,才能成功写入 .config 文件。

设置LuCI默认语言

打开 feeds/luci/modules/luci-base/root/etc/config/luci 文件

config core mainoption lang auto //此处修改为option lang zh_cnoption mediaurlbase /luci-static/bootstrapoption resourcebase /luci-static/resourcesconfig extern flash_keepoption uci         "/etc/config/"option dropbear "/etc/dropbear/"option openvpn    "/etc/openvpn/"option passwd    "/etc/passwd"option opkg        "/etc/opkg.conf"option firewall    "/etc/firewall.user"option uploads    "/lib/uci/upload/"config internal languagesoption zh_cn chinese //新增option en English //新增

config internal sauthoption sessionpath "/tmp/luci-sessions"option sessiontime 3600config internal ccacheoption enable 1config internal themes

设置默认开启WIFI

打开 package/kernel/mac80211/files/lib/wifi/mac80211.sh文件

0x04 编译前注意事项

修改固件大小

我的路由器型号WL841N_V8(硬件方面改装成16M的Flash),所以需要把默认的4M改成了16M,这样编译后就没问题了。

修改 target/linux/ar71xx/image/Makefile 文件,搜索 tl-wr841n-v8

修正网口顺序问题

OpenWRT的网口经常是反过来的,所以要进行修正

打开 /openwrt/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr841n-v8.c 文件

ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_SW_PHY_SWAP);
改为
ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_SW_ONLY_MODE);
ath79_switch_data.phy_poll_mask = BIT(0);
改为
ath79_switch_data.phy_poll_mask = BIT(4);
ath79_eth0_data.phy_mask = BIT(0);
改为
ath79_eth0_data.phy_mask = BIT(4);

修改LED灯顺序问题

打开 target/linux/ar71xx/base-files/etc/uci-defaults/01_leds 文件,修改为如图所示

0x05 编译固件

一般情况下,编译直接在 [openwrt主目录] 下输入命令 make V=99 。可以查看编译过程具体信息。直接make无具体信息。编译完成后,在bin目录下就可以找到你编译好的bin文件,以及bin/packages下编译好的一些ipk文件,ipk文件可以直接安装于刷好的OpenWRT中。

注意:此处千万不要以root权限执行make,否则报N多错误。

另附一些编译选项:

  1. 在多核电脑中编译,常规用法为【 cpu处理器的数目 + 1】– 例如使用3进程来编译 (即双核CPU), 命令及参数: make -j 3 。这样可以加速编译,不过我没试过。
  2. 后台编译,你还在忙其他,不想让编译耗费太多资源,只使用一些空闲的I/O和CPU能力来编译: ionice -c 3 nice -n19 make -j 2
  3. 单独编译某个包: make package/[包名]/compile V=99 。编完后在bin/packages下会找到对应的ipk文件。
  4. 单独编译某个包: make package/[包名]/compile V=99 。编完后在bin/packages下会找到对应的ipk文件。

0x06 参考链接

http://wiki.openwrt.org/doc/howto/buildroot.exigence

https://dev.openwrt.org/wiki/GetSource

 
本文转自 K1two2 博客园博客,原文链接:http://www.cnblogs.com/k1two2/p/7222027.html  ,如需转载请自行联系原作者

初玩OpenWRT之编译TP-Link WR841N V8固件相关推荐

  1. 菜鸟哥玩蓝牙Ble4.0系列 ESP32初玩篇① Scan —— 扫描周边蓝牙,了解BLE扫描的方方面面

    文章目录 1.前言 2.ESP32 Scan案例 2.1 直接打开官方示例 3.Scan核心库 -- BLEScan 3.1 管理扫描 3.1.1 创建扫描对象 -- BLEScan 3.1.1.1 ...

  2. 硬改TP-Link WR841N v8刷breed和OpenWrt

    找到了以前的路由器,想刷OpenWrt 但版本是TP-Link的WR841N v8版,上网查过才知道,是专门面向国内发布的严重缩水版 国际版的Flash是4M,内存RAM是32M,国内版是2M/16M ...

  3. openwrt+linux编译,openwrt x86 编译部署

    0.背景 前段时间看到C1037u多网口版本,很是喜欢,替换的4530r,发现玩openwrt x86的人比较少,写一篇日记,以备后用,有错误之处请指出. 1.配置编译环境 Linux 2.获取源代码 ...

  4. OpenWrt下载编译

    不想啰嗦直接肝,依次执行: git clone git://github.com/openwrt/openwrt.git cd openwrt ./scripts/feeds update -a ./ ...

  5. openwrt安装编译

    官网安装编译推荐: https://wiki.openwrt.org/doc/howto/buildroot.exigence https://wiki.openwrt.org/doc/howto/b ...

  6. openwrt php 编译环境,openwrt基础编译教程

    从官网下载ubuntu,我下的是ubuntu 15.10(ubuntu-15.10-desktop-amd64) 打开终端 安装基础环境 sudo apt-get install build-esse ...

  7. 小白 uBuntu20.04 2 安装TP Link TL-WDN5200 无线网卡驱动 亲测有效

    小白 uBuntu20.04 2 安装TP Link TL-WDN5200 无线网卡驱动 首先我先说一下,其实网上很多都是有用的,只是安装步骤不是很详细罢了,我这个只做参考,希望能帮到你. 我朋友问我 ...

  8. linux下下载openwrt源码,OpenWrt下载编译

    不想啰嗦直接肝,依次执行: git clone git://github.com/openwrt/openwrt.git cd openwrt ./scripts/feeds update -a ./ ...

  9. 【路由器】TP Link TL-WR702N 迷你路由器为何无法进入管理后台

    TL-WR702N是TP Link在很多年前发布的一个迷你型的便携路由器,最近要搬家,我从箱子底翻出了这个小乖乖,年代有些久远,当初的账户密码全都忘到了九霄云外,无奈之下reset重新设置,但是却遇到 ...

最新文章

  1. 魔棒工具--RegionGrow算法简介
  2. 特征工程与sklearn
  3. spring原始注解
  4. ELK报错hese locations are not writable or multiple nodes were started without inc
  5. matlab图片拼接变成白的,利用matlab实现对图片的拼接
  6. css光线,css 射线实现方法
  7. scala bitset_Scala中的BitSet
  8. Java8新特性总结 -6.Date/Time API
  9. HTML中禁用表单控件的两种方法readonly与disabled
  10. ionic获取手机通讯录
  11. 表格序号_让Excel表格中的序号自动更新,再也不怕删除、插入行了
  12. PHP最常用的2种设计模式工厂模式和单例模式
  13. 用SPFA判断是否存在负环
  14. 游戏美术-魔兽世界查看器的正确使用方法
  15. 4种方法解决鼠标反应慢(迟钝)
  16. Win10下安装centos7双系统
  17. ios13一直在估算剩余时间怎么办
  18. 操作MySQL出错提示“BLOB/TEXT column used in key specification without a key length”解决办法
  19. TLC5615 DA转换 verilog FSM
  20. Periodic Strings (求HoHoHo字符串最小周期)

热门文章

  1. hadoop权威指南(一)
  2. react项目中,使用.jsx和.js文件书写react代码时,这两者有什么差异性?
  3. C6820摄像头的托管驱动 - Codeplex
  4. 深入探索Android 启动优化(七) - JetPack App Startup 使用及源码浅析
  5. “元宇宙”虚拟世界的营销法则 “品牌元宇宙空间”算什么?
  6. 有没有你家?贵阳七村拟入选全省乡村旅游重点村名录
  7. Spark大数据技术与应用 第一章Spark简介与运行原理
  8. 单片机连接MySQL数据库
  9. C++的边边角角扫盲
  10. Nand Flash引脚(Pin)的说明