新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于ARM的Ad Hoc網絡平臺的實現

        基于ARM的Ad Hoc網絡平臺的實現

        作者: 時間:2011-08-29 來源:網絡 收藏
        無線網卡驅動的移植

        本文引用地址:http://www.104case.com/article/155828.htm

          本文使用華碩USB無線網卡WL-167g,其網卡驅動是rt73。

          移植步驟如下:

          a、下載RT73_Linux_STA_Drv1.0.4.0.tar.gz,解壓后生成Module和WPA_Supplicant兩個目錄,將目錄Module中的所有文件都拷貝到內核源碼包drivers/usb/net/rt73下,修改Makefile如下編譯選項:

          KDIR := path/linux-2.6.18

          path為內核源碼包所在路徑。

          b、由于要在內核源碼包里進行交叉編譯,所以修改linux-2.6.18 /drivers/usb/net/Kconfig,加入以下內容:

          config RT73

          tristate“support for rt73 wireless usb device”

          depends on USB NET USB_USBNET

          c、修改drivers/usb/net/Makefile,加入rt73的編譯項:

          obj-$(CONFIG_RT73)+= rt73

          d、對內核重新進行配置,

          將配置界面中新增的“support for rt73 wireless usb device”選為模塊。

          e、make modules

          在drivers/usb/net/rt73目錄下生成rt73.ko驅動文件,將rt73.ko放到根文件系統中,再燒寫到板上無線網卡即可正常工作。

          f、無線網卡的配置

          無線網卡有managed、-hoc兩種模式。managed模式稱為基礎設施模式,又稱接入點模式;-hoc模式稱為點對點模式或無中心模式,用來在無線網卡之間進行一跳通信。 網絡就是在Ad-hoc模式基礎上通過網絡協議使得該網絡支持多跳通信,因此該模式的使用和性能對Ad 網絡的影響至關重要,以下是Ad-hoc模式配置方法,rausb0表示無線網卡:

          1)、ifconfig rausb0 10.0.1.1 up

          設置節點IP為10.0.1.1。

          2)、iwpriv rausb0 set AdhocOfdm=2

          設置rausb0為11g only模式,即54M速率模式,這是802.11g所能支持的最高速率。

          3)、iwconfig rausb0 channel 3

          設置信道為3。

          4)、iwconfig rausb0 mode ad-hoc essid bcnl

          設置網卡模式為ad-hoc,essid為“bcnl”。

          上述配置過程中使用的“iw”開頭的命令都是無線工具集中的命令,其源碼包是wireless_tools.29.tar.gz,經過交叉編譯后即可使用。

          AODV路由協議的移植

          本文使用的代碼是aodv-uu-0.9.5.tar.gz。AODV分為兩個部分,一個是內核態模塊kaodv.ko,一個是用戶態模塊aodvd。AODV主要部分工作在用戶態,用于維護內核路由表。

          AODV需要內核支持,在內核配置時要選上netfilter選項。先編譯內核態模塊kaodv.ko,步驟如下:

          a、將aodv-uu-0.9.5/lnx目錄的內容拷到內核源碼包linux-2.6.18/net/ipv4/kaodv目錄下,修改linux-2.6.18/net/ipv4/Kconfig,添加如下內容:

          config KAODV_UU

          tristate support for aodv-uu adhoc routing protocol

          b、在linux-2.6.18/net/ipv4/Makefile末尾添加如下的編譯選項:

          obj-$(CONFIG_KAODV_UU) += kaodv/

          c、make menuconfig,找到如下的目錄項:

          Networking --->

          [*] Networking support Networking options --->

          support for aodv-uu adhoc routing protocol選為模塊編譯。

          d、make modules將生成kaodv.ko。以下介紹用戶態aodvd編譯:

          將aodv-uu-0.9.5/Makefile做適當修改,使其在交叉編譯的環境下只編譯用戶態部分。

          將得到的kaodv.ko和aodvd拷貝到根文件系統中,再燒寫到板上。

          insmod kaodv.ko

          ./ aodvd

          這樣aodv協議就運行起來了。在協議移植中有兩點需要注意:一是Makefile中_CCFLAGS=-mbig-endian應該注釋掉,否則運行時會產生大小端混亂的問題;二是將kaodv.ko和aodvd分開編譯,因為同時編譯時總是提示編譯器缺少文件,甚至用其他交叉編譯器依然不能解決問題,而這些錯誤大多是編譯內核模塊產生的。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 洛阳市| 巨野县| 荃湾区| 密云县| 徐州市| 乌拉特中旗| 张掖市| 济宁市| 望江县| 富源县| 棋牌| 方城县| 怀集县| 富宁县| 吴堡县| 亚东县| 石阡县| 揭阳市| 万载县| 通山县| 自治县| 江西省| 宝清县| 镇赉县| 巴里| 封开县| 密山市| 凤冈县| 天门市| 镇巴县| 武陟县| 嘉义市| 许昌市| 大姚县| 平谷区| 玉环县| 雅江县| 平乡县| 二连浩特市| 南木林县| 太保市|