您的位置:首页 > 运维架构

转:小白编译openwrt固件教程

2015-07-16 17:03 239 查看
原文地址

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

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

评分

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: