Android 2.1中使用rt2070无线模块


修改ralink的wifi的驱动,更名ra0为wlan0

include\rtmp_def.h

#define INF_MAIN_DEV_NAME "wlan"

#define INF_MBSSID_DEV_NAME "wlan"

insmod rt2070sta.ko

在进程显示是rt2070sta,而Android要求的是wlan,所以要修改WIFI驱动。

修改os/linux/Makefile.6

MOD_NAME = wlan

将文件中所有rt$(CHIPSET)sta-objs 替换成wlan,然后编译,最后生成wlan.ko。

android就可以自由加载和卸载驱动了。而不需要修改android

常见错误

(1)

/ # ifconfig wlan0 up
<-- ERROR in Alloc TX TxContext[2] HTTX_BUFFER !!
<-- RTMPAllocTxRxRingMemory, Status=3
ERROR!!! RTMPAllocDMAMemory failed, Status[=0x00000003]
!!! rt28xx Initialized fail !!!
error: SIOCSIFFLAGS (Operation not permitted)

这是由于申请空间不够,将BULKAGGER_SIZE改小一点

修改include/os/rt_linux.h

1007行

#else

#define BULKAGGER_SIZE 60 

#endif

(2)

insmod rt2070sta.ko_60 rt2070sta: disagrees about version of symbol wake_up_
process

rt2070sta: Unknown symbol wake_up_process
rt2070sta: disagrees about version of symbol filp_close
rt2070sta: Unknown symbol filp_close

原因:内核没有更新,rt2070sta所依赖的内核与当前不一致

解决:将内核从新编译一下就行了。

本文结束

编译android2.1为MID版本

./build/target/product/min_dev.mk
./build/target/product/core.mk
修改PRODUCT_POLICY := android.policy_phone为:
        PRODUCT_POLICY := android.policy_mid

remove the
com.android.internal.policy.impl.PhoneLayoutInflater
com.android.internal.policy.impl.PhoneWindow
in the file /frameworks/preload-class

相关内容