嵌入式Linux利用Wifi搭建无线服务器(物联网实践之无线网关)

http://www.cnblogs.com/heat-man/p/4564539.html中,在嵌入式Linux开发板上咱们从最底层实现了一个智能家居的远程控制系统,然而采起的是用网线链接到交换机上的,感受老土。巧的是,来北京找工做,找到一家作Wifi模组的公司,这几天老大给个人任务是在min210上开发板上跑咱们的Wifi模块,以便熟悉环境,好不容易昨天刚搞好,就把本身写的服务器架上试了试,md,无线的感受就是不同呀!html

下面整理一下思路:linux

首先你须要一些硬件设施: ARM开发板,计算机(Ubuntu系统,虚拟机也可),wifi模块(固然,任何家公司的均可以,固然是带驱动的以及一些添加了对该模块支持的一些开源软件)。服务器

嵌入式环境搭建:首先要将arm开发板烧录Linux系统。网络

有了上面的准备就能够进入实质性的准备了,下面分步骤总结:app

1 要想本身的嵌入式系统支持wifi功能,咱们有了wifi模块,还须要对应的驱动,第一步须要先编译出模块对应的驱动。(通常模块供应商会提供对应的驱动程序包,按照说明编译即)测试

2 加载驱动。  (至此,咱们的嵌入式Linux系统即可以进行一些无线操做了,然而咱们什么也没有作,至关于买了个wifi模块按照说明书,加载上了驱动)加密

3 用hostapd开源软件将咱们的wifi打形成为一个热点。   (这样,联网终端就能够扫描到咱们的嵌入式Linux系统,从而访问咱们的智能家居控制系统)spa

4 开启dhcp服务,实现动自动分配IP。      (原谅我,我是第一次据说这个玩意,可是用一次就爱上了,不再用手动设定IP啦!)翻译

5 开启智能家居服务系统,其余联网终端经过Wifi访问智能家居服务系统。   (测试一下下)htm

 

上面五个步骤中,第一个步和wifi供应商联系密切,操做按照说明通常没什么大问题,这里不作说明,这里主要记录hostapd和dhcp两大开源软件的配置和使用。

所以,咱们直接就到了第三步,此时你的嵌入式系统已经具有wifi功能,咱们要用hostapd将它打形成为一个master。(wifi热点)

hostapd--制造无线路由器

关于hostapd,官网优雅而简洁的说这是一款用于接入点控制和认证服务的用户空间守护进程。翻译一下就是,这是一款关于接入点控制和认证服务的服务,那么管理接入点和认证服务尼玛这听起来不就是路由器的功能吗?原谅个人无知吧!我就认为这个hostapd就是造一个路由器吧!(专业语言应该这样说:“hostapd可以将wifi切换为master模式,可以模仿路由器的功能,打造一个软ap”)。

hostapd是一款开源软件,你在使用它的时候务必要查询它是否支持你机器上的无线网卡,公司用的hostapd是添加了对公司模块的支持的,因此从晚上下载的hostapd并无卵用,不事后面的配置仍是差很少的,只是wifi模块供应商提供的hostapd内添加了对本身模块的支持。

总之,不管是从模块供应商或者是网上得到的hostapd,务必确认支持你的无线网卡。

得到源码后,交叉编译获得hostapd、hostapd_cli两个命令,把这俩个命令拷贝到目标板的/bin下。这样咱们就得到了开启hostapd的命令。

开启hostapd服务,咱们还须要一个参数,由于你打造一个路由器,须要名字,须要密码,须要加密方式。。。。,这些参数被集中到一个配置文件中,固然了文件的名字你能够随便命名,后缀最好是.conf。我擦,说的这么easy,配置文件无从下手呀!有没有一个demo呢?答案是确定的,看来linux下的开源也是服务很周到的。这个文件就是存在于hostapd源文件目录下的hostapd.conf。咱们要打造一个什么样的路由器,就要看里面的各个参数了。

里面关于每一项的配置项都是有说明的,固然都是鸟语啦!之后足够牛逼啦,就能够添加本身的鸟语在里面啦。

诸如 ssid:设定你热点的名称  interface:网卡接口  wpa 设置你认证相关的,根据你的须要设置里面的参数,你就拟出了一份路由器设置方案。

将你的路由器设置方案,也即hostapd.conf拷贝到目标板的/etc下,而后就能够开启服务了:

./hostapd /etc/hostapd.conf -B

以上命令执行,就按照你设置的信息建立了一个wifi热点,-B表明后台运行。(假定你建立了一个名称为heat的热点,名称,这样你掏出手机后者打开电脑的网路无线列表就会发现heat赫然在目,然而你链接呀连接,总tm的超时,why?)

原来这是,ip不在一个网段在做怪,即你建立wifi的主机的ip和你的手机和电脑并不在一个局域网,so,接下来手动设置电脑和wifi热点所在主机的ip为同一个网段,果真通了,然而你要每个连你wifi的人都要手动设置ip吗?关键是你要知道不是每一个人都能熟练设置ip的,并且客户是上帝,一次必须能让客户的联网终端自动分配ip。

dhcp--动态分配ip给接入点

怎么样才能作到呢?答案就是在咱们的嵌入式Linux系统上开启dhcp服务,关于dhcp服务你们能够看看鸟哥的书,讲得都比较清楚,这个服务主要目的是,能让链接你网络的终端自动分配出和你可以联通的ip。这个命令在sbin/的目录下,名字叫作udhcp,你能够经过配置busybox获得相关的命令,同时在内核的配置中也要选中支持该功能。

那么,ip自动分配,它的范围是多少,最大链接时长是多少,这些东西在哪设置呢?答案依然是配置文件,道理和hostapd.conf很类似,就很少说了,至于如何配置网上不少教程。

接下来就能够启动dhcp服务了,在启动过程当中,请务必执行ifconfig wlan0 up命令,同时还要为wlan0分配ip。

接下来执行:

udhcpd -fS /etc/udhcpd.conf 

而后会报错说在某某目录下缺乏某文件,直接用touch命名建立继续执行上面命令便可!

接下来:终端会打印出udhcpd 服务已经启动:而后就看起来没有反应的样子。。。

其实,你已经成功啦~  用手机或者电脑链接你的wifi热点,才会打印分配ip的信息。

 

 

最后,开启个人智能家居控制系统,经过手机和电脑链接上wifi热点,成功的能够看到系统的首页,欧耶!无线服务器就这么在嵌入式linux系统下跑起来了。

这样,就能够用手机控制家中用电器的开关啦!若是能作个app就更加高大上啦~~

相关文章
相关标签/搜索