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.

[参考译文] WL1801MOD:支持4.14内核驱动程序补丁脚本[BeagleBone black]

Guru**** 2390755 points
Other Parts Discussed in Thread: WL1801

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/914653/wl1801mod-support-for-4-14-kernel-driver-patching-scripts-beaglebone-black

器件型号:WL1801MOD
Thread 中讨论的其他器件:WL1801WL1271

您好!

我们尝试了以下博客中提供的说明:

https://processors.wiki.ti.com/index.php/WL1835_Cape_on_BeagleBone_with_MainLine_Kernel_Debian_Filesystem

构建脚本 链接不可用于构建内核。

请指导我们以 BeagleBone Black 构建 wl1801模块的驱动程序模块。

谢谢
Premjith

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    对于内核4.14、您应该能够使用树内 wilink8驱动程序。 编译实用程序脚本不会为此内核版本构建内核模块、因为它支持高达内核4.4的反向端口。 有关 debian 支持,您可能需要咨询 BeagleBone 支持论坛。

    谢谢

    Saurabh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 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