openwrt编译

    openwrt是嵌入式设备上运行的linux系统。OpenWrt 的文件系统是可写的,开发者无需在每一次修改后重新编译,是目前比较流行的路由器系统,编译后3-4M左右。编译服务器最好选用Ubuntu,以下在Ubuntu12.10下编译成功。

1. 安装基础软件

sudo apt-get install subversion libtool autoconf automake gcc-multilib bison screen gcc g++ binutils patch bzip2 flex make gettext unzip libc6 git-core git build-essential libncurses5-dev zlib1g-dev gawk quilt asciidoc libz-dev

2. 下载源码

svn co svn://svn.openwrt.org.cn/dreambox/trunk openwrt

  

3. 安装扩展

cp feeds.conf.default feeds.conf     #配置软件源
./scripts/feeds update -a            #更新软件源
./scripts/feeds install -a           #安装软件源

  

4. 内核定制

make V=s defconfig                    #测试编译环境

错误:undefined reference to `kconf_id_lookup'

Ubuntu15内核太新,导致出现该错误,建议选用ubuntu12进行编译。

make menuconfig                        #定制编译环境

选择编译项:

#Target

Target System  -- Atheros AR7xxx/AR9xxx

Target Profile -- TP-LINK TL-WR842N/ND

#SDK

Build OpenWrt SDK                  #SDK

Build OpenWrt Toolchain        #工具包,开发程序

#LuCI

LuCI -- Collections -- luci                          #web管理界面(Lua configuration interface),lua编写的

LuCI -- Translations -- luci-i18n-chinese            #中文包

LuCI -- Applications -- luci-app-ddns                #添加ddns

#Sys

Base System    -- block-mount                                #USB挂载

Kernel modules -- Filesystems -- kmod-fs-ext4                #硬盘支持

Kernel modules -- USB Support -- kmod-usb-storage-extras     #USB扩展支持

Utilities -- Filesystem -- badblocks                         #自动挂载工具

5. 编译

make 或 make V=99(推荐)

错误:

1. Could not resolve hostname `svn.nomi.cz'

该源被墙了,无法访问到该域名。

vi package/hotplug2/Makefile

PKG_SOURCE_URL:=http://svn.nomi.cz/svn/isteve/hotplug2 该域名不存在。搜索发现可通过googlecode下载hotplug2,地址:http://hotplug2.googlecode.com/svn/trunk。该地址被墙了,需FANQIANG下载到本地,搭建自己的SVN服务器。修改Makefile指向本机,修改PKG_VER=1即可。

生成的固件在 bin/ar71xx目录下,名称为:

ar71xx/openwrt-ar71xx-generic-tl-wr842n-v1-jffs2-factory.bin

ar71xx/openwrt-ar71xx-generic-tl-wr842n-v1-squashfs-factory.bin

jffs2适合断电的系统

squashfs把ROM压缩到一个文件进路由器,官方推荐squafs,因为这种格式就算配置乱了还可以恢复刷机后的出厂设置,二是压缩后节省空间。

手里的路由是原版固件需要刷OpenWrt需要选用XXX-factory.bin固件,如果路由已经刷了OpenWrt,选用升级固件XXXX-sysupgrade.bin,在升级界面升级即可。

6. 烧录固件

web管理界面上传固件,并更新。注:家用路由器大部分都不支持刷openwrt,因为flash等配置较低所致。笔者TP-LINK WR720N就成砖了。

首次安装OpenWrt后,需要设置密码才可以使用SSH登录,方法是使用telnet登录或者Web登录设置密码。

方法一:telnet

telnet 192.168.1.1   

passwd#设置root密码

方法二:管理界面,修改页面   

system->administration->SSH Access。开启SSH后,telnet默认关闭

终端登录:

ssh [email protected]

 

还能终端操作,简直就是个小电脑,兴奋的感觉有木有,拿来做傻瓜路由器大材小用了。

  

7. 安装程序

scp hello [email protected]:/root

8. 包管理器

opkg 是openWrt提供的软件包管理器。

opkg update | install | remove    #安装删除软件包

opkg install hello.ipk                   #处理.ipk后缀的软件包

9. 自定义管理页面

luCI 是路由器的web管理界面,如果对原生的页面不满意,可随意定制。管理页面是Lua语言编写的CGI服务。

 

主目录:/www

修改OpenWrt版本信息: 

/etc/openwrt_release/version.lua         

内容模板:

/view/themes/openwrtcn/header.htm     修改map

/view/themes/openwrtcn/footer.htm     修改footer

Logo:

/luci-static/openwrtcn/logo.jpg  Logo替换

 

下图是从某宝上淘的路由器

 

 

 

 

 

 

猜你喜欢

转载自tcspecial.iteye.com/blog/2280873