azzuri

zedboard 无线网卡移植问题

0
阅读(2795)

目标开发板:zedboard

操作系统:ubuntu-12.04-desktop-amd64

交叉编译器:arm-xilinx-linux-gnueabi-

无线网卡驱动版本:rtl8192CU_linux_v2.0.1324.20110126.tar.gz

内核版本:linux-digilent-3.3.0-digilent-12.07-zed-beta.tar.gz


移植步骤


  1. 解压内核
    /home/azzuri/linux-digilent-3.3.0-digilent-12.07-zed-beta

  2. 解压网卡驱动并放到文件夹
    /home/azzuri/linux-digilent-3.3.0-digilent-12.07-zed-beta/drivers/net/wireless

  3. 修改/home/azzuri/linux-digilent-3.3.0-digilent-12.07-zed-beta/drivers/net/wireless文件夹下Makefile和Kconfig

    Makefile下添加

    obj -$(CONFIG_RTL8192CU)  += rtl8192cu/

    Kconfig下添加 

    source"drivers/net/wireless/rtl8192cu/Kconfig"

  4. 修改驱动中Makefile

    CONFIG_PLATFORM_I386_PC=n
    CONFIG_PLATFORM_ANDROID_X86=n
    CONFIG_PLATFORM_ARM_S3C2K4=n
    CONFIG_PLATFORM_ARM_PXA2XX=n
    CONFIG_PLATFORM_ARM_S3C6K4=y
    CONFIG_PLATFORM_ARM_MX51_241Hn
    CONFIG_PLATFORM_ARM_MX51_420Cn
    CONFIG_PLATFORM_MIPS_RMI=n
    CONFIG_PLATFORM_RTD2880B=n
    CONFIG_PLATFORM_MIPS_AR9132=n
    CONFIG_PLATFORM_MT53XX=n
    CONFIG_PLATFORM_RTK_DMP=n
    CONFIG_PLATFORM_ARM_TCC8900=n



    ifeq ($(CONFIG_PLATFORM_ARM_S3C6K4), y)
    EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
    ARCH := arm
    CROSS_COMPILE := arm-none-linux-gnueabi-
    KVER  := 3.3.0
    KSRC ?= /home/azzuri/linux-digilent-3.3.0-digilent-12.07-zed-beta
    endif

  5. 编译内核
    进入文件夹/home/azzuri/linux-digilent-3.3.0-digilent-12.07-zed-beta
    make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- digilent_zed_deconfig
    make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- menuconfig




    选择完成后,退出保存,编译内核
    make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi-




出现错误:

In file included from drivers/net/wireless/rtl8192cu/include/drv_types.h:80:0,
                 from drivers/net/wireless/rtl8192cu/core/rtw_cmd.c:24:
drivers/net/wireless/rtl8192cu/include/rtw_xmit.h:343:24: error: field 'xmit_tasklet' has incomplete type
In file included from drivers/net/wireless/rtl8192cu/include/drv_types.h:81:0,
                 from drivers/net/wireless/rtl8192cu/core/rtw_cmd.c:24:
drivers/net/wireless/rtl8192cu/include/rtw_recv.h:217:24: error: field 'recv_tasklet' has incomplete type
In file included from drivers/net/wireless/rtl8192cu/include/drv_types.h:86:0,
                 from drivers/net/wireless/rtl8192cu/core/rtw_cmd.c:24:
drivers/net/wireless/rtl8192cu/include/rtw_io.h:35:28: fatal error: linux/smp_lock.h: No such file or directory
compilation terminated.
make[4]: *** [drivers/net/wireless/rtl8192cu/core/rtw_cmd.o] Error 1
make[3]: *** [drivers/net/wireless/rtl8192cu] Error 2
make[2]: *** [drivers/net/wireless] Error 2
make[1]: *** [drivers/net] Error 2
make: *** [drivers] Error 2



不知道是哪里出了问题,大家有知道的帮帮忙指出一下,十分感谢!



参考
http://blog.csdn.net/yake827/article/details/41870445

http://blog.csdn.net/yake827/article/details/38126063

http://blog.csdn.net/hunanchenxingyu/article/details/19914921