wifi认证系统之Openwrt编译

1、linux登陆用户non-root(www用户登陆) 在 ubuntu系统下,建立一个非root的用户,因为root用户不允许用于编译 openWrt

2、下载最新Openwrt

svn co  svn://svn.openwrt.org/openwrt/branches/barrier_breaker
svn co  svn://svn.openwrt.org/openwrt/tags/backfire_10.03
svn up

选择你想要的版本就行了。然后又是等待下

git模式

# git clone git://git.openwrt.org/openwrt.git
# cd openwrt

3.更新并安装固件包

./scripts/feeds update -a 
./scripts/feeds install -a 
svn up 

4.更改原有packages

第一步:wifidog更改详细见 wifidog-appwifi集成文档.doc,一般就改那个服务端域名就行了。

第二步:修改packages的Makefile文件 也有可能在oldpackages里面

/OpenWrt/barrier_breaker/package/feeds/oldpackages/wifidog$  Makefile  
修改
#PKG_VERSION:=20110517
PKG_VERSION:=appwifi

#PKG_SOURCE_VERSION:=440442db60b0c3a11528ea703a128b0567293387
PKG_SOURCE_VERSION:=1

第三步:把修改好的wifidog打包成wifidog-appwifi-1.tar.gz放到dl目录下 打包之前可以先格式化下文件,文件可能是在windows上修改,编译的时候需要把文件格式化unix/linux,dos2unix命令需要安装

/home/OpenWrt/wifidog/wifidog-appwifi# dos2unix *.*
/home/OpenWrt/wifidog#tar -zcvf wifidog-appwifi-1.tar.gz  wifidog-appwifi
/OpenWrt/barrier_breaker/dl$ wifidog-appwifi-1.tar.gz

5.检查编译需要的包的完整性 下一步是检查编译环境,若可进行编译则生成默认配置: 若defconfig回显提示缺少软件包或编译库等依赖,则按提示安装所缺软件包或库等即可,不难的,细心点就menuconfig是一个基于文本的工具,它处理选择的目标(需要还是不需要)、编译生成软件包(openwrt下是IPKG格式)以及内核选项(编译成模块还是内核)等等

 make defconfig 

6.运行固件配置器配置固件(详细见【编译选项说明.txt】)

make menuconfig 

在配置菜单中根据自己的需求定制固件,比如:

Target System: Atheros AR71xx/AR7240/AR913x
Target Profile: TP-LINK TL-WR1043ND v1
LuCI / Collections / luci: y
Kernel modules / USB Support / kmod-usb-kore: y
Kernel modules / USB Support / kmod-usb-ohci: y
Kernel modules / USB Support / kmod-usb-storage: y
Kernel modules / USB Support / kmod-usb-uhci: y  

7.编译固件

make package/symlinks
make V=99 

如果运行有错,用make V=s来查看详细错误

8.清理临时文件

make distclean
make clean

9.恢复编译环境

make defconfig 

10.bin文件路径

xxx@ubuntu1204-virtual:~/OpenWrt/barrier_breaker/bin/ar71xx$ ls -lat
drwxr-xr-x 4 www www     4096 Nov  8 09:52 .
-rw-r--r-- 1 www www     1851 Nov  8 09:51 md5sums
-rw-r--r-- 1 www www  3473412 Nov  8 09:51 openwrt-ar71xx-generic-mw4530r-v1-squashfs-sysupgrade.bin
-rw-r--r-- 1 www www  8126464 Nov  8 09:51 openwrt-ar71xx-generic-mw4530r-v1-squashfs-factory.bin
-rw-r--r-- 1 www www  3473412 Nov  8 09:51 openwrt-ar71xx-generic-tl-wdr4310-v1-squashfs-sysupgrade.bin
-rw-r--r-- 1 www www  8126464 Nov  8 09:51 openwrt-ar71xx-generic-tl-wdr4310-v1-squashfs-factory.bin
./scripts/feeds update luci packages
./scripts/feeds install luci packages 

openwrt源码结构很模块化,所以不用每次修改之后都 make clean然后再make 太耗时,

假如你只修改了target文件夹里的内容,只需要make target/linux/clean,然后再make 就可以生效;

如果修改了tools的源码只需要 make tools/clean;

如果修改了某个package,执行 make package/<包名>/clean


标签:wifidog feeds Openwrt