学习交流加

  • 个人qq:
    1126137994
  • 个人微信:
    liu1126137994
  • 学习交流资源分享qq群:
    962535112

今天记录我在I.MX6Q平台添加内核自带RT5370无线网卡驱动程序的过程,加qq1126137994 微信:liu1126137994 共同学习更多技术!!!

之前移植过官网下载的RT5370驱动程序(链接:点击查看),但是在当我使用wpa_supplicant工具连接无线wifi时,在串口终端,一直显示:

AsicAdjustTxPower: Incorrect desired TSSI or current TSSI
GetDesiredTssiAndCurrentTssi: BBP TSSI INFO is not ready. (BbpR47 = 0x94)
AsicAdjustTxPower: Incorrect desired TSSI or current TSSI
GetDesiredTssiAndCurrentTssi: BBP TSSI INFO is not ready. (BbpR47 = 0x94)
AsicAdjustTxPower: Incorrect desired TSSI or current TSSI
GetDesiredTssiAndCurrentTssi: BBP TSSI INFO is not ready. (BbpR47 = 0x94)

这样会影响我的操作,而且它无法停止,除非我杀死wpa_supplicant这个进程,但是杀死这个进程,又无法连接wifi。通过分析与查阅资料,得知应该是官网下载的驱动程序存在BUG,于是我就准备使用内核自带的驱动程序,最终还真解决了这个问题!!!

下面就来记录一下如何配置内核,来添加RT5370驱动程序(3.0.1内核之后,都自带RT5370驱动程序,我使用的是3.0.43内核):

1、想配置内核首先需要知道,内核是否自带相关驱动文件,Linux开源性这么好,最新版本的内核应该自带了市面上所有的驱动程序。如果没有带相关的驱动文件,那么就没法通过配置内核来实现驱动程序的使用了。

2、下面是讲解如何在3.0.43内核中,通过相关配置,来添加RT5370无线网卡驱动程序

首先在内核源码树目录下输入make menuconfig,进入图形用户界面

然后输入“/”进入查找模式,输入我们想找的内容的关键字“rt53”

在返回的内容中,找到需要的条目:

图中红色线框内的prompt关键字,是配置项, Depends on是配置项的依赖项目,这里有两项的依赖项是n,说明没有被配置,我们应该找到这两项,将其配置为y,这样Depends on中的依赖项都变成y之后,就可以在location的目录里看到prompt的字符串了,选中就可以了!

下面来一步步将上述的两个为n的选项配置为y
使用“/”查找“RT2X00”,进入:


结果中出现MAC80211没有选中,继续跟踪MAC80211.

结果中显示没有选中CFG80211,继续跟踪:

这个条目中的选项,都被选中了,说明我们可以在location目录中找到promat:CFG80211,我们去选中它:

使用空格键或者输入y,让<>变成<*>,使其编译进内核。

这个时候我们应该可以去配置MAC80211了,让我们去找到它,并配置为编译进内核。

选中之后应该就可以选择RT2X00条目了

首先需要将Ralink driver support这个promat选中:

之后使用同样的方法来追踪RT2800USB:

这里已经全部选中为y了,我们只需要去把 Ralink driver support (RT2X00 [=y])给配置上就行:

然后再把关于rt53xx 的依赖给选上:

到这里,应该已经把RT5370的驱动程序添加到内核了,我们来看一下:

接下来重新编译内核,生成内核镜像文件,就可以支持RT5370网卡了!!!

总结

当我们想要使用添加内核的驱动程序,首先我们应该查找内核中是否自带相关驱动文件!!!如果带的有,我们应该查看所依赖的项目是否被配置为y,如果有没有被配置为y,我们应该将所有的依赖,顺藤摸瓜,全部配置为y,全部配置为y之后,就可以在locatino中找到我们的promat关键字了,将其选中就OK啦!!!

那么对应的删减驱动程序,就是直接将promat选项配置为n,而不去删除依赖项,因为有可能其他的驱动程序也依赖相关的依赖项,如果去除,有可能导致编译内核失败!!!

想一起探讨以及获得各种学习资源加我:
qq:1126137994
微信:liu1126137994
可以共同交流关于嵌入式,操作系统,C++语言,C语言,数据结构等技术问题。