记录惨烈的wifi热点移植过程,太痛苦了
嵌入式支持的wifi本来就很少,能够让wifi连接网络就可以了,但因为项目需要,没办法
首先要看下芯片是否支持ap就是热点模式,linux下查看 很简单 iw list 出现ap字就说明 支持 如果出现nl80211 not found.那就是不支持
我的芯片是rt8188 驱动已经移植好了 可以连接上路由并自动获取ip
先在电脑上试试,参考http://blog.csdn.net/cupidove/article/details/38845049
很容易就在电脑上建立的wifi热点
但是在开发板就就老是出现错误
各种错误
invalid/unknown driver 'nl80211'
中间还有很多错误 ,看来各种资料 ,首先编译了十几遍驱动,网上说什么驱动不支持 不行,http://www.cnblogs.com/heat-man/p/4657157.html
驱动能让连接路由,那肯定就没问题。
无意中发现 友善210的开发板能够连接wifi 并且创建热点,在友善210开发群里遇到了正在搞同样功能的人,发现smart210 内核里面已经配置好了驱动,只要
执行modprobe rtl8192cu 2>/dev/null就可以加载驱动,然后用udhcp分配ip即可使用
而我的板子 驱动没有 hostapd配置工具没有 iw网卡工具也没有 udhcpd工具更没有 没办法 只能自己一个个移植了
实现wifi热点错误
先前移植了hostap 0.7.3版本的 但是老是出错 卡了好几天 问了下 友善210群里的兄弟 发现他的版本是0.8.x
从hostapd官网下载了 移植好了 还是同样的错误
后来从其他地方下载了驱动 发现里面有工具 一看版本还是0.8.x的 便移植
发现可以用 配置文件 就在源码里面 要用2G的那个 记住 一定要是RTL8188c*****linux_v****这样源码包里面的hostapd才能配置rt8188cu热点
执行 ./hostapd -B rtl_hostapd_2G.conf
发现 错误 SIOCGIFADDR failed, is the interface up and configured?: Cannot assign reque
这是因为没有给wan0配置ip
配置wlan0 ip这个谁都会吧
但又出错了 issue_probersp, alloc mgnt frame fail
百度 google都没遇到过这种问题 艹 唯一的搜索到的就是源码里面有这个打印错误的信息
翻译了一下 说是分配架构失败
仔细思考了 一下 wifi要成为热点 就是服务器 路由服务器必须给 能连接上的设备分配Ip
问搞运维的 但一个都没回答我 那没办法了
发现 dhcp这个是分配ip的
网上都是dhcp客户端的移植 客户端是自动获取ip的 服务端 才是分配ip的
板子上就没有这个工具 又只能自己移植了
根据自己的经验 高版本的一般移植了都不能用 只能下载低版本的移植了
下载了个 udhcp0.9.8移植成了 移植步骤自己网上搜索一下 或者看它自己的文档
执行 ./udhcpd /etc/udhcpd.conf
又出错了 再跑群里问问 都没回答 自己搞
向别人要了个udhcp.con
配置如下
# udhcpd configuration file (/etc/udhcpd.conf)
# Values shown are defaults
# The start and end of the IP lease block
start 192.168.3.30
end 192.168.3.100
# The interface that udhcpd will use
interface wlan0
# The maximum number of leases (includes addresses reserved
# by OFFER's, DECLINE's, and ARP conflicts). Will be corrected
# if it's bigger than IP lease block, but it ok to make it
# smaller than lease block.
max_leases 68
# The time period at which udhcpd will write out a dhcpd.leases
# file. If this is 0, udhcpd will never automatically write a
# lease file. Specified in seconds.
#auto_time 7200
# The amount of time that an IP will be reserved (leased to nobody)
# if a DHCP decline message is received (seconds)
#decline_time 3600
# The amount of time that an IP will be reserved
# if an ARP conflict occurs (seconds)
#conflict_time 3600
# How long an offered address is reserved (seconds)
#offer_time 60
# If client asks for lease below this value, it will be rounded up
# to this value (seconds)
#min_lease 60
# The location of the leases file
#lease_file /var/lib/misc/udhcpd.leases
# The location of the pid file
#pidfile /var/run/udhcpd.pid
# Every time udhcpd writes a leases file, the below script will be called
#notify_file # default: no script
#notify_file dumpleases # useful for debugging
# The following are bootp specific options
# next server to use in bootstrap
#siaddr 192.168.0.22 # default: 0.0.0.0 (none)
# tftp server name
#sname zorak # default: none
# tftp file to download (e.g. kernel image)
#boot_file /var/nfs_root # default: none
# Static leases map
#static_lease 00:60:08:11:CE:4E 192.168.0.54
#static_lease 00:60:08:11:CE:3E 192.168.0.44
# The remainder of options are DHCP options and can be specified with the
# keyword 'opt' or 'option'. If an option can take multiple items, such
# as the dns option, they can be listed on the same line, or multiple
# lines.
opt dns 192.168.3.1 8.8.8.8
option subnet 255.255.255.0
opt router 192.168.3.1
opt wins 192.168.3.1
option dns 129.219.13.81 # appended to above DNS servers for a total of 3
option domain 210.FriendlyARM.com
option lease 86400 # default: 10 days
# Arbitrary option in hex form:
option 0x08 01020304 # option 8: "cookie server IP addr: 1.2.3.4"
# Currently supported options (for more info, see options.c):
#opt lease NUM
#opt subnet IP
#opt broadcast IP
#opt router IP_LIST
#opt ipttl NUM
#opt mtu NUM
#opt hostname STRING # client's hostname
#opt domain STRING # client's domain suffix
#opt search STRING_LIST # search domains
#opt nisdomain STRING
#opt timezone NUM # (localtime - UTC_time) in seconds. signed
#opt tftp STRING # tftp server name
#opt bootfile STRING # tftp file to download (e.g. kernel image)
#opt bootsize NUM # size of that file
#opt rootpath STRING # (NFS) path to mount as root fs
#opt wpad STRING
#opt serverid IP # default: server's IP
#opt message STRING # error message (udhcpd sends it on success too)
# Options specifying server(s)
#opt dns IP_LIST
#opt wins IP_LIST
#opt nissrv IP_LIST
#opt ntpsrv IP_LIST
#opt lprsrv IP_LIST
#opt swapsrv IP
# Obsolete options, no longer supported
#opt logsrv IP_LIST # 704/UDP log server (not syslog!)
#opt namesrv IP_LIST # IEN 116 name server, obsolete (August 1979!!!)
#opt cookiesrv IP_LIST # RFC 865 "quote of the day" server, rarely (never?) used
#opt timesrv IP_LIST # RFC 868 time server, rarely (never?) used
试了试 什么unable
option 0x08 01020304 # option 8: "cookie server IP addr: 1.2.3.4"
把这行去掉
试试 可以了 艹 真TM的 搞了 一个多星期 移植了五六十变 hostapd工具 rt8188驱动 搞死人 记录下