嵌入式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就更加高大上啦~~

相關文章
相關標籤/搜索