1.移植hostap:
- 交叉编译ssl,编译时保证已经安装了ssl和 libl
- 使用git clonegit://w1.fi/srv/git/hostap.git下载源码,不能从官网直接下载,官网源码不包括nl80211驱动驱动编译时会出错
- 修改配置文件
vi .config找到这一行:#CONFIG_DRIVER_NL80211=y,去掉注释,注释掉其他的CONFIG_DRIVER
4. 修改Makefile文件
CFLAGS+=-I/home/ubuntu/BMIHI3521A/driver/wifi/ssl/install/include/
CFLAGS+=-I/home/ubuntu/BMIHI3521A/driver/wifi/libnl/install/
include/libnl3/
CFLAGS+=-I/home/ubuntu/BMIHI3521A/driver/wifi/libnl/install/
include/
LIBS +=-L/home/ubuntu/BMI-HI3521A/driver/wifi/libnl/install/lib/
LIBS +=-L/home/ubuntu/BMI-HI3521A/driver/wifi/ssl/install/lib/
5. 编译
当编译过程出现找不到lnl时,在.config文件中添加CONFIG_LIBNL32=y
6. 拷贝
拷贝hostapd目录下的hostpad和hostapd_cli到开发板
2.移植udhcp:
下载udhcp源码,我使用的是udhcp-0.9.8.tar.gz,解压后修改下Makefile文件:
1.在19行添加CROSS_COMPILE=arm-linux-
2.注释12行的COMBINED_BINARY=1,否则不生成udhcpc命令。
3.编译,然后把udhcpc和udhcpd拷贝到开发板上
3.移植Iptables:
1.交叉编译libnfnetlink,将编译得到的libnfnetlink.so文件替换/usr/local/lib下相关库(可直接指定库寻找路径,但暂未找到如何修改)
编译方法与编译iptables类似
2. 交叉编译iptables
使用命令配置:
./configure --host=arm-hisiv400-linuxld-linux.so.3 libc.so.6 libm.so.6 CC=arm-hisiv400-linux-gcc--prefix=/home/ubuntu/BMI-HI3521A/driver/iptable/install --enable-static--disable-shared--with-ksource=/home/ubuntu/BMI-HI3521A/Hi3521A_SDK_V1.0.5.0/osdrv/opensource/kernel/linux-3.10.y
编译 make
安装 make install
3. 将编译得到的sbin目录的下的可执行文件拷贝到目标板/usr/sbin目录下,并将依赖库拷贝到目标板/lib目录下,库文件:ld-linux.so.3 libc.so.6 libm.so.6,
该编译模式是使用静态链接故不需要拷贝其他共享库,如果动态编译则需要拷贝相关共享库
4:配置内核:
按如下方式配置:
5.使用wifi:
1.insmod网卡驱动
2.打开网卡 ifconfig wlan0 up
3.开启hostapd,hostapd -B /etc/hostapd.conf,我的hostapd.conf如下:
interface=wlan0
#interface=wlan0
driver=nl80211
#driver=bmi123
ssid=YOUR_SSID 无线名称
channel=9
hw_mode=g
macaddr_acl=0
ignore_broadcast_ssid=0
auth_algs=1
wpa=3
wpa_passphrase=12345678 无线密码
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
4.开启udhchpd,其中udhcpd需要udhcpd.conf,我的udhcpd.conf如下:
start 192.168.0.20 #default: 192.168.0.20
end 192.168.0.254 #default: 192.168.0.25
interface wlan0 #default: eth0
opt dns 202.120.2.101
option subnet 255.255.255.0
opt router 192.168.0.1
option domain local
option lease 864000 # 10 days of seconds
可能会提示没有一个叫做udhcpd.release的租赁文件,这个只要在相应的文件夹下创建即可。执行下面两条命令:
#mkdir -p /var/lib/misc/
#touch /var/lib/misc/udhcpd.leases
5.设置iptables:
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
// 将局域网内地址通过eth0接口伪装后转发出去
# iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISH -j ACCEPT
//对于已经建立连接的包以及该连接相关的包都允许通过!
# iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
// 配置数据包转发时候的接口
echo "1" >/proc/sys/net/ipv4/ip_forward 打开系统数据转发
注意:连不上外网时也许是没有配置网关,使用如下命令配置网关:
route add default gw 192.168.0.1
参考链接: