Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2978262
  • 博文数量: 685
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 5303
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-19 14:17
个人简介

文章分类

全部博文(685)

文章存档

2015年(116)

2014年(569)

分类: 嵌入式

2014-09-18 16:18:18

原文地址:http://blog.csdn.net/hclydao/article/details/10896083

这里我们使用的是rtl8192cu模块

选中如下内核选项:
General setup --->
[*] Sysctl support (在ROMFS文件系统中/proc/sys/net/ipv4/出现ip_forward)
Networking options--->
[*] Network packet filtering (replaces ipchains)
IP: Netfilter Configuration --->(全部选择即可)

首先去Realtek下载驱动与工具包RTL8188C_8192C_USB_linux_v3.4.4_4749.20121105,也可以去这下载。

hostapd移植

解压后里面有一个driver文件夹,这里面是驱动,然后还有一个是wpa_supplicant_hostapd文件夹,这里面是wpa和hostapd工具,驱动的移植这里就不作说明了,网上有很多例子,在wpa_supplicant_hostapd文件夹里有这么一个文件wpa_supplicant_hostapd-0.8_rtw_20120803.zip,解压进入hostapd目录,修改makefile,在第一行加上CC=arm-linux-gcc然后编译,最后在当前文件夹下生成一个hostapd_cli和hostapd文件,先放着。

dhcp移植

下载dhcp工具包,链接解压,后执行./configure然后进入work.linux-2.2目录执行make "CC=arm-linux-gcc -static"最后会在server目录下生成dhcp文件

iptables移植

下载iptables工具,链接解压,首先在/usr目录下创建iptables目录,执行./configure --prefix=/usr/iptables --host=arm-linux 然后执行如下:

make KERNEL_DIR=/dao/newdisk/2416/kernel/linux3.1.0-icool2416-v1.0
make NO.SHARED_LIBS=1
make && make install

最后会安装到/usr/iptables目录下

工具安装

首先将/usr/iptables目录下的所以文件拷贝到开发板中,为了方便我们直接从SD卡往里面拷cp /sdcard/iptables/* /usr/ -rf

然后在/usr目录下创建iptables目录,mv /usr/libexec /usr/iptables/ 下

将前面编译好的hostapd dhcp拷贝到开发板上的/sbin目录下

配制文件编写

在/etc/目录下加入dhcp.conf文件,内容如下:


default-lease-time 259200;


max-lease-time 518400;


option domain-name-servers 192.168.1.1;


ddns-update-style ad-hoc;

subnet 192.168.0.0 netmask 255.255.255.0{


range 192.168.0.10 192.168.0.100;


option subnet-mask 255.255.255.0;


option broadcast-address 192.168.0.255;


option routers 192.168.0.1;


}

其中需要注意的是 option domain-name-servers 192.168.1.1;为你有线网络的网关,subnet 192.168.0.0 netmask 255.255.255.0这里是将wlan0的网段设置为0,同时subnet最后一定要是.0要不然dhcp会出错,range 192.168.0.10 192.168.0.100;你将分配的ip地址的范围。

在/etc/目录下加入hostapd.conf文件,内容如下:

interface=wlan0
ctrl_interface=/var/run/hostapd
ssid=test
channel=6
wpa=3
wpa_passphrase=12345678
eap_server=1
own_ip_addr=192.168.0.1
#wps_state=0
uuid=12345678-9abc-def0-1234-56789abcdef0
device_name=RTL8192CU
manufacturer=Realtek
model_name=RTW_SOFTAP
model_number=WLAN_CU
serial_number=12345
device_type=6-0050F204-1
os_version=01020300
config_methods=label display push_button keypad
driver=rtl871xdrv
beacon_int=100
hw_mode=g
ieee80211n=1
wme_enabled=1
ht_capab=[SHORT-GI-20][SHORT-GI-40][HT40+]
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
max_num_sta=8
wpa_group_rekey=86400

这里基本上不用怎么修改,其中test为你的ap,12345678为密码,这里使用的是wpa加密

修改/etc/init.d/rcS文件,加入如下内容:

mkdir -p /var/run/hostapd
mkdir -p /var/state/dhcp
touch /var/state/dhcp/dhcpd.leases
mv /dev/random /dev/random.org
ln -s /dev/urandom /dev/random

启动路由功能,在/sbin/加入iptables-eth0脚本,内容如下:

#!/bin/sh
ifconfig eth0 192.168.1.15 netmask 255.255.255.0 up
route add default gw 192.168.1.1
ifconfig wlan0 192.168.0.1 netmask 255.255.255.0 up

iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface wlan0 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
dhcpd wlan0
hostapd /etc/hostapd.conf -B

这里我使用的是静态ip, eth0也可以使用动态ip,注意把相应的网关修改即可,保存后chmod 777 /sbin/iptables然后重启,插入有线网络,然后执行iptables-eth0,这里你就可以通过手机连接这个ap了.



阅读(969) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~