imx6sx平台BCM4335WIFI+BT模块驱动调试

本文详细介绍如何配置BCM无线网卡模块,包括bin文件放置路径、内核配置修改、驱动编译及模块加载过程,并提供了测试连接的具体命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BCM的代码相对保密一些,所以提供了一些bin文件,首先把模块厂商提供的配置文件和相关bin文件用adb放到板子上/etc/wifi/文件下

例adb remount
 adb push bcmdhd.cal /etc/wifi/
 adb push fw_bcmdhd.bin /etc/wifi/
 adb push fw_bcmdhd_apsta.bin /etc/wifi/
 adb push fw_bcmdhd_mfgtest.bin /etc/wifi/
 adb push p2p_supplicant.conf /etc/wifi/
 adb push sta.conf /etc/wifi/
 adb push wpa_supplicant.conf /etc/wifi/
 adb push wpa_supplicant_ap.conf /etc/wifi/

如果你adb不好用也可以直接把这些文件拷贝到android代码android/out/target/product/sabresd_6sx/system/etc/wifi/下面 重新编译bootimage即可

下面开启内核IEEE80211相关配置,我直接修改imx_v7_android_defconfig配置文件

CONFIG_CFG80211=y
CONFIG_CFG80211_WEXT=y
CONFIG_MAC80211=y

下面需要对设备数进行修改,solox默认支持Murata的wifi+bt模块,在调试的时候是将slot3那个sdio口配置为wifi的接口,murata_quick_start_guide_android 其中wl_reg接到了slot2的第9引脚上(这个可选择,将对应的引脚配置成gpio模式就行了),wl_host_wake可以悬空。这里提供imxq的dts文件仅做参考

wlreg_on: fixedregulator@100 {
 compatible = "regulator-fixed";
 regulator-min-microvolt = <3300000>;
 regulator-max-microvolt = <3300000>;
 regulator-name = "wlreg_on";
 gpio = <&gpio2 22 0>;
 startup-delay-us = <30000>;
 enable-active-high;
};

bcmdhd_wlan_1: bcmdhd_wlan@0 {
 compatible = "android,bcmdhd_wlan";
 gpios = <&gpio3 15 0>; //wl host wakeup
 wlreg_on-supply = <&wlreg_on>;
};

pinctrl_usdhc3: usdhc3grp {
 fsl,pins = <
 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
 MX6QDL_PAD_EIM_A16__GPIO2_IO22 0x80000000
 MX6QDL_PAD_EIM_DA15__GPIO3_IO15 0x80000000
 >;
};

&usdhc3 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_usdhc3>;
 bus-width = <4>;
 cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
 wp-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
 no-1-8-v;
 wifi-host;
 non-removable;
 keep-power-in-suspend;
 enable-sdio-wakeup;
 status = "okay";
};

然后再修改kernel\drivers\net\wireless\Makefile和Kconfig,增加编译bcmdhd,为了方便调试我们先将驱动生成模块。

编译出来为模式:bcmdhd.ko,将编译出来的bcmdhd.ko push到/system/lib/modules下。下面开始相关的测试工作。

加载驱动模块,加载的过程中可能会报错,如果不是致命错误可以暂时不要理睬,进行下面步骤,如果出现致命错误,首先检查的kernel配置,其次检查模块和wifi相关
这几个脚的状态,比如电压等。最后查硬件布线等等。根据以往经验,可能硬件出现问题比较多,所以硬件设计一定要参考模块规格书。如果这都没有解决建议尝试到bcm官网下载相应的bin文件或者向厂商核实bin文件…

 
 insmod 	/system/lib/modules/bcmdhd.ko 	"firmware_path=/system/etc/wifi/fw_	bcmdhd.bin nvram_path=/system/etc/wifi/bcmdhd.cal"

开启wpa_supplicant

 
 /system/bin/wpa_supplicant -iwlan0 -Dnl80211 -c/etc/wifi/wpa_supplicant.conf -m/etc/wifi/p2p_supplicant.conf -puse_p2p_group_interface=1p2p_device=1 -e/data/misc/wifi/entropy.bin -g/data/misc/wifi/sockets/wpa_wlan0 -dd -B

开启后ps看一下是否wpa_supplicant进程存在,如果不存在下面的命令会提示无法连接的错误

wpa_cli -p/data/misc/wifi/sockets -iwpa_wlan0
如果一切都正常,那就来连接下wifi试试,测试连接无密码AP

 wpa_cli> IFNAME=wlan0 add_network
 wpa_cli> IFNAME=wlan0 set_network 0 ssid "CMCC" //0为add_network时显示的[network id]
 wpa_cli> IFNAME=wlan0 set_network 0 key_mgmt NONE
 wpa_cli> IFNAME=wlan0 enable_network 0
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶与花语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值