设为首页 加入收藏

TOP

雷凌Ralink 2070 移植到Android记录
2014-11-24 13:57:52 来源: 作者: 【 】 浏览:2
Tags:雷凌 Ralink 2070 移植 Android 记录

2 编译好rt3070sta.ko,将其放到/system/lib/modules/目录下面,还有就是需要将官方提供的RT2870STA.dat拷贝到/etc/Wireless/RT2870STA/供驱动使用


3 由于tcc8900默认的wifi模块是atheros,所以我还修改了wifi_atheros.c的int wifi_load_driver()函数
int wifi_load_driver()
{
char driver_status[PROPERTY_VALUE_MAX];
int count = 100; /* wait at most 20 seconds for completion */


if (check_driver_loaded()) {
return 0;
}


if (insmod(DRIVER_MODULE_PATH, DRIVER_MODULE_ARG) < 0)
return -1;


if (strcmp(FIRMWARE_LOADER,"") == 0) {
usleep(WIFI_DRIVER_LOADER_DELAY);
property_set(DRIVER_PROP_NAME, "ok");
}
else {
property_set("ctl.start", FIRMWARE_LOADER);
}
sched_yield();
while (count-- > 0) {
if (property_get(DRIVER_PROP_NAME, driver_status, NULL)) {
if (strcmp(driver_status, "ok") == 0)
return 0;
else if (strcmp(DRIVER_PROP_NAME, "failed") == 0) {
wifi_unload_driver();
LOGE("DRIVER_PROP_NAME failed");
//property_set(DRIVER_PROP_NAME, "ok");
return -1;
}
}
usleep(200000);
}
property_set(DRIVER_PROP_NAME, "timeout");
wifi_unload_driver();
return -1;
}
这里有一个问题需要注意,就是static const char IFACE_DIR[]= "/data/system/wpa_supplicant";这里的路径一定要和wpa_supplicant.conf里面的
ctrl_interface=DIR=/data/system/wpa_supplicant相同,不然会造成"/data/system/wpa_supplicant/ra0": No such file or directory这个错误,这个问题困扰我了很久,
权限问题也会引起这个问题。


4 需要更改init.rc文件,里面需要更改权限问题,
chmod 0777 /system/etc/wifi/wpa_supplicant.conf
chown wifi wifi /system/etc/wifi/wpa_supplicant.conf
mkdir /data/misc/wifi/wapi_certificate 0777 wifi wifi
mkdir /data/misc/dhcp 0777 dhcp dhcp
chown dhcp dhcp /data/misc/dhcp
mkdir /data/misc/wifi/sockets 0777 wifi wifi
mkdir /data/misc/wifi/wpa_supplicant 0777 wifi wifi
mkdir /data/misc/wifi/hostapd 0777 wifi wifi
mkdir /data/misc/wifi 0777 wifi wifi
setprop wifi.interface ra0
setprop wlan.driver.script "wifi_sta_up.sh"
setprop wlan.driver.path "/system/wifi"
chmod 0777 /data/misc/wifi
chmod 0777 /data/misc/wifi/wpa_supplicant.conf
chown wifi wifi /data/misc/wifi
chown wifi wifi /data/misc/wifi/wpa_supplicant.conf
chown wifi wifi /system/etc/wifi


mkdir /data/system/wpa_supplicant 0777 wifi wifi
chmod 0777 /data/system/wpa_supplicant
chown wifi wifi /data/system/wpa_supplicant


5 按照上面的步骤,通过手动加载驱动
insmod /system/lib/modules/rt3070sta.ko
ifconfig ra0 up
wpa_supplicant -dd -Dwext -ira0 -c /system/etc/wifi/wpa_supplicant.conf&
iwlist ra0 scanning
基本上就可以搜索到网络了,但是要通过android设置里面的wifi setting去控制wifi的使能,还是会出现
/data/system/wpa_supplicant/ra0": No such file or directory错误,但是在搜索的过程中,如果手动的输入ifconfig ra0 up命令,就可以搜到网络
说明在wpa_supplicant调用的过程中没有打开ralink,于是我在wpa_ctrl.c文件的wpa_ctrl_open函数的开头增加了
对ra0打开的调用,
struct ifreq ifr;
os_memset(&ifr,0,sizeof(struct ifreq));
strncpy(ifr.ifr_name,"ra0",IFNAMSIZ);
setflags(ctrl->s,&ifr,IFF_UP,0);
usleep(10000);


重新编译,烧录程序,然后通过android wifi setting终于能够搜到网络,链接也能上网了。但是为什么wpa_supplicant在启动的没能打开ra0,现在还没搞明白,也希望高手
能指点一下。


以上就是移植的大概过程。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇mini2440 驱动ds18b20 下一篇Handler的相关知识和应用

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C++中智能指针的性能 (2025-12-25 03:49:29)
·如何用智能指针实现c (2025-12-25 03:49:27)
·如何在 C 语言中管理 (2025-12-25 03:20:14)
·C语言和内存管理有什 (2025-12-25 03:20:11)
·为什么C语言从不被淘 (2025-12-25 03:20:08)