8188EU 在AM335X MC183上以AP+STA工作
【目的】
8188EU 在AM335X MC183上以AP+STA工作。
【环境】
1、 Ubuntu 16.04发行版
2、 linux-3.2.0-psp04.06.00.11
3、 MC183平台
4、 交叉编译器arm-linux-gnueabihf-gcc-4.7.3
【实验步骤】
1、 配置内核
Device Drivers ---> 开启WIRELESS LAN
Network device supports --->
[*] Wireless LAN --->
<*> IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)
[*] Support downloading firmware images with Host AP driver
[*] Support for non-volatile firmware download
[*] USB support --->
<*> USB Wireless Device Management support
2、 重新编译内核
$ ./build.sh
3、 8188eu 驱动生成
1.1解压RTL8188EUS_RTL8189ES_linux_v4.1.8_9499.20131104-am335.tar.gz
1.2进入RTL8188EUS_RTL8189ES_linux_v4.1.8_9499.20131104/driver/rtl8188EUS_rtl8189ES_linux_v4.1.8_9499.20131104 目录
1.3 移植
修该顶层的Makefile,如下红色部分为应该注意的地放,主要是编译器,内核版本,及内核源码所在的位置。
466 ifeq ($(CONFIG_PLATFORM_ARM_S3C2K4), y)
467 EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
468 ARCH := arm
469 CROSS_COMPILE := arm-linux-gnueabihf-
470 KVER := 3.2.0
471 #chy panzidong
472 #KSRC := /root/board/am335/project/xlsw/linux-3.2.0-psp04.06.00.11
473 KSRC := /home/vmuser/sdc/remote_svn/anosi-hardware/iotx-am335x/MC-183/trunk/kernel/linux-3.2.0-psp04.06.00.11
=====开启CONCURRENT_MODE模式,用于支持STA+AP MODE===
vim include/autoconf.h +114
vim autoconf_rtl8188e_usb_linux.h +114
114 // change by panzidong
115 #define CONFIG_CONCURRENT_MODE
116 #ifdef CONFIG_CONCURRENT_MODE
117 //#define CONFIG_HWPORT_SWAP //Port0->Sec , Port1 -> Pri
118 //#define CONFIG_STA_MODE_SCAN_UNDER_AP_MODE
119 #define CONFIG_TSF_RESET_OFFLOAD // For 2 PORT TSF SYNC.
120 #endif
编译驱动:
make
Building modules, stage 2.
MODPOST 1 modules
CC /home/vmuser/sdc/remote_svn/anosi-hardware/iotx-am335x/MC-183/package/source/RTL8188EUS_RTL8189ES_linux_v4.1.8_9499.20131104/driver/rtl8188EUS_rtl8189ES_linux_v4.1.8_9499.20131104/8188eu.mod.o
LD [M] /home/vmuser/sdc/remote_svn/anosi-hardware/iotx-am335x/MC-183/package/source/RTL8188EUS_RTL8189ES_linux_v4.1.8_9499.20131104/driver/rtl8188EUS_rtl8189ES_linux_v4.1.8_9499.20131104/8188eu.ko
在当前目录下面会生成8188eu.ko.
4、 交叉编译hostapd
交叉编译hostapd
cd RTL8188EUS_RTL8189ES_linux_v4.1.8_9499.20131104/wpa_supplicant_hostapd/wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/hostapd
修该顶层的Makefile
1 CC=arm-linux-gnueabihf-gcc
2
3 ifndef CFLAGS
4 CFLAGS = -MMD -O2 -Wall -g
5 endif
编译:
Make
LD hostapd
CC hostapd_cli.c
CC ../src/common/wpa_ctrl.c
LD hostapd_cli
最终会在当前的目录下面生在hostapd hostapd_cli两个命令。其中hostapd为我们所需要的工具。
5、 交叉编译wpa相关的工具
交叉编译wpa_supplicant
cd RTL8188EUS_RTL8189ES_linux_v4.1.8_9499.20131104/wpa_supplicant_hostapd/wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/wpa_supplicant
修该顶层的Makefile
1 CC=arm-linux-gnueabihf-gcc
2
3 ifndef CFLAGS
4 CFLAGS = -MMD -O2 -Wall -g
5 endif
编译:
Make
LD wpa_supplicant
CC wpa_passphrase.c
LD wpa_passphrase
CC wpa_cli.c
CC ../src/common/wpa_ctrl.c
CC ../src/utils/edit_simple.c
LD wpa_cli
最终会在当前的目录下面生在wpa_supplicant wpa_passphrase wpa_cli
三个命令。三者皆为我们所需要的工具
6、 交叉编译dnsmasq-2.73
Dnsmasq是个轻量级的DHCP服务,配合hostapd使有,提供本地DHCP功能。
通过如下命令解压 dnsmasq-2.73.tar.xz
dnsmasq-2.73.tar.xz
xz –d dnsmasq-2.73.tar.xz
tar vxf dnsmasq-2.73.tar
cd dnsmasq-2.7
修该Makefile
make
dnsmasq在当前的src目录下生成
7、 测试
1.1 AP测试
# mkdir /lib/modules/3.2.0/kernel/drivers/wifi
mkdir -p /lib/modules/3.2.0/kernel/drivers/wifi
# download 8188eu.ko
wget http://192.168.3.88/8188eu/8188eu.ko -O /lib/modules/3.2.0/kernel/drivers/wifi/8188eu.ko && chmod +x /lib/modules/3.2.0/kernel/drivers/wifi/8188eu.ko
# download hostapd
wget http://192.168.3.88/8188eu/hostapd -O /bin/hostapd && chmod +x /bin/hostapd
# download rtl_hostapd_2G.conf
wget http://192.168.3.88/8188eu/rtl_hostapd_2G.conf -O /etc/rtl_hostapd_2G.conf && chmod 0666 /etc/rtl_hostapd_2G.conf\
# download dnsmasq
wget http://192.168.3.88/8188eu/dnsmasq -O /sbin/dnsmasq && chmod +x /sbin/dnsmasq
# download dnsmasq.conf
wget http://192.168.3.88/8188eu/dnsmasq.conf -O /etc/dnsmasq.conf && chmod 0666 /etc/dnsmasq.conf
# mkdir /var/lib/misc ,如不创建的话,dnsmasq无法正常运行。
mkdir -p /var/lib/misc
sleep 2
# insmod 8818eu.ko
insmod /lib/modules/3.2.0/kernel/drivers/wifi/8188eu.ko
sleep 5
# 开启wlan0
ifconfig wlan0 up
# start hostapd
hostapd /etc/rtl_hostapd_2G.conf -B &
sleep 6
# set wlan0 static ip
ifconfig wlan0 192.168.188.1
# start dnsmasq
dnsmasq -C /etc/dnsmasq.conf
à 此时可联接到热点名称为rtwap的热点,密码为87654321。
其中rtl_hostapd_2G.conf内容如下所示
interface=wlan0
ctrl_interface=/var/run/hostapd
ssid=rtwap
channel=6
wpa=2
wpa_passphrase=87654321
eap_server=1
wps_state=2
uuid=12345678-9abc-def0-1234-56789abcdef0
device_name=RTL8192CU
manufacturer=Realtek
model_name=RTW_SOFTAP
model_number=WLAN_CU
serial_number=12345
device_type=6-0050F204-1
os_version=01020300
config_methods=label display push_button keypad
driver=rtl871xdrv
beacon_int=100
hw_mode=g
ieee80211n=1
wme_enabled=1
ht_capab=[SHORT-GI-20][SHORT-GI-40][HT40+]
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
max_num_sta=8
wpa_group_rekey=86400
其中dnsmasq.conf,内容如下所示
interface=wlan0
listen-address=192.168.188.1,127.0.0.1
domain=iotx.thekelleys.org.uk
dhcp-range=192.168.188.100,192.168.188.200,12h
1.2 STA测试:
连接点为BX240721的热点:
将热点名称和密码写入配置文件当中:
wpa_passphrase "TEST AP SSID" "TEST AP PASSWORD" > /etc/wpa_supplicant.conf
开启wpa_supplicant服务用来连接特定的热点:
wpa_supplicant –iwlan1 -c /etc/wpa_supplicant.conf –B
获取wlan1的IP地址:
udhcpc -i wlan1
如果正常的话,会发现wlan1拿到正确的IP地址。
8188EU 在AM335X MC183上以AP+STA工作的更多相关文章
- Arduino IDE for ESP8266 项目(3)创建AP+STA
官网API:http://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/readme.html STA (客户端)手机连接路由器 S1 *简 ...
- TFS支持移动设备,微软已经走出了第一步(手机上更新、查询工作项)
TFS支持移动设备,微软已经走出了第一步! 从现在开始,你可以在手机浏览器上打开自己的VSTS团队项目,会看大手机版的工作项界面,你可以在手机设备上更新.查询工作项. 这是原生自带的,这些移动功能马上 ...
- WIFI的AP/Sta模式简单介绍
AP模式: Access Point,提供无线接入服务,允许其它无线设备接入,提供数据访问,一般的无线路由/网桥工作在该模式下.AP和AP之间允许相互连接 Sta模式: Station, 类似于无线终 ...
- ESP8266 tcp透传AP+STA
AP 建立WIFI,接受STA连接,串口数据和TCP互传 #include <ESP8266WiFi.h> const char *ssid = "esp8266_666&quo ...
- (原创)AP6212蓝牙模块在am335x控制板上的应用
主控板wifi模块调通后接着调试蓝牙,经过两周的摸索,终于把蓝牙应用基本建立起来,下面记录下大概流程. 1.硬件管脚设置 static void uart4_init(int evm_id, int ...
- 使用PUT方法上传文件无法工作原因分析
现象 在Spring Framework中,使用HTTP的PUT方法上传文件时,在服务器端发现Multipart参数为空. 原因 Spring中的StandardServletMultipartRes ...
- Android 上能提高学习工作效率的应用
在知乎上有朋友问 Android 上能提高学习.工作效率的应用有哪些?我给他们的推荐获得了最多赞同.以后会不断完善更新此贴. Any.do :规划日程,各平台都有. Evernote:记笔记,各平台都 ...
- SAP Cloud Platform 上CPI的初始化工作
SAP Cloud Platform上的CPI tenant,如果没有正确的初始化,试图使用时会遇到如下错误消息: Insufficient scope for this resourceinsuff ...
- 使用 Egg + Vue 的第一个线上小产品——远程工作职位信息收集站点 yuancheng.works
小插曲 开始很纠结,买了一个 yuancheng.works 域名会不会冒犯到 yuancheng.work 站长. 还在群里咨询了 @Phodal 等前辈.重新搞一个新域名,yuancheng.wo ...
随机推荐
- python3.5学习第一章
在python中,变量赋值或者其他语句后不需要加”:“ python中,缩进特别重要! 条件语句和循环语句,要加”:“ 一.变量赋值 name = "cecelia"name2 = ...
- 最全的SpringCloud视频教程
史上最全的SpringCloud视频教程 转自:https://blog.csdn.net/itmayeidu/article/details/79426589 史上最全的SpringCloud视频教 ...
- Linux 各种软件的安装-ElasticSearch
安装elasticSearch之前先将一个问题: 重启服务器后发现 ssh上不去了,后来采用另外一种方式登录进去发现 sshd服务没启动. 解决过程:先查看sshd的状态 service sshd s ...
- 把 java web application deploy 到 root
http://stackoverflow.com/questions/5328518/deploying-my-application-at-the-root-in-tomcat You have a ...
- VS2008版本引入第三方dll无强签名
sn.exe 和ilasm.exe 是系统自带程序.如果显示无此命令,可以从“我的电脑”直接搜索. 将dll文件放入目录下,用VS开发人员命令执行以下命令即可.(以Interop.Scripting. ...
- 雷林鹏分享:C# 变量
C# 变量 一个变量只不过是一个供程序操作的存储区的名字.在 C# 中,每个变量都有一个特定的类型,类型决定了变量的内存大小和布局.范围内的值可以存储在内存中,可以对变量进行一系列操作. 我们已经讨论 ...
- p1460 Healthy Holsteins
列举所有的子集找最优就行. #include <iostream> #include <cstdio> #include <cmath> #include < ...
- android--------自定义控件 之 属性篇
上篇介绍了自定义控件的一个简单案例,本篇文章主要介绍如何给自定义控件自定义一些属性. Android 中使用自定义属性的一般步骤: 定义declare-styleable,添加attr 使用Typed ...
- win10+cpu+tensorflow+pycharm
1.安装64位的python3.5 选择windowsx86-64 executable installer安装 2.安装tensorflow cmd->进入到安装python的Scripts文 ...
- 原生js实现放大镜
效果: 1. 鼠标放上去会有半透明遮罩.右边会有大图片局部图 2. 鼠标移动时右边的大图片也会局部移动 放大镜的关键原理: 鼠标在小图片上移动时,通过捕捉鼠标在小图片上的位置,定位大图片的相应位置 ...