首頁 > 軟體

交叉編譯和安裝ARM板(RK3288)和Linux 3.10上的RTL8188無線網絡卡驅動

2020-06-16 17:32:36

交叉編譯和安裝ARM板(RK3288)和Linux 3.10上的RTL8188無線網絡卡驅動

插入無線網絡卡,輸入ifconfig,發現沒有檢測到網絡卡。

輸入lsusb,檢視無線網絡卡型號。

我用的無線網絡卡是EDUP的網絡卡,包裝盒裡有一張驅動光碟,把光碟裡linux下的驅動目錄複製下來。如果沒有驅動光碟,可以去網上下載RTL8188的Linux版驅動包。

提前準備好ARM板系統的交叉編譯器和系統原始碼,如這裡的RK3288的Ubuntu系統的原始碼位於~/proj/firefly-rk3288,交叉編譯器目錄為/usr/bin/arm-linux-gnueabihf-gcc。

開啟驅動目錄下的linux/rtl8188.../Makefile檔案。(可能需要解壓linux目錄下的壓縮包)

修改大約30行的CONFIG_POWER_SAVING = n,修改下面的CONFIG_PLATFORM_I386_PC = n,在下面選擇合適的平台,如這裡用的是RK3288,選擇CONFIG_PLATFORM_ARM_RK2818 = y。

CONFIG_MP_INCLUDED = n
CONFIG_POWER_SAVING = n
CONFIG_USB_AUTOSUSPEND = n
CONFIG_HW_PWRP_DETECTION = n
CONFIG_WIFI_TEST = n
CONFIG_BT_COEXISTENCE = n
CONFIG_RTL8192CU_REDEFINE_1X1 = n
CONFIG_INTEL_WIDI = n
CONFIG_WAKE_ON_WLAN = n

CONFIG_PLATFORM_I386_PC = n
CONFIG_PLATFORM_TI_AM3517 = n
CONFIG_PLATFORM_Android_X86 = n
CONFIG_PLATFORM_JB_X86 = n
CONFIG_PLATFORM_ARM_S3C2K4 = n
CONFIG_PLATFORM_ARM_PXA2XX = n
CONFIG_PLATFORM_ARM_S3C6K4 = n
CONFIG_PLATFORM_MIPS_RMI = n
CONFIG_PLATFORM_RTD2880B = n
CONFIG_PLATFORM_MIPS_AR9132 = n
CONFIG_PLATFORM_RTK_DMP = n
CONFIG_PLATFORM_MIPS_PLM = n
CONFIG_PLATFORM_MSTAR389 = n
CONFIG_PLATFORM_MT53XX = n
CONFIG_PLATFORM_ARM_MX51_241H = n
CONFIG_PLATFORM_FS_MX61 = n
CONFIG_PLATFORM_ACTIONS_ATJ227X = n
CONFIG_PLATFORM_TEGRA3_CARDHU = n
CONFIG_PLATFORM_TEGRA4_DALMORE = n
CONFIG_PLATFORM_ARM_TCC8900 = n
CONFIG_PLATFORM_ARM_TCC8920 = n
CONFIG_PLATFORM_ARM_TCC8920_JB42 = n
CONFIG_PLATFORM_ARM_RK2818 = y
CONFIG_PLATFORM_ARM_TI_PANDA = n
CONFIG_PLATFORM_MIPS_JZ4760 = n
CONFIG_PLATFORM_DMP_PHILIPS = n
CONFIG_PLATFORM_TI_DM365 = n
CONFIG_PLATFORM_MN10300 = n
CONFIG_PLATFORM_MSTAR_TITANIA12 = n
CONFIG_PLATFORM_MSTAR_A3 = n
CONFIG_PLATFORM_ARM_SUNxI = n
CONFIG_PLATFORM_ARM_SUN6I = n

找到下面的ifeq ($(CONFIG_PLATFORM_ARM_RK2818), y)部分,修改為:

ifeq ($(CONFIG_PLATFORM_ARM_RK2818), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ANDROID -DCONFIG_PLATFORM_ROCKCHIPS -DCONFIG_MINIMAL_MEMORY_USAGE
ARCH := arm
CROSS_COMPILE := /usr/bin/arm-linux-gnueabihf-
KSRC := /home/XXX/proj/firefly-rk3288/kernel
MODULE_NAME := wlanrtl8188
endif

然後在該目錄下執行make,出錯:

os_dep/linux/os_intfs.c:320:3: error: implicit declaration of function ‘create_proc_entry’

原因:Linux 3.10版本中已經去除了create_proc_entry函數。

解決方法:下載另一個檔案:wget https://raw.github.com/raspberrypi/linux/rpi-3.10.y/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c,將下載到的檔案覆蓋原來的os_dep/linux/os_intfs.c。

再次make,編譯完成後可以得到wlanrtl8188.ko檔案。

將wlanrtl8188.ko檔案複製到開發板/home/firefly目錄下,執行sudo depmod -n /home/firefly/wlanrtl8188.ko,然後執行insmod /home/firefly/wlanrtl8188.ko,即可使用無線網絡卡。

如果需要以後開機後也能使用無線網絡卡,編輯/etc/rc.local檔案,加入/sbin/insmod /home/firefly/wlanrtl8188.ko即可。

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-09/135374.htm


IT145.com E-mail:sddin#qq.com