linux的debian中调试rtl8821cs

在调试这个模块的时候碰到了很多问题,下面具体看看。

下面大概调试步骤说一下,然后就是具体碰到的问题:

一、大概配置

1.首先简单的是加入驱动文件,我这里是RK平台,默认放置的路径是:kernel/drivers/net/wireless/rockchip_wlan/rtl8821cs

之后就是检验加入的8821的驱动有没有正常被编译到。

2.第二就是对系统层的配置:

//类似于makefile
buildroot/package/rockchip/rkwifibt/rkwifibt.mk

//类似于Kconfig
buildroot/package/rockchip/rkwifibt/Config.in

Config.in:将menuconfig rkwifibt配置的WiFiBT型号传递给mk文件;

rkwifibt.mk:将对应WiFiBT所需的文件、firmware等拷贝到文件系统里面去; # 指定rkwifibt的源码目录
RKWIFIBT_SITE = $(TOPDIR)/../external/rkwifibt
#是构建过程函数,给源代码传递编译和链接选项,调用源代码的Makefile执行编译 RKWIFIBT_BUILD_CMDS
# 编译完之后,自动执行安装,让Buildroot把编译出来库和bin文件安装到指定的目录
RKWIFIBT_INSTALL_TARGET_CMDS
 

还有就是对8821的库文件配置:

external/rkwifibt/realtek

详细配置请见RK的文档。

大概配置流程如上,相比android的流程是要简单不少。

二、碰到的问题:

如上log打印,出现了mmc2:mmc host rescan start! 

A.分析:

如上log,说的是模块没有正常上电,没有被识别到的问题。

所以要么是dts配置有误,要么是硬件上对这个模块没有焊好。

B.验证:

1.由于这个模块在同样的板子上,在android系统中是可以使用的,所以硬件上是没有问题的。

dts也是根据RK文档配置的,本人对了很多遍,认为也是没啥毛病。

2.如下,是对模块pid,vid的校验:

 这个pid,vid是8821cs的正常显示,没毛病,所以直接打破了分析中的模块不上电的问题。

3.就是对模块的ko加载问题:

 8821cs.ko也起来了(出现bcmdhd,是因为这是默认加载的。而8821cs我这里是手动加载insmod的)

        按理来说,pid,vid有被识别,模块ko文件有被加载,那么ifconfig命令,是会出现wlan0的节点的,但是我这里并没有。

犯难了(囧)。

C.对比

        之后,因为是同样的设备树dts文件,同一块板子android的是ok的,所以我烧录了android系统的固件进行比对,结果发现了wl_reg_on的电平不对。

cat d/gpio                    //android
cat /sys/kernel/debug/gpio    //linux

       该脚在android中是处于高电平的, 而在debian中,该脚的电平一直处于低电平,说明不正常。再结合RK的文档,确实说明了该脚不正常。

 D.对比后验证

       1.首先添加了对8821cs.ko文件自动加载的脚本

diff --git a/debian/overlay/etc/init.d/rkwifibt.sh b/debian/overlay/etc/init.d/rkwifibt.sh
index 8466747..13178a3 100755
--- a/overlay/etc/init.d/rkwifibt.sh
+++ b/overlay/etc/init.d/rkwifibt.sh
@ -12,6 +12,7 @
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
init_rkwifibt() {
+       insmod /system/lib/modules/8821cs.ko
     case $1 in
         rk3288)
            rk_wifi_init /dev/ttyS0

2.然后让硬件帮忙将wl_reg_on的脚上前端的电阻断开了,让它一直处于高电平状态。

重新编译烧录验证:结果出现了wlan0网卡节点。

 然后尝试用命令打开WiFi上网,可以ping通网址。

3.上述中2的验证中,说明软件中的驱动对该脚的上拉能力不够,所以,我尝试了将该脚内部上拉。

 然而电平并未变高。虽然出现了wlan0节点,但是无法用命令检索到ssid.

E.分析无法检索wifi的问题

1.查看log

使用示波器量了wl_reg_on前端的电阻,发现上电开机那会,该电平会拉高一会,之后便不再拉高了。

 然后又在代码中搜索dhd_module_init,发现跑的是bcmdhd的驱动

 查看log和驱动代码,分析得出:由于先跑的是bcmdhd,它会先调用的sdmmc的power,然后又消失;而8821cs慢一点,等他再去调用sdmmc的时候,已经不理它了。

验证:将8821cs的ko文件名字改成博通的,重启试试。

欸,发现WiFi可以上网。

F.将博通的bcmdhd屏蔽掉编译验证试试

在编译的时候,只是屏蔽configs的CONFIG_AP6XXX=n,编译烧录是没有生效的,发现bcmdhd.ko文件还是有被编译生成。所以需要

1.在kernel下make clean

2.在debian/binary/system/lib/modules/下删除bcmdhd.ko文件。

3.如果bcmdhd.ko还是有被加载,那么请删除下面2个文件,这是因为在第一次编译sdk的时候,有关博通的驱动已经有被编译了。

 删除重新编译(时间稍长)。

结果,验证OK.只是加载了8821cs.ko ,可以上网。

到此8821cs的WiFi就配置成功了。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: Linux Debian是一种自由开源的操作系统,它基于Linux内核,由Debian项目开发和维护。它被广泛应用于服务器、桌面电脑、嵌入式系统等领域。Linux Debian以稳定、安全、易用、灵活等特点著称,是许多用户和开发者的首选操作系统之一。 ### 回答2: Linux Debian是一种广泛应用于服务器端和桌面端的操作系统。它是自由软件的代表,采用GPL协议,并支持多种架构,如x86、Alpha等。Linux Debian具有稳定、强大的特点,能够帮助用户高效地进行开发、部署和管理系统。 在Linux Debian,有许多重要的软件包,如Apache、Samba、OpenSSH等。用户只需在系统安装这些软件包,即可快速构建一个完整的Web服务器或网络文件共享系统。此外,用户可以根据自己的需要从Debian的超过50,000个软件包选择适合自己的软件包,并通过APT(Advanced Packaging Tool)轻松地进行更新和升级。 此外,Linux Debian使用Debian package作为软件包管理的标准,并且支持Debian的软件包管理工具dpkg和APT。这类软件包管理工具在Linux Debian非常受欢迎,因为它们能够帮助用户快速地安装、更新、升级和删除软件包,从而提高了用户的效率。 总之,Linux Debian是一种多功能、高效、稳定和自由的操作系统。它能够满足各种复杂的计算需求,并为用户提供易于使用和管理的环境。 ### 回答3: Debian 是一种基于 Linux 的操作系统,被广泛认为是最稳定、最安全和最可靠的 Linux 发行版之一。Debian 的名称来源于创始人 Ian Murdock 和他妻子的名字 Deborah。 Debian 贯彻了自由软件的理念,所有的软件都是自由免费的,用户可以随意地使用、复制、分发和修改它们。这也是为什么 Debian 是许多自由软件项目的首选发行版之一。Debian 的软件库包含超过 59000 个包,范围涵盖了开发、办公、多媒体、科研、服务器等各种应用。 与其他 Linux 发行版不同的是,Debian 的软件包更新比较慢,但这也是保证其稳定性和安全性的原因之一。Debian 的每个版本有一个代码名,如 Debian 10 的代码名是“Buster”。Debian 每年都会发布一个稳定版,但在此之前还会有多次测试和修复版本,以确保整个系统的稳定性和安全性。 Debian 还有一个特点,就是它已经被许多其他的 Linux 发行版所基础,如 Ubuntu、Linux Mint 等。这些发行版基础于 Debian 的软件库和架构,但它们也加入了一些自己的特色和改进。 总之,Debian 可以说是 Linux 最基础、最纯粹、最真实的发行版之一,对于追求自由软件、安全性和稳定性的用户来说,它是一个很好的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值