아래와 같이 Android의 HAL Interface의 설정을 수정해주면 Android에서도 문제없이 WIFI를 사용 할 수 있다.
현재 이 부분은 기본적인 TEST를 마친 상황이다.
Odroid에서 IPTIME n150ua Porting
https://ahyuo79.blogspot.com/2014/08/android.html
Odroid WIFI 관련 설정 및 테스트
https://ahyuo79.blogspot.com/2014/03/dlna-upnp.html
- vi device/hardkernel/odroidx2/BoardConfig.mk
BOARD_WIFI_VENDOR := realtek BOARD_WLAN_DEVICE := rtl819xxu WPA_SUPPLICANT_VERSION := VER_0_8_X BOARD_WPA_SUPPLICANT_DRIVER := WEXT BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_rtl WIFI_DRIVER_MODULE_NAME := "rtl8191su" WIFI_DRIVER_MODULE_PATH := "/system/lib/modules/rtl8191su.ko" WIFI_DRIVER_MODULE_NAME2 := "rtl8192cu" WIFI_DRIVER_MODULE_PATH2 := "/system/lib/modules/rtl8192cu.ko" WIFI_DRIVER_MODULE_NAME3 := "rt5370sta" WIFI_DRIVER_MODULE_PATH3 := "/system/lib/modules/rt5370sta.ko" WIFI_DRIVER_MODULE_NAME4 := "rt3070sta" WIFI_DRIVER_MODULE_PATH4 := "/system/lib/modules/rt3070sta.ko"
- vi hardware/libhardware_legacy/wifi/wifi.c
int wifi_load_driver()
{
#ifdef WIFI_DRIVER_MODULE_PATH
char driver_status[PROPERTY_VALUE_MAX];
int count = 100; /* wait at most 20 seconds for completion */
char node[50] = {'\0',};
char buf[5] = {'\0',};
DIR *dir = opendir("/sys/bus/usb/devices/");
struct dirent *dent;
if (dir != NULL) {
while ((dent = readdir(dir)) != NULL) {
memset(node, '\0', 50);
sprintf(node, "/sys/bus/usb/devices/%s/idVendor", dent->d_name);
int vid_fd = open(node, O_RDONLY);
memset(buf, '\0', 5);
....
} else if (strcmp(buf, "3070") == 0) {
ALOGE("rt3070 Wi-Fi Module 4");
//wifi module 4 rt3070
strcpy(DRIVER_MODULE_NAME, WIFI_DRIVER_MODULE_NAME4);
strcpy(DRIVER_MODULE_TAG, WIFI_DRIVER_MODULE_NAME4 " ");
strcpy(DRIVER_MODULE_PATH, WIFI_DRIVER_MODULE_PATH4);
close(pid_fd);
close(vid_fd);
break;
}
- vi hardware/libhardware_legacy/wifi/Android.mk
ifdef WIFI_DRIVER_MODULE_PATH LOCAL_CFLAGS += -DWIFI_DRIVER_MODULE_PATH=\"$(WIFI_DRIVER_MODULE_PATH)\" LOCAL_CFLAGS += -DWIFI_DRIVER_MODULE_PATH2=\"$(WIFI_DRIVER_MODULE_PATH2)\" LOCAL_CFLAGS += -DWIFI_DRIVER_MODULE_PATH3=\"$(WIFI_DRIVER_MODULE_PATH3)\" LOCAL_CFLAGS += -DWIFI_DRIVER_MODULE_PATH4=\"$(WIFI_DRIVER_MODULE_PATH4)\" endif ... ifdef WIFI_DRIVER_MODULE_NAME LOCAL_CFLAGS += -DWIFI_DRIVER_MODULE_NAME=\"$(WIFI_DRIVER_MODULE_NAME)\" LOCAL_CFLAGS += -DWIFI_DRIVER_MODULE_NAME2=\"$(WIFI_DRIVER_MODULE_NAME2)\" LOCAL_CFLAGS += -DWIFI_DRIVER_MODULE_NAME3=\"$(WIFI_DRIVER_MODULE_NAME3)\" LOCAL_CFLAGS += -DWIFI_DRIVER_MODULE_NAME4=\"$(WIFI_DRIVER_MODULE_NAME4)\" endif
- vi ./device/hardkernel/odroidx2/conf/init.odroidx2.rc
libhardware_legacy.so
out/target/product/odroidx2/obj/SHARED_LIBRARIES/libhardware_legacy_intermediates/wifi/wifi.o
./out/target/product/odroidx2/root/init.odroidx2.rc
./out/target/product/odroidx2/system/init.odroidx2.rc
cp rt3070sta.ko to device/hardkernel/odroidx2/drivers/