请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:WL1801MOD Thread 中讨论的其他器件:WL1801、 WL1271
您好!
我们尝试了以下博客中提供的说明:
但 构建脚本 链接不可用于构建内核。
请指导我们以 BeagleBone Black 构建 wl1801模块的驱动程序模块。
谢谢
Premjith
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
尊敬的 Saurabh:
我们按照您对4.19内核的建议尝试了树内驱动程序。 但在重新对 SDIO_WRITE 进行分级时会出现一些错误、如下所示
[16.805487] wlcore:启动 cmd 角色启用错误 [18.493756] wl1271_SDIO mmc1:0001:2:SDIO 写入失败(-110) [52.347056] wl1271_SDIO mmc1:0001:2:SDIO 写入失败(-110) [58.533519] wlio 模板 :21201:2.4GHz SDIO 写入失败
我们使用的是 WL1801MOD TI 模块。
请参阅内核启动日志:
U-Boot SPL 2019.04脏污(2019年7月24日- 14:28:21 +0530) 正在尝试从 EXT4的 MMC1加载环境启动... **找不到文件/boot/uboot.env ** 无法从 mmc0:1读取“/boot/uboot.env”** U-Boot 2019.04不干净(2019年7月24日-14:28:21+0530) CPU:AM335X-GP rev 2.1 I2C:就绪 DRAM:512 MIB 与驱动程序“omap_hsmmc”不 匹配驱动程序“omap_hsmmc'不匹配 重置源:找不到某些驱动程序 发生全局热 SW 复位。 复位源:发生上电复位。 RTC 32KCLK 源:外部。 MMC:OMAP SD/MMC:0、OMAP SD/MMC:1 正在从 EXT4加载环境... **找不到文件/boot/uboot.env ** 无法从 mmc0:1读取"/boot/uboot.env ** 板:BeagleBone Black 未设置。 验证第一个电子保险丝 MAC BeagleBone Black: BeagleBone:Cape EEPROM:I2C_probe:0x54: BeagleBone:Cape EEPROM:I2C_probe:0x55: BeagleBone:Cape EEPROM:I2C_probe:0x56: BeagleBone:Cape EEPROM:I2C_probe:0x57: net:eth0:MII mode cpsw:nLobote_board.[35bote_] 在 电路板上按 ABORT = 3秒以进行中止 Board_rev=[00A6]…… 切换到分区#0、确定 mmc0是 器件0上的当前器件 SD/MMC 切换到分区#0、确定 mmc0是当前器件 扫描 MMC 0:1... GPIO:引脚56 (GPIO 56)值为0 GPIO:引脚55 (GPIO 55)值为0 GPIO:引脚54 (GPIO 54)值为0 GPIO:引脚53 (GPIO 53)值为1 切换到分区#0、确定 mmc0是当前器 件 GPIO: 引脚54 (GPIO 54)的值为1 ,正在检查:/uEnv.txt…… 正在检查:/boot.scr... 正在检查:/boot/boot.scr ... 正在检查:/boot/uEnv.txt ... GPIO:引脚55 (GPIO 55)值为1 2665字节从 /boot/uEnv.txt 加载的30ms (85.9 KiB/s)环境 中读取检查/boot/uEnv.txt... 中是否设置了 uname_r GPIO:引脚56 (GPIO 56)值为1 正在运行 uname_boot... 正在加载/boot/vmlinuz-4.19.19-bone-rt-r21 ... 在520ms (14 MIB/s) 内读取的7627264字节调试:[ENABLE_UBOOT_叠加 层=1]... 调试:[enable_uboot_cape_universal=]... 调试:[uBoot_base_dtb_univ=AM335x-bonebblack-uboot.dtb]... uBoot_overlays:[uBoot_base_dtb=AM335x-bonebblack-uboot.dtb]... uBoot_overlays:切换也是:dtb=AM335x-bonebblack-ubboot.dtb... 正在加载/boot/dtbs/4.19.19-bone-rt-r21/am335x-boneblack-uboot.dtb ... 在63ms (807.6 KiB/s) 内读取的52149字节 uboot_overlays:[FDT_buffer=0x60000]... uBoot_overlays:正在加载/lib/firmware/BB-UART1-00A0.dtbo ... 在219ms (3.9 KiB/s) 内读取的1075字节 uboot_overlays:正在加载/lib/firmware/BB-BONE-WL1837-00A0.dtbo…… 382ms (7.8 KiB/s) 内读取的3437字节 uboot_overlays:/lib/firmware/BB-BONE-eMMC1-01-00A0.dtbo /boot/uEnv.txt 禁用[disable_uboot_overlay_eMMc=1]... uBoot_overlays:/boot/uEnv.txt 禁用的[/lib/firmware/BB-HDMI-TDA998x-00A0.dtbo 的 uBoot 加载[disable_uboot_overlay_video=1]... uBoot_overlays:/boot/uEnv.txt 禁用[disable_uboot_overlay_adc=1]...的[/lib/firmware/BB-ADC-00A0.dtbo UBoot 加载 uBoot_overlays:正在加载/lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo ... 在907ms (2.9KiB/s) 内读取3513个字节 uboot_overlays:将[ENABLE_UBOOT_CAP_UNIVALUE=1]添加到/boot/uEnv.txt 以启用... 正在加载/boot/initrd.img-4.19.19-bone-rt-r21 ... 3804243字节在281ms (12.9 mB/s) 内读取调试:[console=ttyO0、115200n8 bone_capemgr.enable_PartNo=BB-UART1 bon_capemgr.uboot_capemgr_enable=1 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait_pool=1M net.ifnames=0=bvtor_quiet video=0=0=60_vtor_quiet video=0=0=vtor_quo=60_vor_video=vor.@/dev/fb0 调试:[bootz 0x82000000 0x88080000:3a0c53 88000000]... ###平展设备树 blob (88000000) 使用0x88000000的 FDT blob 启动 将 Ramdisk 加载到8fc5f000,结束8ffc53... 正在 将设备树加载到8fbee000,结束8fc5efff... 确定 启动内核... [0.000435] timer_probe:找不到匹配的计时器 [0.218124] L4_wkup_cm:clk:0010:0:无法禁用 [0.614256] wkup_m3/IPC 44e11324.wkup_m3/ipc:无法获取 rproc 句柄 [0.812225] omap_volte_late_init:电压驱动器支持未添加 到清理内核模块[146192/191520][9912199912]无法启动内核模块、无法加载到清理内核模块[146194912199912] 有关详细信息、请参阅'stemctl status systemd-modules-load.service'。 [ OK ] started Create list of required sta…vice node for the current kernel.([确定]已开始为当前内核创建所需的 st [确定]已开始重新装载根和内核文件系统。 正在启动加载/保存随机种子... 正在启动 udev 冷插拔所有设备... 正在开始在/dev/中 创建静态设备节点... 正在安装保险丝控制文件系统... 正在开始应用内核变量... 正在安装配置文件系统... [确定]安装的保险丝控制文件系统。 [确定]已挂载配置文件系统。 [确定]已启动日志服务。 [确定]已开始加载/保存随机种子。 [确定]已开始在/dev/中 创建静态设备节点。 [确定]已开始应用内核变量。 [确定]已达到目标本地文件系统(预)。 [确定]已到达目标本地文件系统。 正在启动提升网络接口... 正在启动 udev 内核设备管理器... 正在开始将日志刷新到持久存储... [确定]已开始将日志刷新到持久存储。 正在开始创建易失性文件和目录... [确定]已开始创建易失性文件和目录。 [确定]已启动 udev 内核设备管理器。 正在开始更新 utmp 关于系统引导/关机... 正在启动网络时间同步... [确定]已开始更新关于系统引导/关机的参数。 [确定]已开始网络时间同步。 [确定]已同步达到目标系统时间。 [确定]已启动 udev 冷插拔所有设备。 [确定]已达到目标系统初始化。 [确定]开始每日清理临时目录。 [确定]达到目标计时器。 [ OK ]正在收听 D 总线系统消息总线插座。 [确定]侦听 Avahi mDNS/DNS-SD 堆栈激活套接字。 [确定]已达到目标套接字。 [确定]已到达目标基本系统。 [确定]启动了 D-Bus 系统消息总线 正在启动连接服务... 正在启动通用板... 正在启动电话服务... 正在启动 LSB:加载启用 cpufreq 缩放所需的内核模块... 正在启动 DUN 服务... 正在启动 LSB:在启动时启动 busybox udhcpd ... 正在启动 BB WL18xx wlan0服务... [确定]启动常规后台程序处理守护程序。 正在启动系统日志服务... 正在启动登录服务... 正在启动 Avahi mDNS/DNS-SD 堆栈... 在 PPP…关闭之前启动 Restore /etc/resolv.conf I μ s ... [确定]已启动系统日志服务。 [确定]已开始提升网络接口。 [确定]如果在 PPP 链路关闭之前…,则已开始恢复/etc/resolv.conf。 [确定]已启动 BB WL18xx wlan0服务。 [确定]启动 LSB:在启动时启动总线框 udhcpd。 [确定]已启动电话服务。 [确定]启动 DUN 服务。 [确定]已启动连接服务。 [确定]启动 Avahi mDNS/DNS-SD 堆栈。 [确定]已到达目标网络。 正在启动允许用户会话... 正在启动 OpenBSD Secure Shell 服务器... 正在启动高性能 Web 服务器和反向代理服务器... [确定]到达的目标网络处于联机状态。 启动/etc/rc.local... 正在启动 LSB:高级 IEEE 802.11管理守护程序... [确定]已启动允许用户会话。 [确定]启动 LSB:高级 IEEE 802.11管理守护程序。 [确定]启动登录服务。 正在启动主机名服务... 正在启动 WPA 请求程序... [ OK ] started LSB:加载启用 cpufreq 缩放所需的内核模块。 正在启动 LSB:设置 cpufreq 内核参数... [确定]已启动 OpenBSD Secure Shell 服务器。 [确定]启动 WPA 请求程序。 [确定]已启动主机名服务。 [ OK ] started LSB:设置 cpufreq 内核参数。 [确定]启动了高性能 Web 服务器和反向代理服务器。 [确定]找到设备/dev/ttyS0. 正在停止 LSB:在引导时启动 busybox udhcpd ... [确定]停止 LSB:在引导时启动总线框 udhcpd。 正在启动 dnsmasq -轻量级 DHCP 和高速缓存 DNS 服务器... [确定]启动 dnsmasq -一种轻量级 DHCP 和高速缓存 DNS 服务器。 [确定]已到达目标主机和网络名称查找。 [13.604002] L4_PER_cm:clk:00d4:0:无法启用 [确定]侦听加载/保存射频终止开关状态/dev/rfkill 观察。 [确定]找到设备/dev/ttyGS0. 正在启动加载/保存射频终止开关状态... [确定]已启动加载/保存射频终止开关状态。 [16.805487] wlcore:启动 cmd 角色启用错误 [18.493756] wl1271_SDIO mmc1:0001:2:SDIO 写入失败(-110) 有关详细信息、请参阅'stemctl status rc-local.service'。 [确定]已在 ttyGS0上启动串行 Getty。 [确定]已在 tty1上启动 Getty。 [确定]已在 ttyS0上启动串行 Getty。 [确定]达到目标登录提示。 [确定]已启动通用板启动。 正在启动 BB WL18xx 蓝牙服务... [确定]已启动 BB WL18xx 蓝牙服务。 [确定]已达到目标多用户系统。 [确定]已到达目标图形界面。 正在开始更新 utmp 关于系统运行级别更改... [确定]已开始更新关于系统运行级别更改的参数。 cdac 登录:[52.347056] wl1271_SDIO mmc1:0001:2:SDIO 写入失败(-110) [58.533519] wlcore:错误2.4GHz 探测请求模板失败 [60.202113] wl1271_SDIO mmc1:0001:2:SDIO 写入失败(-110) 包含 在 Debian GNUS0上的最后一个免费 Linux 软件:2019年10月3:09:41 每个程序的确切分发条款在/usr/share/doc /*/ copyright 中的单个文件中进行了说明。 在 适用法律允许的范围内、Debian GNU/Linux 绝对不提供任何保证。 Debian@cdac:~$ sudo /opt/scripts/tools/version.sh git:/opt/scripts /dev/mmcblk0 /lib/firmware/BB-BONE-WL1837-00A0.dtbo:[38ce81fcdafad0892b6c485acd4e9a2245dfb07A] EEPROM:[A335BNLT00A60220AEBAS01K]模型:[TI_AM335x_BeagleBone Black 覆盖:[microDC (push-button) UCCK_disable_boot_overlay]:[uelap_u20_overlay_overlay_unifors=uCD_unix][TIv_uel_uel_en_u20_overlay]:[TI_uCD_overlay_over_en_overlay_en_en_uel=uel=u_overlay_en_en_en_en_ulk_ueboot_over_overlay_un_uel=u20_overlay_en_en_en_overlay_uel=ueboot_overlay_uel=u20u_en_en_inap_un_uel=uel=u20_ueboot_over /lib/firmware/AM335X-PRU-RPROC-4-14-TI-00A0.dtbo /lib/firmware/BB-UART1-00A0.dtbo ] pkg:[bb-cape 覆盖层]:[4.4.20190215.0-0rcneed0~Strand+20190215] pkg:[bb-wl18xx-firmware]:[1.20200420.1-0~Strand+20200424] pkg:[kmod] pkg:[23-2rcneed+1~ ~sexcludi+201717] pkg:[boti_connectivity:[200717] pkg:[rband-connectivity:[r20071005] pkg: Debian adm kmem 拨号 CDROM 软盘音频 dip 视频插件用户系统日志 i2c netdev GPIO PWM eQEP 蓝牙管理 sp i tisdk Weston-launch xenomai cloud9ide SecuGen] 命令行:[console=ttyO0、115200n8 bon_capemrotate.enable_PartNo=bi-UART1 bonstrature=g=gtran2=v0=gtrane64prefrom_g=gtramp=g=v0=v64pintran.g=g=g=g_unicle.trane64prefrom_g=g=g=g=v0=gtrane64prefrom_g=g=g=g=g=g=g=v0=v0=gtrunicle.trane64prefrom_g=g=g= @/dev/fb0 /dev/mmcblk0p1 142个引脚、大小568 dmesg | grep gpio-of -helper debian@cdac:~$[139.525516] wlcore:错误2.4GHz 探测请求模板失败 [141.237050] wlcore:错误超时等待硬件完成初始化
内核中使用的 DTS
// *版权所有(C) 2012 Texas Instruments Incorporated - http://www.ti.com/ * 此程序是免费软件;您可以根据 免费软件基金会*发布的 GNU 通用公共许可证版本2的条款重新分发和/或修改*。 */ /DTS-v1/; /plugin/; #include #include #include /{ compatible ="ti,Beaglebone-blue"、"ti,Beaglebone-blue"; //标识*/ 器件型号="BB-bone-WL1837"; version ="00A0"; //陈述此 Cape 使用的资源*/ 独占使用= //引脚头使用*/"P8.25" 、/* SDPIO: * 8.24/ *"SDPIO:/8.5"、* SDPIO:/8.6/* 8.24"、*:/8.5*Data3 */"P8.21" ,/* SDIO:CLK */"P8.20" ,/* SDIO:cmd */ "GPIO1_20",/* EMMC ResetN */"GPIO0_7" ,/* WL_EN */"GPIO0_27" ,/* WL_IRQ */ /* 在"mmbagle/* baged bes//proc/device-tree/chosen/overlays 下使用"mmbagle/ ip"; @ * bapers/*"mmbagle/ ip" __overlay__{ 选择的{ 覆盖层{ BB-Bone-WL1837-00A1 =__TIMESTAMP__; } ; }; };};}; /* 将 Cape 使用的引脚从引脚复用帮助器中释放出来。 // 片段@1{ target =<&OCP>; __overlay__{ p9_21_pinmux{status ="disabled";};// pinmux:gpio0_3 BT_EN*/ p8_21_pinmux{status ="disabled";};// pinmux_1:gpinmc8_cl8 ;}/pinmux =禁用* pinmc8_8; }GPMC_ad0.mmc1_data0 */ P8_24_pinmux{status ="disabled";};* P8_24:GPMC_ad1.mmc1_data1 */ P8_05_pinmux{status ="disabled";};* P8_05:GPMC_ad2.mmc2* = pin8_status/pin8_pinmux; }"pin8_02_pinmux =禁用* pin8_02_pinmux = pinmux;}* pin8_02_pin8_02_pinmux = pin8_02_pin8_02_pinmu_02_pinmu_02_pinmu_02_pin8_3_015_pinux;}*/* P8_17:GPIO0_27 WL_IRQ * ; }; 片段@2{ target =<&am33xx_pinmux>; __overlay_{ bb_mmc2_pines: pinmux_bb_mmc2_pinc2_pulintr-single= < bon_p8_21 (PIN_mc8_mc20_mc20_pullu_mc8_mc20_pullup ) *(PIN_mc8_mc8_mc8_mc20_mc20_mc20_mc20_pul_mc20_pul_mc20_mc20_pul_mc20_mc20_pulu_m8_mc20_mc20_mc20_mctru_pul_mc20_mc20_pulu_m8_mc20_pulu_m8_mc20_m8_mc20_mc20_pul_mc20_mctru_mc20GPMC_ad1.mmc1_data1 */ bon_P8_05 (PIN_INPUT_PULLUP | MUX_MODE1)// P8_05:GPMC_ad2.mmc1_data2 */ bon_P8_06 (PIN_INPUT_PULLUP)/* P8_PMC_P20_PMC_INP20_PMC_INP20_PIN_P20_PMC_P20_PMB_PMB_P20_PMC_PMB_P20_PMC_P20_PMB_PMC_P20_PMB_PMC_P20_PMB_PMC_P20_PMC_PMB_PMB_PMC_P20_PMC_PMB_P20_PMC_P20_PMC_PIN_PIN_P20_PIN_P20_PIN_P20_PIN_P20_PMB_PMC_PIN_P20_PIN_P20_PMB_PMC_P20_PMC_PIN_P20_PIN_PIN_PIN_ GPMC_ad0.mmc1_data0 */ bon_P8_24 (PIN_INPUT 下拉| MUX_MODE7)/* P8_24:GPMC_ad1.mmc1_DAT1 */ bon_P8_05 (PIN_INPUT 下 拉| MUX_MODE7)/* P8_AD015* ****/ MMC_065_3* GPMC_065_PM8_032_DMOS_065****/ IM_032_PHON_DMOS_065_065_MR_032_MR_032_MR_CL_032_PM_MR_032_PM_PM_PM0****/ PUT (PIN_PM8_PM8_PM065_GPIOs // bb_wlan_pins:pinmux_bb_wlan_pins{ pinctrl-single、pins =< bone_p9_42A (PIN_INPUT 上拉| MUX_MODE7)// P9_42:GPIO0_7 WL_EN */ bon_P8_17 (PIN_OUTPLUG_PULLUP | MUX_MODE7 )*/GPIO0_7 */GPIOR_8 > GPIOR_7 */ GPIOR_0_GPIOR_17)*/启用 GPIOR_8。 // bb_WLAN_PINS_SLEEP:pinmux_bb_WLAN_PINS_SLEEP{ pinctrl-single、pins =< bone_P9_42A (PIN_INPUT_PULLUP | MUX_MODE7)// P9_42:GPIO0_7 片段_EN */ IRQ_P8_17 (PIN_OUTPUT_PULLUP | MUX 7);* P9_7_BON_7; }*@0_MOWL_OWL_7;/TOWL_7! _overlay__{ wlan_en_reg:fixedregulator@1{ compatible ="reguler-fixed"; reguler-name ="wlan-en-regulator " ;reguler-min-microvolt =<1800000>;reguler-max-microvolt =<1800000>;// wlan_fragment_EN *=<&gpio0 7 0>; //启用 WLAN 卡特定 路径;}4@tage-delay;//启用 WLAN 专用通道; _overlay__{ Kim{ compatible ="Kim"; nshutdown _gpio =<3>;// Bank0、pin3 */ dev_name ="/dev/ttyS1; flow_Cntrl =<1>; baud _rate =<3000000>; }; }; }; 片段@5{ target-path="/"; __overlink__{ btwilink{ compatible ="btwilink"; }; }; 片段 @6{ target =<&mmc2>; __overlay_{ status ="oke"; VMMC-supply =<&WLAN_en_reg>; bus-sep-names =<&mctrlense" ;默认值="pinctrl"; pinctrl-0 =<&bb_mmc2_pins &bb_wlan_pines>; pinctrl-1 =<&bb_mmc2_pins_sleep &bb_wlan_pines_sleep>; ti、不可拆卸; ti、needs 特殊 hs-handling; cap-power-off-card; 保持通电暂停; #address-cells =<1>; #size-cells =<0>; wlcore:wlcore@0{ compatible ="ti、wl1801"; reg =<2>; interrupt-parent =<&GPIO0>; interrupts =<27 1 /* IRQ_TYPEE_EDGE_RISING */>; }; }; };};};};} ;
您好,
""wl1271_sdio mmc1:0001:2: sdio write failed (-110)
可能与 SDIO 故障有关。 您可以尝试将 SDIO/MMC 总线时钟速度降低到一个低值,例如 DTS 文件中的1MHz 并重新测试。 此外、探测 wlan_en 和 wlan_IRQ 以确认 wlan_en 保持启用状态、并在固件下载后将 wlan_IRQ 置为有效
谢谢
Saurabh