“MY-I.MX6-DEMO Android4.4.2 WIFI和3G移植手册”的版本间的差异

来自明远智睿的wiki
跳转至: 导航搜索
 
第1行: 第1行:
 
<div>
 
<div>
  
=移植WIFI(RTL8188EUS)(port WIFI(RTL8188EUS))=
+
=移植WIFI(RTL8188EUS)=
 
----
 
----
 
<b>步骤一:<br></b>
 
<b>步骤一:<br></b>
<span style="background:#CCCCCC">step1:</span><br>
 
 
vim device/fsl/sabresd_6dq/BoardConfig.mk<br>
 
vim device/fsl/sabresd_6dq/BoardConfig.mk<br>
 
<br>
 
<br>
第78行: 第77行:
 
<br>
 
<br>
 
<b>步骤二:<br></b>
 
<b>步骤二:<br></b>
<span style="background:#CCCCCC">step2:</span><br>
 
 
vim device/fsl/sabresd_6dq/init.rc<br>
 
vim device/fsl/sabresd_6dq/init.rc<br>
 
<br>
 
<br>
第122行: 第120行:
 
:  oneshot<br>
 
:  oneshot<br>
 
<b>步骤三:<br></b>
 
<b>步骤三:<br></b>
<span style="background:#CCCCCC">step3:</span><br>
 
 
<br>
 
<br>
 
”realtek_wifi_SDK_for_android_KK_4.4_20140117.tar.gz” 解压,然后将里面的ANDROID_SDK/hardware/realtek覆盖到android源码hardwar/realtek目录下中。<br>
 
”realtek_wifi_SDK_for_android_KK_4.4_20140117.tar.gz” 解压,然后将里面的ANDROID_SDK/hardware/realtek覆盖到android源码hardwar/realtek目录下中。<br>
<span style="background:#CCCCCC">decompress realtek_wifi_SDK_for_android_KK_4.4_20140117.tar.gz” ,then ANDROID_SDK/hardware/realtek in it will be covered to hardwar/realtek directory of android source code。</span><br>
 
 
<br>
 
<br>
 
<b>步骤四:<br></b>
 
<b>步骤四:<br></b>
<span style="background:#CCCCCC">step4:</span><br>
 
 
<br>
 
<br>
 
vim hardware/libhardware_legacy/wifi/Android.mk<br>
 
vim hardware/libhardware_legacy/wifi/Android.mk<br>
第141行: 第136行:
 
<br>
 
<br>
 
<b>步骤五:<br></b>
 
<b>步骤五:<br></b>
<span style="background:#CCCCCC">step5:</span><br>
 
 
<br>
 
<br>
 
将android源码的external/下wpa_supplicant_8备份一下,然后将驱动包里的wpa_supplicant_8_kk_4.4_rtw_r10450.20140220.tar.gz解压并重命名为wpa_supplicant_8并替换到我们android的external/目录下。<br>
 
将android源码的external/下wpa_supplicant_8备份一下,然后将驱动包里的wpa_supplicant_8_kk_4.4_rtw_r10450.20140220.tar.gz解压并重命名为wpa_supplicant_8并替换到我们android的external/目录下。<br>
<span style="background:#CCCCCC">backup wpa_supplicant_8 under external/of android souce code,then decompress wpa_supplicant_8_kk_4.4_rtw_r10450.20140220.tar.gz in the driving package and rename as wpa_supplicant_8 and replaced to external/ directory of android 。</span><br>
 
 
<br>
 
<br>
 
<b>步骤六:<br></b>
 
<b>步骤六:<br></b>
<span style="background:#CCCCCC">step6:</span><br>
 
 
<br>
 
<br>
 
修改文件kernel_imx/arch/arm/configs/imx6_android_defconfig,(或者修改.config)将下列项目配置成Y.<br>
 
修改文件kernel_imx/arch/arm/configs/imx6_android_defconfig,(或者修改.config)将下列项目配置成Y.<br>
<span style="background:#CCCCCC">modify kernel_imx/arch/arm/configs/imx6_android_defconfig,(or modify .config) configure the following items as Y</span><br>
 
 
<br>
 
<br>
 
CONFIG_CFG80211=y<br>
 
CONFIG_CFG80211=y<br>
第163行: 第154行:
 
<br>
 
<br>
 
<b>步骤七:<br></b>
 
<b>步骤七:<br></b>
<span style="background:#CCCCCC">step7:</span><br>
 
 
<br>
 
<br>
 
vim device/fsl/imx6/etc/init.rc<br>
 
vim device/fsl/imx6/etc/init.rc<br>
第171行: 第161行:
 
<br>
 
<br>
 
<b>步骤八:<br></b>
 
<b>步骤八:<br></b>
<span style="background:#CCCCCC">step8:</span><br>
 
 
<br>
 
<br>
 
out/target/product/sabresd_6dq下的system文件夹以及out/target/product/sabresd_6d/obj/EXECUTABLES下wpa_supplicant_intermediates文件夹删除,重新编译system.img和boot.img。<br>
 
out/target/product/sabresd_6dq下的system文件夹以及out/target/product/sabresd_6d/obj/EXECUTABLES下wpa_supplicant_intermediates文件夹删除,重新编译system.img和boot.img。<br>
<span style="background:#CCCCCC">delete system folder in out/target/product/sabresd_6dq and folder of wpa_supplicant_intermediates in out/target/product/sabresd_6d/obj/EXECUTABLES,re-compile system.img and boot.img</span><br>
 
 
<br>
 
<br>
 
<b>步骤九:<br></b>
 
<b>步骤九:<br></b>
<span style="background:#CCCCCC">step9:</span><br>
 
 
<br>
 
<br>
 
编译wlan.ko复制system/lib/modules/目录下<br>
 
编译wlan.ko复制system/lib/modules/目录下<br>
<span style="background:#CCCCCC">compile wlan.ko and copy to directory of system to /lib/modules/
+
 
</span><br>
 
 
vim Makefile<br>
 
vim Makefile<br>
 
CONFIG_PLATFORM_I386_PC = n<br>
 
CONFIG_PLATFORM_I386_PC = n<br>
第210行: 第196行:
 
#define CONFIG_P2P_IPS<br>
 
#define CONFIG_P2P_IPS<br>
 
最后编译成wlan.ko复制到system/lib/modules/目录下<br>
 
最后编译成wlan.ko复制到system/lib/modules/目录下<br>
<span style="background:#CCCCCC">finally compiled to wlan.ko and copy to directory of system/lib/modules/
 
</span><br>
 
  
=移植3G(MU609)(port 3G(MU609))=
+
 
 +
=移植3G(MU609)=
 
----
 
----
 
<b>步骤一:<br></b>
 
<b>步骤一:<br></b>
<span style="background:#CCCCCC">step1:</span><br>
 
 
vim kernel_imx/drivers/usb/serial/option.c<br>
 
vim kernel_imx/drivers/usb/serial/option.c<br>
 
<br>
 
<br>
第224行: 第208行:
 
<br>
 
<br>
 
<b>步骤二:<br></b>
 
<b>步骤二:<br></b>
<span style="background:#CCCCCC">step2:</span><br>
 
 
vim hardware/ril/rild/rild.c<br>
 
vim hardware/ril/rild/rild.c<br>
 
<br>
 
<br>
第235行: 第218行:
 
<br>
 
<br>
 
<b>步骤三:<br></b>
 
<b>步骤三:<br></b>
<span style="background:#CCCCCC">step3:</span><br>
 
 
Vim hardware/ril/runtime-ril-port/runtime_port.c<br>
 
Vim hardware/ril/runtime-ril-port/runtime_port.c<br>
 
<br>
 
<br>
 
在数组里增加新的结构:<br>
 
在数组里增加新的结构:<br>
<span style="background:#CCCCCC">add new structure in arrays</span><br>
 
 
static struct modem_3g_device modem_3g_device_table[] = {<br>
 
static struct modem_3g_device modem_3g_device_table[] = {<br>
{<br>
+
{<br>
 
:  .name:  = "Huawei-MU609",<br>
 
:  .name:  = "Huawei-MU609",<br>
 
:  .idVendor = "12d1",<br>
 
:  .idVendor = "12d1",<br>
第248行: 第229行:
 
:  .dataport = "/dev/ttyUSB0",<br>
 
:  .dataport = "/dev/ttyUSB0",<br>
 
:  .type:  = HUAWEI_MODEM,<br>
 
:  .type:  = HUAWEI_MODEM,<br>
},<br>
+
},<br>
 
<br>
 
<br>
 
<b>步骤四:<br></b>
 
<b>步骤四:<br></b>
<span style="background:#CCCCCC">step4:</span><br>
 
 
复制 ip-up,ip-down 到 /system/etc/ppp目录下,复制 libhuawei-ril.so 到 /system/lib目录下。<br>
 
复制 ip-up,ip-down 到 /system/etc/ppp目录下,复制 libhuawei-ril.so 到 /system/lib目录下。<br>
<span style="background:#CCCCCC">copy ip-up,ip-down to directory of  /system/etc/ppp,copy libhuawei-ril.so to directory of  /system/lib。</span><br>
 
 
<br>
 
<br>
 
<b>步骤五:<br></b>
 
<b>步骤五:<br></b>
<span style="background:#CCCCCC">step5:</span><br>
 
 
vim device/fsl/imx6/etc/init.rc<br>
 
vim device/fsl/imx6/etc/init.rc<br>
 
<br>
 
<br>
 
按照以下修改:<br>
 
按照以下修改:<br>
<span style="background:#CCCCCC">modify with following reference:</span><br>
 
 
chmod 777 /dev/ttyUSB0<br>
 
chmod 777 /dev/ttyUSB0<br>
 
chmod 777 /dev/ttyUSB2<br>
 
chmod 777 /dev/ttyUSB2<br>
第269行: 第246行:
 
<br>
 
<br>
 
<b>步骤六:<br></b>
 
<b>步骤六:<br></b>
<span style="background:#CCCCCC">step6:</span><br>
 
 
重新编译system.img和boot.img。<br>
 
重新编译system.img和boot.img。<br>
<span style="background:#CCCCCC">re-compile system.img and boot.img</span><br>
+
 
 
</div>
 
</div>

2018年7月27日 (五) 10:11的最新版本

移植WIFI(RTL8188EUS)


步骤一:
vim device/fsl/sabresd_6dq/BoardConfig.mk

# UNITE is a virtual device support both atheros and realtek wifi(ar6103 and rtl 8723as)
#BOARD_WLAN_DEVICE:            := UNITE
#WPA_SUPPLICANT_VERSION:         := VER_0_8_UNITE
#TARGET_KERNEL_MODULES:          := \  kernel_imx/drivers/net/wireless/rtl8723as/8723as.ko:system/lib/modules/8723as.ko \
   kernel_imx/net/wireless/cfg80211.ko:system/lib/modules/cfg80211_realtek.ko
#BOARD_WPA_SUPPLICANT_DRIVER:      := NL80211
#BOARD_HOSTAPD_DRIVER:           := NL80211

#BOARD_HOSTAPD_PRIVATE_LIB_QCOM:           := lib_driver_cmd_qcwcn
#BOARD_WPA_SUPPLICANT_PRIVATE_LIB_QCOM:      := lib_driver_cmd_qcwcn
#BOARD_HOSTAPD_PRIVATE_LIB_RTL:           := lib_driver_cmd_rtl
#BOARD_WPA_SUPPLICANT_PRIVATE_LIB_RTL

...
...
BOARD_WIFI_VENDOR := realtek

BOARD_WLAN_VENDOR := REALTEK

ifeq ($(BOARD_WIFI_VENDOR),realtek)

WPA_SUPPLICANT_VERSION :=VER_0_8_X

BOARD_WPA_SUPPLICANT_DRIVER :=NL80211
#CONFIG_DRIVER_WEXT :=y

CONFIG_DRIVER_NL80211 :=true

BOARD_WPA_SUPPLICANT_PRIVATE_LIB:= lib_driver_cmd_rtl

BOARD_HOSTAPD_DRIVER := NL80211

BOARD_HOSTAPD_PRIVATE_LIB :=lib_driver_cmd_rtl
BOARD_WLAN_DEVICE := rtl8192cu

#BOARD_WLAN_DEVICE := rtl8192du

#BOARD_WLAN_DEVICE := rtl8192ce

#BOARD_WLAN_DEVICE := rtl8192de

#BOARD_WLAN_DEVICE := rtl8723as

#BOARD_WLAN_DEVICE := rtl8723au

#BOARD_WLAN_DEVICE := rtl8189es

#BOARD_WLAN_DEVICE := rtl8723bs

#BOARD_WLAN_DEVICE := rtl8723bu

WIFI_DRIVER_MODULE_NAME :="wlan"

WIFI_DRIVER_MODULE_PATH := "/system/lib/modules/wlan.ko"

WIFI_DRIVER_MODULE_ARG :="ifname=wlan0 if2name=p2p0"

WIFI_FIRMWARE_LOADER :=""

WIFI_DRIVER_FW_PATH_STA :=""

WIFI_DRIVER_FW_PATH_AP :=""

WIFI_DRIVER_FW_PATH_P2P :=""

WIFI_DRIVER_FW_PATH_PARAM :=""

Endif

步骤二:
vim device/fsl/sabresd_6dq/init.rc

#service p2p_supplicant /system/bin/wpa_supplicant \
# -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \
# -I/system/etc/wifi/p2p_supplicant_overlay.conf -N \
# -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
# -I/system/etc/wifi/wpa_supplicant_overlay.conf \
# -O/data/misc/wifi/sockets -puse_p2p_group_interface=1 \
# -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
# class late_start
# socket wpa_wlan0 dgram 660 wifi wifi
# disabled
# oneshot

#service rtw_suppl_con /system/bin/rtl_wpa_supplicant \
# -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \
# -I/system/etc/wifi/p2p_supplicant_overlay.conf -N \
# -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
# -I/system/etc/wifi/wpa_supplicant_overlay.conf \
# -O/data/misc/wifi/sockets -puse_p2p_group_interface=1 \
# -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0
# class late_start
# socket wpa_wlan0 dgram 660 wifi wifi
# disabled
# oneshot

service rtw_suppl_con /system/bin/wpa_supplicant \

  -ip2p0 -Dnl80211 -c/data/misc/wifi/p2p_supplicant.conf \
  -e/data/misc/wifi/entropy.bin -N \
  -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
  -O/data/misc/wifi/sockets \
  -g@android:wpa_wlan0
  class main
  socket wpa_wlan0 dgram 660 wifi wifi
  disabled
  oneshot


service rtw_suppl /system/bin/wpa_supplicant \

  -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \
  -O/data/misc/wifi/sockets \
  -e/data/misc/wifi/entropy.bin
  -g@android:wpa_wlan0
  class main
  socket wpa_wlan0 dgram 660 wifi wifi
  disabled
  oneshot

步骤三:

”realtek_wifi_SDK_for_android_KK_4.4_20140117.tar.gz” 解压,然后将里面的ANDROID_SDK/hardware/realtek覆盖到android源码hardwar/realtek目录下中。

步骤四:

vim hardware/libhardware_legacy/wifi/Android.mk

#ifeq ($(BOARD_WLAN_DEVICE),UNITE)
# LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../external/wpa_supplicant_ath/wpa_supplicant/src/common
# LOCAL_SRC_FILES += wifi/wifi_unite.c
#else ifeq ($(BOARD_WLAN_VENDOR), INTEL)
# LOCAL_SRC_FILES += wifi/wifi_intel.c
# LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../external/wpa_supplicant_8/src/common
#else
# LOCAL_SRC_FILES += wifi/wifi.c
# LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../external/wpa_supplicant_8/src/common
#endif

ifeq ($(BOARD_WIFI_VENDOR),realtek)
LOCAL_SRC_FILES +=../realtek/wlan/libhardware_legacy/wifi/wifi_realtek.c
else
LOCAL_SRC_FILES += wifi/wifi.c
endif

步骤五:

将android源码的external/下wpa_supplicant_8备份一下,然后将驱动包里的wpa_supplicant_8_kk_4.4_rtw_r10450.20140220.tar.gz解压并重命名为wpa_supplicant_8并替换到我们android的external/目录下。

步骤六:

修改文件kernel_imx/arch/arm/configs/imx6_android_defconfig,(或者修改.config)将下列项目配置成Y.

CONFIG_CFG80211=y

CONFIG_MAC80211_MESH=y

CONFIG_MAC80211=y

CONFIG_HOSTAP=y

CONFIG_USB_USBNET=y

步骤七:

vim device/fsl/imx6/etc/init.rc

 setprop wifi.interface wlan0
 setprop wlan.driver.status "ok"


步骤八:

out/target/product/sabresd_6dq下的system文件夹以及out/target/product/sabresd_6d/obj/EXECUTABLES下wpa_supplicant_intermediates文件夹删除,重新编译system.img和boot.img。

步骤九:

编译wlan.ko复制system/lib/modules/目录下

vim Makefile
CONFIG_PLATFORM_I386_PC = n

CONFIG_PLATFORM_NEW = y

ifeq ($(CONFIG_PLATFORM_NEW), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
CROSS_COMPILE :=/home/linyn/android/android-myzr/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi- KSRC := /home/linyn/android/android-myzr/kernel_imx
MODULE_NAME := wlan
endif

vim include/autoconf.h

#define CONFIG_IOCTL_CFG80211
#ifdef CONFIG_IOCTL_CFG80211
#define RTW_USE_CFG80211_STA_EVENT

//#defineCONFIG_CFG80211_FORCE_COMPATIBLE_2_6_37_UNDER

//#define CONFIG_DEBUG_CFG80211 1
#endif
...
...
#define CONFIG_CONCURRENT_MODE

#define CONFIG_P2P_IPS
最后编译成wlan.ko复制到system/lib/modules/目录下


移植3G(MU609)


步骤一:
vim kernel_imx/drivers/usb/serial/option.c

#define HUAWEI_PRODUCT_E353:   0x1506
改为
#define HUAWEI_PRODUCT_E353:   0x1573

步骤二:
vim hardware/ril/rild/rild.c

#define REFERENCE_RIL_DEF_PATH "/system/lib/libreference-ril.so"
改为
#define REFERENCE_RIL_DEF_PATH "/system/lib/libhuawei-ril.so"

...
// switchUser();

步骤三:
Vim hardware/ril/runtime-ril-port/runtime_port.c

在数组里增加新的结构:
static struct modem_3g_device modem_3g_device_table[] = {
:{

  .name:  = "Huawei-MU609",
  .idVendor = "12d1",
  .idProduct = "1573",
  .deviceport = "/dev/ttyUSB2",
  .dataport = "/dev/ttyUSB0",
  .type:  = HUAWEI_MODEM,

:},

步骤四:
复制 ip-up,ip-down 到 /system/etc/ppp目录下,复制 libhuawei-ril.so 到 /system/lib目录下。

步骤五:
vim device/fsl/imx6/etc/init.rc

按照以下修改:
chmod 777 /dev/ttyUSB0
chmod 777 /dev/ttyUSB2
chmod 777 /etc/ppp/ip-up
chmod 777 /etc/ppp/ip-down
#service ril-daemon /system/bin/rild
service ril-daemon /system/bin/rild -l /system/lib/libhuawei-ril.so

步骤六:
重新编译system.img和boot.img。