—————————————————
主机操作系统:Centos 6.5
交叉编译器环境:arm-linux-gcc-4.5.4
开发板平台: FL2440
Linux内核版本: linux-3.0
开发模块:无线网卡 RT3070.
作者:hulu<1334528355@qq.com>
—————————————————
笔者友情提醒:本文章是在fl2440开发板已经成功移植linux-3.0内核,和可读写的文件系统之上开发的,本次开发使用的是ubifs文件系统格式,且fl2440的DM9000网卡驱动和usb驱动已经成功移植,若还没成功移植DM9000网卡驱动和usb驱动的朋友请参考本人博客驱动开发部分。
此篇文章介绍如何使rt3070工作在AP无线路由器模式,并能连接外网
一、配置内核支持无线网卡softAP模式
在--Networking support
<*>RF switch subystem support ----> //这个一定要选上不然会出错
如果没有build in RF选项,在使用hostapd命令时会出错
~>:hostapd hostapd.conf
Configuration file:hostapd.conf
rfkill:Cannot open RFKILL control device
二、配置无线无线路由器的软件移植
2.1.移植Openssl-0.9.8e
==================================================================================================================================================
Hostapd依赖于openssl与libnl这两个库。所以首先要移植openssl与libnl,openssl我们已经移植过了,但我担心版本兼容性的问题,本着学习的心态便又移植了网上普遍使用的openssl-0.9.8e
==================================================================================================================================================
2.1.1下载Openssl-0.9.8e
Openssl-0.9.8e
http://download.csdn.net/detail/u010944778/8940135
2.1.2解压之后直接修改Makefile
[hulu@centos6 openssl-0.9.8e]$ mkdir install
[hulu@centos6 openssl-0.9.8e]$ sudo make && make install
2.2移植 libnl-1.1.4
下载地址http://www.infradead.org/~tgr/libnl/
解压开始安装
[hulu@centos6 libnl-1.1.4]$ mkdir install
./configure–prefix=/home/hulu/fl2440/wifi/AP/libnl-1.1.4/install(指定安装路径) –host=arm-linux
[hulu@centos6 libnl-1.1.4]$make CC=/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc
[hulu@centos6 libnl-1.1.4]$sudo make install
在你的安装目录里边找到libnl.so.1下载到你的开发板上
2.3移植Hostapd-1.0.tar.gz
下载地址http://download.chinaunix.net/download.php?id=40061&ResourceID=4450
解压修改Makefile 和.config
[hulu@centos6 hostapd-1.0]$ cp defconfig .config
[hulu@centos6 hostapd-1.0]$ vi .config
23:CONFIG_DRICER-NL80211=Y[hulu@centos6 hostapd-1.0]$ vi Makefile
12 CFLAGS +=-I/home/hulu/fl2440/wifi/AP/libnl-1.1.4/install/include/
13 CFLAGS +=-I/home/hulu/fl2440/wifi/AP/openssl-0.9.8e/install/include/
14 LIBS +=-L/home/hulu/fl2440/wifi/AP/libnl-1.1.4/install/lib/
15 LDFLAGS +=-L/home/hulu/fl2440/wifi/AP/libnl-1.1.4/install/lib/
16 LIBS +=-L/home/hulu/fl2440/wifi/AP/openssl-0.9.8e/install/lib/
17 LDFLAGS +=-L/home/hulu/fl2440/wifi/AP/openssl-0.9.8e/install/lib/
[hulu@centos6 hostapd-1.0]$ make CC=/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc
[hulu@centos6 hostapd-1.0]$sudo make install
在编译过程中出现了如下错误:
从出现的错误中可知是缺少openssl这个库,也就是我之前编译的openssl-0.9.8e有问题,我又从新编译了一下openssl-0.9.8e,成功解决此问题
将生成可执行命令hostapd和配置文件hostapd.conf
hostapd主要就在于配置文件,以下是我的基本配置:
nterface=wlan0 //网络接口设备名称
driver=nl80211 //默认使用nl80211无线驱动
ssid=My_wifi //热点名称
channel=3 //设定无线频道
hw_mode=g //使用80211g协议标准
ignore_broadcast_ssid=0