日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux 开发板4G转WiFi热点 手机连接热点上网(三 WiFi模块的移植及AP的建立)

發(fā)布時(shí)間:2024/9/5 linux 98 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux 开发板4G转WiFi热点 手机连接热点上网(三 WiFi模块的移植及AP的建立) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這里對(duì)WiFi模塊的驅(qū)動(dòng)就不做詳細(xì)介紹,本篇文章可能會(huì)涉及兩款WiFi模塊,一個(gè)是USB接口的WiFi模塊,一個(gè)是SDIO接口的wifi模塊,即AP6212,平臺(tái)可能涉及愛特梅爾和三星的4418兩個(gè)平臺(tái)。

本篇的記錄主要內(nèi)容是:建立WiFi模塊的AP熱點(diǎn),并且客戶端設(shè)備通過該熱點(diǎn),借助4G模塊的網(wǎng)絡(luò)連接外網(wǎng)。

建立WiFi的AP熱點(diǎn)涉及下面幾個(gè)軟件包或者軟件工具:

hostapd-0.8、hostapd-2.5、libnl-1.1.4、openssl-1.0.0

如果不了解libnl和openssl版本有什么不同,盡量不要使用高版本,很可能會(huì)出問題,使用上面的兩個(gè)版本就可以,這兩個(gè)依賴庫官網(wǎng)都可下載(自行百度下載地址)。上面的hostapd有兩個(gè)版本,原因是0.8版本是USB的wifi模塊源碼資料中打包提供的,官網(wǎng)沒找到該版本,看來是廠家對(duì)其做了修改,以適應(yīng)自己的USB WiFi模塊;2.5版本就是官網(wǎng)通用版本可以下載得到,沒什么特別需要注意的。為此WiFi模塊的工具以廠家提供的為準(zhǔn)最好,不會(huì)有兼容性問題。

對(duì)于這兩個(gè)WiFi模塊,他們執(zhí)行的不同就是hostapd工具的不同,其他都一樣,這里選擇AP6212做主要說明。hostapd工具為2.5的版本。

hostapd工具即為熱點(diǎn)的創(chuàng)建工具,libnl-1.1.4、openssl-1.0.0為其依賴庫,所以要先編譯libnl-1.1.4、openssl-1.0.0這兩個(gè)依賴庫。

注:編譯器自由指定,由需求決定。

openssl-1.0.0的編譯:

這個(gè)庫的編譯有點(diǎn)特殊,在配置之前先指定CC編譯器,即:CC=arm-linux-gnueabihf-gcc?

然后執(zhí)行:

./config no-asm shared --prefix=/xxxx/openssl-1.0.0/install 如果PC機(jī)沒有依賴庫問題就會(huì)自動(dòng)生成Makefile文件,一般不會(huì)有問題。生成Makefile后還需要修改它,修改的部分如下且修改為下面的情況即可:
CROSS_COMPILE=arm-linux-gnueabihf- CC= $(CROSS_COMPILE)gcc CFLAG= -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int #CFLAG=?-DOPENSSL_THREADS?-D_REENTRANT?-DDSO_DLFCN?-DHAVE_DLFCN_H?-DOPENSSL_NO_KRB5?-DL_ENDIAN?-DTERMIO?-O3?-fomit-frame-pointer?-Wall #CFLAG= -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DOPENSSL_NO_KRB5 -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall DEPFLAG= -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_STORE PEX_LIBS= EX_LIBS= -ldl EXE_EXT= ARFLAGS= AR=$(CROSS_COMPILE)ar $(ARFLAGS) r RANLIB= $(CROSS_COMPILE)ranlib NM= $(CROSS_COMPILE)nm PERL= /usr/bin/perl TAR= tar TARFLAGS= --no-recursion MAKEDEPPROG= gcc LIBDIR=lib之后直接make以及make install即可。
l ibnl-1.1.4的編譯:

這個(gè)庫的編譯沒什么復(fù)雜的,先執(zhí)行下面的配置命令:

./configure --prefix=/xxxx/libnl-1.1.4/install CC=arm-linux-gnueabihf-gcc LD=arm-linux-gnueabihf-ld --enable-shared --enable-static --host=arm-linux-gnueabihf之后直接make以及make install即可。
hostapd的編譯:

該工具的編譯不要configure的配置,直接使用hostapd目錄下的defconfig配置即可,即執(zhí)行命令:cp?defconfig .config

然后打開.config文件需要添加所依賴的庫路徑,如下所示:

CFLAGS += -I/xxxx/libnl-1.1.4/install/include LIBS += -L/xxxx/libnl-1.1.4/install/lib CFLAGS += -I/xxxx/openssl-1.0.0/install/include LIBS += -L/xxxx/openssl-1.0.0/install/lib另外解注釋下面兩個(gè)選項(xiàng):

CONFIG_DRIVER_NL80211=yCONFIG_TLS=openssl

執(zhí)行make即可生成hostapd可執(zhí)行工具。

到這里需要的必要工具就編譯完成了,剩下的就是把它們拷貝到開發(fā)板了。具體的位置個(gè)人需求。把依賴庫和可執(zhí)行文件路徑都添加到環(huán)境變量中即可使用了。

建立熱點(diǎn)的命令如下:

insmod /lib/modules/bcmdhd.ko "firmware_path=/etc/firmware/fw_bcmdhd_apsta.bin" "nvram_path=/etc/firmware/nvram_ap6212.txt"ifconfig wlan0 192.168.2.1 netmask 255.255.255.0 up udhcpd -fS /etc/udhcpd.conf& hostapd -B /etc/hostapd.conf這里給出udhcpd.conf和hostapd.conf兩個(gè)文件的配置:

udhcpd.conf配置:

start 192.168.2.2 end 192.168.2.100 interface wlan0 max_leases 20 remaining yes auto_time 7200 decline_time 3600 conflict_time 3600 offer_time 60 min_lease 60 lease_file /etc/udhcpd.leases opt dns 114.114.114.114 #192.168.1.2 192.168.1.10 option subnet 255.255.255.0 opt router 192.168.2.1 option domain local
hostapd.conf配置(開放式熱點(diǎn)):
interface=wlan0 driver=nl80211 ctrl_interface=/var/run/hostapd ssid=MyAP channel=3 ieee80211n=1 hw_mode=g ignore_broadcast_ssid=0

還要建立一個(gè)udhcpd.leases文件,路徑如前面udhcpd.conf配置文件所示:

touch/etc/udhcpd.leases

為了確保運(yùn)行的正確,請(qǐng)確保內(nèi)核中有如下配置:



這樣執(zhí)行運(yùn)行命令后應(yīng)該就可以搜索到名為MyAP的熱點(diǎn)了。

當(dāng)然了前面只是建立了AP熱點(diǎn),且可自動(dòng)分配IP地址,但是還無法上網(wǎng)。

為了使其能夠通過4G網(wǎng)絡(luò)連接互聯(lián)網(wǎng),那么我們需要iptables工具來實(shí)現(xiàn)nat轉(zhuǎn)接。需要移植iptables工具,我這里使用的版本是iptables-1.4.19。

配置的命令是:

./configure --prefix=/xxxx/iptables-1.4.19/install CC=arm-cortex_a9-linux-gnueabi-gcc LD=arm-cortex_a9-linux-gnueabi-ld --enable-shared --enable-static --host=arm-cortex_a9-linux-gnueabi --disable-ipv6 --disable-largefile執(zhí)行make和make install即可。

把編譯好的庫和可執(zhí)行文件拷貝到開發(fā),并指定環(huán)境變量,即可使用了。

為了保證iptables工具的正確執(zhí)行,那么請(qǐng)確保內(nèi)核開啟了下面的功能:


執(zhí)行不報(bào)錯(cuò)即可,執(zhí)行iptables -A FORWARD -s 192.168.2.0/24 -o ppp0 -j ACCEPT命令測試一下,然后執(zhí)行iptables -L看是否有規(guī)則,如果有那么就說明沒問題。

那么,WiFi模塊通過4G模塊上網(wǎng)的命令如下:

iptables -A FORWARD -s 192.168.2.0/24 -o ppp0 -j ACCEPT iptables -A FORWARD -d 192.168.4.0/24 -j ACCEPT iptables -t nat -A POSTROUTING -s 192.168.2.0/255.255.255.0 -o ppp0 -j MASQUERADE echo 1 >/proc/sys/net/ipv4/ip_forward #啟動(dòng)轉(zhuǎn)發(fā)
完整的命令如下:

ifconfig wlan0 192.168.2.1 netmask 255.255.255.0 up udhcpd -fS /etc/udhcpd.conf& iptables -A FORWARD -s 192.168.2.0/24 -o ppp0 -j ACCEPT iptables -A FORWARD -d 192.168.4.0/24 -j ACCEPT iptables -t nat -A POSTROUTING -s 192.168.2.0/255.255.255.0 -o ppp0 -j MASQUERADE echo 1 >/proc/sys/net/ipv4/ip_forward hostapd -B /etc/hostapd.conf為了方便,把上面的命令保存為ap.sh文件。


萬事具備了,下面給出WiFi熱點(diǎn)通過4G網(wǎng)卡上網(wǎng)的操作流程。

第一步:ppp.sh wcdma建立4G網(wǎng)絡(luò)

第二步:ap.sh(注意路徑問題)

之后搜索熱點(diǎn)連接,應(yīng)該可以上互聯(lián)網(wǎng)了。


總結(jié)

以上是生活随笔為你收集整理的Linux 开发板4G转WiFi热点 手机连接热点上网(三 WiFi模块的移植及AP的建立)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。