原文地址

编译openwrt固件并没有想象的那么复杂,我也是个小白,以下内容是我将网络上的编译教程稍微进行了一下整合。因为我发现很多编译教程没有说明如何更改flash相关配置。

 
安装ubuntu,不赘述。
注意在安装完成后,root不能直接登录,需要设置密码,设置方法,自己百度一下。
 
如果是虚拟机安装,将虚拟机的网卡配置为桥接模式;
**************以下操作需要在root用户下操作************************
编辑/etc/networt/option文件夹下的interfaces,将iface eth0 inet dhcp配置为dhcp模式,
然后执行/etc/init.d/networking restar即可自动获取到ip地址(此方法适用于家中或单位使用dhcp获取IP地址的场合,如果为固定地址,请自行研究)。互联网联通以后执行以下:
 
sudo apt-get update
安装编译需要的组件:
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install binutils
sudo apt-get install patch
sudo apt-get install bzip2
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install make
sudo apt-get install autoconf
sudo apt-get install gettext
sudo apt-get install texinfo
sudo apt-get install unzip
sudo apt-get install sharutils
sudo apt-get install subversion
sudo apt-get install libncurses5-dev
sudo apt-get install ncurses-term
sudo apt-get install zlib1g-dev
sudo apt-get install gawk
sudo apt-get install asciidoc
sudo apt-get install libz-dev
如果编译过程中提示缺少某个组件,同样使用sudo apt-get install安装即可
编译环境搭建完成
**************注意:以下操作需要在自己建的用户下操作************************
mkdir openwrt 创建一个openwrt文件夹
cd openwrt    进入openwrt文件夹
svn co svn://svn.openwrt.org/openwrt/branches/backfire  
或者svn co svn://svn.openwrt.org/openwrt/trunk下载官网的源码
注:backfire和trunk为两个不同分支的openwrt源码,backfire据说较为稳定,但是支持的路由器没有trunk多,trunk更多称之为测试版,但编译好后使用也没什么问题。编译的时候只需执行以上一条命令即可。执行完成后,会在openwrt下生成目录,使用backfire源码生成backfire目录,trunk同理。
然后cd trunk或者cd backfire
Svn up
./scripts/feeds update -a
./scripts/feeds install -a   
make menuconfig
进入定制界面(里面可以选择芯片的型号,集成的组件等等,根据实际情况选择,多编译几次就熟悉了)
使用make defconfig,检查编译环境,如要报错参考以下:
注:较常见的问题是编译时不能使用root用户编译,如果使用root登录,需要使用su 用户名切换到非root用户;如果切换用户后,报权限错误,再切换到root用户,使用 sudo chown -R [自己用户名] trunk(如果编译的是backfire源码,此处trunk替换为backfire),然后返回自己的用户名,重新进行编译。
make V=99   
(开始编译)
剩下的就是等待了,第一次编译需要的时间相对比较长,这个跟你的电脑配置和网速有关。
以上为路由器未更改flash大小的编译过程;如果要编译非标准大小的flash固件,需要更改编译环境中的一些文件,以703N,使用trunk源码编译为例(trunk与backfire需要更改的文件不一样)
新版本trunk,703N编译8M固件需要更改以下两个文件:
1、  /turnk/tools/firmware-utils/src/mktplinkfw.c
在mktplinkfw.c中找到703N的相关属性,
.id             = "TL-WR703Nv1",
.hw_id          = HWID_TL_WR703N_V1,
.hw_rev         = 1,
.layout_id      = "8Mlzma",(改成8)
2、  /trunk/ target/linux/ar71xx/image/Makefile
Makefiel中找到以下内容
$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR703,tl-wr703n-v1,TL-WR703N,ttyATH0,115200,0x07030101,1,8Mlzma))
改成以上的8;
 
修改完成以上两个文件后,即可make V=99进行编译。
 
Backfire源码需要改动的文件,第一个与trunk一样,第二个文件位于
openwrt/backfire/target/linux/ar71xx/files/arch/mips/ar71xx目录下,找到对应的设备型号进行更改即可。
 
编译完成后,在bin/ar71xx目录下会有固件产生,固件名必包含编译的路由器型号,如果没有这两个文件,说明编译失败,有可能为编译时候选择的包太多,需重新选择后进行编译。
 
以上编译未进行相关配置文件的修改,如想修改配置文件,如默认打开无线等等,请自己百度/google。
 
注:以上大部分内容均来自互联网,我仅进行了整合。
 
 
 

评分

转:小白编译openwrt固件教程的更多相关文章

  1. debian下编译openwrt固件

    参考文章:Ubuntu下编译OpenWRT固件 我买的路由器是RG100A-AA,采用了bcm63xx系列的芯片. 下载openwrt源码: svn co svn://svn.openwrt.org/ ...

  2. !!!!OpenWrt系列教程汇总

    OpenWrt FAQ https://dev.openwrt.org.cn/wiki/faqs OpenWrt编译教程 完全新手教程:openwrt编译全过程(sse) 直接编译出带中文的openw ...

  3. 新手编译开发OpenWrt入门教程(自定义固件、ubuntu学习)

    转自:   http://www.znck007.com/forum.php?mod=viewthread&tid=21571 由于openwrt编译教程资料很多,不同的cpu芯片只需要选择对 ...

  4. 编译个性化的openwrt固件

    基本流程是:下载openwrt源码(推荐attitude adjustment版本).执行feeds更新.make menuconfig(通过配置feed.conf.default和menuconfi ...

  5. 编译适用于TP-Link WR703N的OpenWRT固件

    编译适用于TP-Link WR703N TP-Link MR11U 以及使用AR9331芯片组的单WAN/LAN复用口的路由. 注:刷机有风险,刷机需谨慎.一般情况下是不会失败的,若无法通过捅Rese ...

  6. OpenWrt固件刷入后串口终端没有反应的问题

    [路由器开发板硬件固件配置] MTK双频:MT7620a + MT7612e 内存:256 MB 闪存:16 MB 固件:MTK自带SDK中的OpenWrt固件(mtksdk-openwrt-2.6. ...

  7. TL-WR703Nv1.7刷写openwrt固件

    TP-LINK TL-WR703N是一个小型的路由器,可以有线转WiFi,3G转WiFi,很多人拿它刷openwrt系统,然后可以在上面各种搞事. V1.7以前 通常刷openwrt的做法是, 下载一 ...

  8. CentOS 7编译OpenWRT

    安装必要的依赖 yum install subversion binutils bzip2 gcc gcc-c++ gawk gettext flex ncurses-devel zlib-devel ...

  9. 编译lua固件NodeMcu 8266

    https://www.cnblogs.com/yangfengwu/p/10547024.html 因为我现在的Wifi的教程是lua语言编写的,但是有些功能需要自己编译lua固件才可以,这篇文章就 ...

随机推荐

  1. C# 依赖缓存

    使用轮询的方式 数据库: 在VS的命令里面输入 aspnet_regsql.exe -S (local) -U sa -P 123456 -d ERP_SQL -ed 上面这句是用来设置哪个服务器上的 ...

  2. 怎么样使用yum来安装、卸载jdk

    安装好的CentOS会自带OpenJdk,用命令 java -version ,会有下面的信息: java version "1.6.0"OpenJDK  Runtime Envi ...

  3. php示例代码之使用mysql_fetch_object函数

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  4. 使用iText库创建PDF文件

    前言 译文连接:http://howtodoinjava.com/apache-commons/create-pdf-files-in-java-itext-tutorial/ 对于excel文件的读 ...

  5. [MySQL Reference Manual] 6 安全性

    6. 安全性 在Mysql安装配置时要考虑安全性的影响,以下几点: Ÿ   常规因素影响安全性 Ÿ   程序自身安全性 Ÿ   数据库内部的安全性,即,访问控制 Ÿ   网络安全性和系统安全性 Ÿ   ...

  6. const,readonly 这些你真的懂吗? 也许会被面试到哦。。。

    首先不可否认,这些在面试上会经常被面试官问起,但是你回答的让面试官满意吗?当然如果你知道了这些原理,或许你就不 怕了.既然说到了原理,我们还是从MSDN说起. 一:值得推敲的几个地方 1.先来看看ms ...

  7. 【hadoop】——压缩工具比较

    文件压缩主要有两个好处,一是减少了存储文件所占空间,另一个就是为数据传输提速.在hadoop大数据的背景下,这两点尤为重要,那么我现在就先来了解下hadoop中的文件压缩. hadoop里支持很多种压 ...

  8. sql server 2005导出数据到oracle

    一. 在sql server下处理需要导出的数据库 1. 执行以下sql,查出所有'float'类型的字段名,手动将float类型改为decimal(18,4). select 表名=d.name,字 ...

  9. linux 进程管理相关内容

    简介 当我们运行程序时,Linux会为程序创建一个特殊的环境,该环境包含程序运行需要的所有资源,以保证程序能够独立运行,不受其他程序的干扰.这个特殊的环境就称为进程. 每个 Linux 命令都与系统中 ...

  10. css font-weight原理

    为什么要记录一下?因为今天我要设置一个字符加粗,然后就用font-weight:200,没有任何效果.现在看来很可笑,400才相当于normal,200怎么加粗,奇怪的是也没有变细.所以得研究一下fo ...