OpenWrt编译教程及入门
ubuntu使用入门教程一、OpenWrt的起源:
Cisco/Linksys①在2003年发行了WRT54G这款无线路由器,同年有人发现它的IOS②是基于Linux的,然而Linux 基于GPL许可证发布的,按照该许可证Cisco应该把WRT54G 的IOS的源代码公开。2003年3月,Cisco迫于公众压力公开了WRT54G的源代码。此后就有了一些基于Cisco源码的第三方固件,OpenWrt就是它们中的一个。[1]
二、OpenWrt的特点:
●可扩展性好,可以在线安装您所需要的功能,目前有1000多个功能包可选
●是一台完整的linux工作站,文件系统可读可写,便于开发者学习和实践
三、编译OpenWrt:
编译OpenWrt不是必须的,普通用户只需在互联网上寻并下载具体路由器型号对应的固件即可,下面的openwrt的官方下载站点:
/
这里以Ubuntu 12.04和Fedora 17为例介绍如何在Linux下自行编译Openwrt固件。
第一步是搭建编译环境,由于Ubuntu和Fedora默认安装都缺少一些编译Openwrt 所需的必要组件,所以需要自行安装。
在Ubuntu 12.04下使用如下终端命令安装所缺组件:
sudo apt-get install subversion git flex g++ gawk zlib1g-dev libncurses5-dev
在Fedora 17下使用如下终端命令安装所缺组件:
sudo yum install subversion git flex gcc zlib-devel ncurses-devel gcc-c++
第二步是获取OpenWrt源码,在完成第一步的安装工作后就可以获取源码了,在获取源码前,建议先建立一个专用的工作目录,在终端中进入该目录,然后就可以使用下面的命令获取源码了:
svn co svn:///openwrt/trunk/
1
trunk是OpenWrt的开发版本,更新很快,OpenWrt有好几个分支,要编译其它分支,sun://后的地址换
为相应的地址即可。如果svn获取源码的速度太慢,可以试试OpenWrt的第三方镜像,比如国内的OpenWrt中文论坛所建的镜像,那么命令应该换成:
svn co svn:///openwrt/trunk/
做完上面的工作只是获取了OpenWrt的主体代码,如果要想在自己编译的固件中加入更多的功能,还需要添加feeds源。比如要想在固件中加入Web界面控制,就需要添加luci 源,一般情况下推荐添加所有源。先进入工作目录:
cd trunk
然后添加所有的feeds源:
./scripts/feeds update -a
./scripts/feeds install –a
第三步是编译前的配置,一般情况下我们通过一个配置菜单来完成,要掉出配置菜单,只需在终端中运行如下命令:
make menuconfig
如果一切正常,会出现一个配置菜单,可以选择要编译的固件平台、型号,还能选择固件中要添加的功能和组件,配置好后保存并退出菜单即可。
第四步就是编译OpenWrt了,如果前面的工作都顺利的话就可以开始编译了。在终端中使用下面的命令:
make
如果你的计算机性能允许的话,可以使用如下命令来缩短编译时间:
make –j n
其中n应该是一个具体的整数,表示编译时可以同时执行的任务数,一般使用2或者4,当然,n也可以不要,即只使用“make -j”命令,这样编译时同时执行的任务数将不受限制。
需要注意的是,编译过程中可能不会下载一些东西(主要是源码包),所以断网可能造成编译中断,编译所需时间与计算机的CPU及网络环境有很大关系,一般首次编译的时间要长很多,之后的编译所需时间较短。
编译完成后,生成的固件在trunk/bin/XXXX下。
2
四、使用OpenWrt:
要在路由器上使用OpenWrt,首先要将路由器固件刷新为OpenWrt,即相当于OpenWrt 系统的安装,不同型号的路由器的安装方法可能也会不一样,但一般常用的有三种方法:
●Web上传固件更新
●PFTP上传固件更新
●编程器写入固件
具体型号的路由器适用于哪种或哪几种方法,需自行尝试或求助于互联网,此处略去。
要对OpenWrt进行配置,一般有两条途径,SSH登录通过命令行控制和Web登录通过Web界面设置。
首次安装OpenWrt后,需要设置密码才可以使用SSH登录,方法是使用telnet登录或者Web登录设置密码。在Windows下面telnet和SSH登录可以使用Putty,在Linux下可分别使用如下命令:
telnet 192.168.1.1
ssh –l root 192.168.1.1
用telnet登录路由器后使用下面的命令设置密码:
passwd root
需要注意的是设置密码后telnet登录功能就默认关闭了。
随后就可以使用SSH和刚刚设置的密码登录路由器对路由器进行操作,一般指令与常见Linux发行版相同,但是OpenWrt使用自己的包管理器:opkg,使用“opkg --help”查看帮助信息。以下是一些常用操作命令:
更新软件包列表:
opkg update
在线安装软件包:
opkg install <packagename>
移除软件包:
opkg remove <packagename>
3
登录Web管理界面,前提是该OpenWrt系统中要安装了Web界面,一般是Luci,登录方式与普通路由器无异,打开浏览器,输入路由器IP即可进入登录界面,OpenWrt的默认IP是192.168.1.1。
注释:
①Linksys是思科系统一个销售家用与小型业务用网络产品的部门。Linksys最初于1988年创立,2003年被思科收购。
②IOS,即互联网操作系统(Internetwork Operating System,简称IOS),是思科公司(Cisco System)为其网络设备开发的操作维护系统。
参考文献:
[1] 百度百科词条“DD-WRT”:baike.baidu/view/590148.htm
4

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。