歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 交叉編譯和安裝ARM板(RK3288)和Linux 3.10上的RTL8188無線網卡驅動

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

日期:2017/2/28 13:48:46   编辑:Linux教程

交叉編譯和安裝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即可。

Copyright © Linux教程網 All Rights Reserved