二、工具
之前驱动已经好了,下面就得利用工具,工具编译之前也得像驱动一样修改部分变量。
(1)利用wpa_supplicant让无线网卡接入附近热点。
修改Makefile,如下:
改为CC=arm-linux-gcc,或者编译时输入make CC=arm-linux-gcc,编译后生成wpa_supplicant,输入arm-linux-strip wpa_supplicant去除符号表,减小空间。然后将wpa_supplicant放到开发板/bin目录下,在/etc目录下创建wpa_supplicant.conf配置文件,具体配置文件内容可以参考工具目录下的wpa_supplicant.conf。如参考别人的:
配置完成后,执行wpa_supplicant -Dwext -iwlan0 -c /etc/wpa_supplicant.conf -dd & ,会出现一大堆东西,其中包括接入热点是否成功。
如果接入的网关是192.168.1.1,则需要执行route add default gw 192.168.1.1 ,然后ping 192.168.1.1,成功则说明接入成功。如果接了外网,可以ping www.baidu.com试试。
(2)利用hostapd创建无线热点。
这种创建无线热点,让客户接入的实现在物联网上已经得到广泛应用,例如可以通过手机连接开发板来控制家电等等。不过不一定只有hostapd能创建热点。
修改Makefile,与wpa_supplicant一样。编译生成hostapd,执行arm-linux-strip hostapd去除符号表,减小空间。然后将hostapd移到开发板/bin目录下,将hostapd.conf文件移到开发板/etc目录下。然后根据情况修改一下hostapd.conf配置文件。
最后执行hostapd /etc/hostapd.conf -B 创建热点,这时手机会搜到热点,但是连进去时无法获取IP,这时需要udhcpd来动态分配IP了。
udhcpd程序也是需要配置文件的,我的开发板上没有,所有从busybox上拷贝了个udhcpd.conf配置文件到开发板/etc上,然后修改配置文件,主要修改分配IP地址范围,网关等。
然后执行udhcpd -S /etc/udhcpd.conf启动dhcp,这时手机重新接入热点,接入成功。开发板也会显示手机的mac地址、ip地址等,然后试下ping手机的ip地址,能ping通的话基本搞定了。