diff --git a/code/application/source/sf_app/code/source/wifi/sf_wifi_svr.c b/code/application/source/sf_app/code/source/wifi/sf_wifi_svr.c index caba7166b..c03e9ca90 100755 --- a/code/application/source/sf_app/code/source/wifi/sf_wifi_svr.c +++ b/code/application/source/sf_app/code/source/wifi/sf_wifi_svr.c @@ -3063,10 +3063,25 @@ BOOL sf_system_check_wifi_ko(void) fgets(result, sizeof(result), fp); pclose(fp); if (result[0] == '\0') { - MLOGI("rtk_btusb module is not loaded.\n"); + MLOGI("8723du module is not loaded.\n"); return FALSE; } else { - MLOGI("rtk_btusb module is loaded.\n"); + MLOGI("8723du module is loaded.\n"); + return TRUE; + } +} +BOOL sf_wifi_check_firmware_class_ko(void) +{ + char command[30] = "lsmod | grep firmware_class"; + FILE *fp = popen(command, "r"); + char result[256]; + fgets(result, sizeof(result), fp); + pclose(fp); + if (result[0] == '\0') { + MLOGI("firmware_class module is not loaded.\n"); + return FALSE; + } else { + MLOGI("firmware_class module is loaded.\n"); return TRUE; } } @@ -3074,12 +3089,29 @@ BOOL sf_system_check_wifi_ko(void) int sf_load_wifi_ko(void) { int ret = 0; + UINT8 i = 0; MLOGI("start.\n"); if (sf_system_check_wifi_ko() == TRUE) { return TRUE; } - ret = system("insmod /lib/custom/lib/modules/4.19.91/kernel/net/wireless/cfg80211.ko"); + for (i = 0; i < 50; i++) + { + if (sf_wifi_check_firmware_class_ko() == TRUE) + { + break; + } + else + { + if(49 == i) + { + MLOGE("wifi setup fall!!\n"); + return FALSE; + } + usleep(500 * 1000); + } + } + ret = system("insmod /etc/lib/modules/4.19.91/kernel/net/wireless/cfg80211.ko"); if(ret == 0) { printf("Wifi cfg80211 OK\r\n"); @@ -3088,7 +3120,7 @@ int sf_load_wifi_ko(void) { printf("Wifi cfg80211 ERR\r\n"); } - ret = system("insmod /lib/custom/lib/modules/4.19.91/extra/net/rtl8723du/8723du.ko"); + ret = system("insmod /etc/lib/modules/4.19.91/extra/net/rtl8723du/8723du.ko"); if(ret == 0) { printf("Wifi rtl8723du OK\r\n"); diff --git a/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S550/make_post.sh b/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S550/make_post.sh index 273347f4b..aee23e2b5 100755 --- a/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S550/make_post.sh +++ b/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S550/make_post.sh @@ -104,6 +104,8 @@ MV_KO_LIST=(\ /lib/modules/$KERVER/kernel/drivers/net/usb/qmi_wwan.ko \ /lib/modules/$KERVER/extra/fs/exfat/exfat.ko \ /lib/modules/$KERVER/kernel/drivers/bluetooth/rtk_btusb.ko \ +/lib/modules/$KERVER/extra/net/rtl8723du/8723du.ko \ +/lib/modules/$KERVER/kernel/net/wireless/cfg80211.ko \ ) @@ -129,30 +131,6 @@ do fi done -SF_MV_KO_LIST=(\ -/lib/modules/$KERVER/extra/net/rtl8723du/8723du.ko \ -/lib/modules/$KERVER/kernel/net/wireless/cfg80211.ko \ -) - -if [ -d ${ROOTFS_DIR}/rootfs/lib/custom ]; then - echo "remove old rootfs etc/lib/custom" - rm -r ${ROOTFS_DIR}/rootfs/etc/lib/custom -fi - - -for n in "${SF_MV_KO_LIST[@]}" -do - if [ -f ${ROOTFS_DIR}/rootfs/${n} ]; then - path=$(dirname "${ROOTFS_DIR}/rootfs/lib/custom${n}") - if [ ! -d ${path} ]; then - mkdir -p ${path} - fi - echo "mv ${ROOTFS_DIR}/rootfs/${n} to ${path}/" - mv ${ROOTFS_DIR}/rootfs/${n} ${path}/ - ${STRIP} -g --strip-unneeded ${ROOTFS_DIR}/rootfs/lib/custom/${n} - fi -done - # static device node MAJOR=253 rm -rf ${ROOTFS_DIR}/rootfs/dev/*