RTL8188 Linux驱动移植

折腾了好几天,系统的Wifi总算是跑起来了。

总结下来,刚开始应该犯了好多系统性的错误。例如,以为在menuconfig中,将RTL8188对应的选项选中,就可以了,但是后来才知道事实并非如此。主要还是由单片机背景进入Linux开发,有好多不太适应的地方,也有一些思维定势的地方。这些都是需要在后面开发的过程中,需要注意的。好了,言归正传,这里主要是参考了如下的两个链接:

http://bbs.cecport.com/thread-655-1-1.html    //讲述的是如何编译驱动

https://www.cnblogs.com/lifexy/p/10180653.html   //讲述的是如何使用wifi,例如SSID扫描等操作。

这里也介绍一下背景,目前开发硬件是采用外购核心板+自己做底板的方式操作的。核心板,目前购买的是深圳米尔的,使用的是i.mx6的平台。底板是根据公司的需求,部分参考开发板,自行选择的物料并设计的板子。官方的开发板,使用了环旭的一款SIP wifi模块,功能强大,就是贵了一些,因此就没采用。最后有关编译的具体步骤,请参考如下:

1.从模块厂商那边拿到模块的Linux驱动源代码。rtl8188FU_linux_v5.3.0.1_28034.20180525,并解压。我是从模块供应商那边拿到的,如有需要也可以向我要。

源码下载链接如下:https://download.csdn.net/download/efm32/11916277

2.将解压缩出来的源代码文件夹,放入到内核根目录下面。这里有个概念,对于我来讲,其实不太理解,什么叫内核根目录。Ubuntu的内核根目录吗?还是什么目录。单纯看字面意思,比较费解。于是我尝试着,将rtl8188FU_linux_v5.3.0.1_28034.20180525放到了MYiR的/home/zero/MYD-Y6ULX-devel/04-Source/MYiR-iMX-Linux/ 路径下,另外觉得文件夹名字太长,就改短了点,因此整个文件夹路径如下:/home/zero/MYD-Y6ULX-devel/04-Source/MYiR-iMX-Linux/rtl8188FU

3.修改rtl8188驱动包内的Makefile文件,编译环境采用MYiR的poky编译器,目录是MYiR的内核目录:

CONFIG_RTL8188E = y 选在为rtl8188
CONFIG_USB_HCI = y 选为USB模式
CONFIG_PLATFORM_FS_MX61 = y 增加IMX6配置文件

修改Makefile文件里的环境变量:

ifeq ($(CONFIG_PLATFORM_FS_MX61), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
CROSS_COMPILE := arm-poky-linux-gnueabi-
KSRC ?= /home/zero/MYD-Y6ULX-devel/04-Source/MYiR-iMX-Linux
endif

交叉编译器设置为米尔的poky,路径设置为MYiR的kernel目录

4.另外,还可以设置.ko档是否开启调试信息,以及调试信息的详细等级。

########################## Debug ###########################
CONFIG_RTW_DEBUG = y
# default log level is _DRV_INFO_ = 4,
# please refer to "How_to_set_driver_debug_log_level.doc" to set the available level.
CONFIG_RTW_LOG_LEVEL = 2  //具体每个等级,可以自行搜索查看

5.加载MYiR的poky编译环境,然后make文件。如果没问题的话,编译产生8188fu.ko

6.将编译完成的8188fu.ko,copy到U盘里,然后使用

mount /dev/sda /mnt
cp 8188fu.ko /home/root
cd /home/root
insmod 8188fu.ko

如果载入成功的话,应该能够看到很多8188的log,然后使用

ifconfig wlan0 up

启动wifi功能。然后看是否能够正常启动。

7.如果能够正常启动,则就可以执行后续的操作了。

wpa_passphrase "Zero" >> wifi.conf   //生成wifi配置文件
xxxxx //输入密码
root@myd-y6ull14x14:~# wpa_supplicant -D wext -B -i wlan0 -c wifi.conf    //连接路由器
udhcpc -b -i wlan0 -R    //dhcp IP地址

这里不得不吐槽一句话:如果顺利的话,如果正常的话,make顺利的话。多数时间都是不顺利的,好不好。。另外,我也隐约感受到,为什么linux开发的工程师,写的文章都比较简约了,我猜他们可能也没那么多时间去写完整的笔记,去教刚入行的小菜鸟吧。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值