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.

[参考译文] Linux/WL1837MOD:内核如何理解它是 Wi-Fi 模块、而不是 SD 卡?

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/817212/linux-wl1837mod-how-does-the-kernel-understand-that-it-is-the-wi-fi-module-but-not-a-sd-card

器件型号:WL1837MOD
Thread 中讨论的其他器件:WL1837

工具/软件:Linux

你好

我们的电路板具有 wl1837、通过1.8V - 3.3V 变压器连接到 vyrid vf6xx 的 esdhc0。
我的映像基于 Timesys Linux 内核3.13。
我们不使用蓝牙、因此蓝牙不存在设备树。
启动时、内核不会将 wlan_enable 设置为高级和
给我"sdhci-esdhc-imx: probe of 400b1000.esdhc failed with error -22"。
在我看来、内核不理解它是 Wi-Fi 模块。

内核如何理解它是 Wi-Fi 模块而不是 SD 卡?
什么是错误的、设备树或.config 文件?

我将其放入设备树中:

在 vf610_wifi.dtsi 中:

         esdhc0:esdhc@400b1000{
            兼容="FSL,imx53-esdhc";
            REG =<0x400b1000 0x1000>;
            中断=<27 IRQ_TYPE_LEVEL_HIGH_>;
            时钟=<&CLKS VF610_CLK_IPG_BUS>、
               <&CLKS VF610_CLK_platform_BUS>、
               <&CLKS VF610_CLK_ESDHCP0>;
            时钟名称="IPG"、"AHB"、"PER";
            STATUS ="禁用";
         };

我的 vf610_wifi.dtsi 文件基于用于 TWR-VF65GS10的 vf610.dtsi 和 vfxxx.dtsi。
我从 vfxxx.dtsi 获取该文件。



在 vf610-wify_min.dts 中:

(我的 vf610-WIFI_min.dts 文件基于用于 TWR-VF65GS10的 vf610-twr.dts、
但 vf610-twr.dts 中没有针对 wi-fi 的设备树)

       wlan_en_reg:fixedregator@2{

          兼容="稳压器固定";
          reguler-name ="wlan-en-regulator ";
          电脑控制器-最小-微伏=<3300000>; /*我的处理器不支持1.8V。*/
          reguler-max-microvolt =<3300000>;/*我的处理器不支持1.8V。*/
          GPIO =<&GPIO1 25 0>; /* WLAN_ENABLE、PORT0[25]、PTB3*/
          启动延迟-us =<70000>;
          使能端高电平有效;

       };

esdhc0{(&E)
   状态="正常";
   VMMC-supply =<&wlan_en_reg>;
   总线宽度=<4>;
   pinctrl-names ="default";
   pinctrl-0 =<&pinctrl_esdhc0 &pinctrl_wlan_pines>;
   TI、不可拆卸;
   TI、需要特殊的 hs 处理; //我不确定是否有必要!!!
   电容断电卡;
   暂停时保持供电;
   #address-cells =<1>;
   #size-cells =<0>;
   wlcore:wlcore@0{
       兼容="ti、wl1837";
       reg =<2>;
       interrupt-parent =<&GPIO1>; // WLAN_IRQ、Port1[31]、PTD31
       中断=<31 IRQ_TYPE_EDGE_RISING >;
   };
};

       pinctrl_wlan_pins:wlan_pins{
           FSL、引脚=<
               VF610_pad_PTB3_GPIO_25 0x2182 /* wlan_enable*/
               VF610_PAD_PTD31_GPIO_63 0x22ed /* WLAN_IRQ*/
           >;
       };

      pinctrl_esdhc0:esdhc0grp{
         FSL、引脚=<
               VF610_pad_PTC0_ESDHCP0_CLK     0x31ef
               VF610_pad_PTC1_ESDHCP0_CMD     0x31ef
               VF610_pad_PTC2_ESDHCP0_DAT0    0x31ef
               VF610_pad_PTC3__ESDHCP0_DAT1    0x31ef
               VF610_pad_PTC4_ESDHCP0_DAT2    0x31ef
               VF610_PAD_PTC5_ESDHCP0_DAT3    0x31ef
         >;
      };


随附 vf610_wifi.dtsi 和 vf610-WIFI_min.dts 文件。
wi-fi 和 wl1837驱动程序和固件的设置位于随附的.config 文件中。

我之前没有写入设备树。

谢谢
e2e.ti.com/.../TI_5F00_wl1837.tar.gz

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

    大家好

    1. wlan_en 设置是否会因为旧的 wlcore 和 wl1837驱动程序而失败?

    我可能需要更新驱动程序?

    2.我们不使用蓝牙,因此蓝牙不存在设备树。

    这是不会将驱动程序和固件加载到 wl1837模块的原因吗?

    谢谢。

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

    您好!  

    我建议您使用构建实用程序将最新的驱动程序和其他无线二进制文件导回至您的内核版本: http://processors.wiki.ti.com/index.php/WL18xx_System_Build_Scripts 

    " compatible ="ti,wl1837";用于查找正确的兼容驱动程序。 就我所记得的,在较旧的驱动程序中,我们使用了'wlcore'而不是'wl1837'。 您可以尝试更改此项并查看其是否解决了问题。 更好的选择是使用反向端口更新驱动程序。  

    Saurabh

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

    你好,Saurabh

    我要这么做。 我将编写 if will be problem.

    谢谢。

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

    大家好

    我构建 WL18xx 软件的步骤:

    1
    我设置了"设置主机环境"中的所有工具(WL18xx WiFi 构建过程、链接 processors.wiki.ti.com/.../WL18xx_WiFi_Build_Process、exseption 仅为 lib32bz2-1.0。
    "sudo apt-get install lib32bz2-1.0"命令未找到此类数据包

    2.
    我从"为 Linux 内核创建配置文件(.config)"(WL18xx 平台集成指南、链接 processors.wiki.ti.com/.../WL18xx_Platform_Integration_Guide)中设置所有构建内核选项。
    我正在使用 cfg80211/mac80211的本机内核支持、并设置 CONFIG_CFG80211=m、CONFIG_mac80211=m
    要设置"config_wireless_ext=y"、我设置"config_hostap=y"。
    此选项也会设置以下选项:
    CONFIG_WEXT_CORE=y
    CONFIG_WEXT_PROC=y
    CONFIG_WEXT_SPY=y
    CONFIG_WEXT_PRIV=y

    CONFIG_LIB80211=y
    CONFIG_LIB80211_crypt_WEP = y
    CONFIG_LIB80211_crypt_CCMP=y
    CONFIG_LIB80211_crypt_TKIP=y

    3.
    Lyudmila@Lyudmila-linuxmint ~$ pwd
    /home/lyudmila
    Lyudmila@Lyudmila-linuxmint ~$ cd wl8-build"
    Lyudmila@Lyudmila-linuxmint ~/wl8-build $ git clone git://git.ti.com/wilink8-wlan/build-utilites.git

    4.
    Lyudmila@Lyudmila-linuxmint ~/wl8-build $ cd build-utilites/
    Lyudmila@Lyudmila-linuxmint ~/wl8-build/build-utilites $CP setup-env.sample setup-env
    编辑 setup-env 文件:
    toolchain_path=/home/lyudmila/timesysMinPoint/twr_vf600/toolchain/bin
    ROOTFS=/home/lyudmila/wl8-build/fs
    kernel_path=/home/lyudmila/timesysMinPoint/twr_vf600/kernel-source/linux-3.13
    kernel_variant=3.13.9ts-armv7l
    cross_compile=armv7l-Timesys-linux-gnueabi-(来自 Timesys SDK)
    已附加 setup-env 文件。

    5.
    Lyudmila@Lyudmila-linuxmint ~/wl8-build/build-utilites $./build_wl18xx.sh init
    随附 wl18_init.log 文件。

    6.
    $./build_wl18xx.sh patch_kernel
     将 ROOTFS 路径更改为/home/lyudmila/wl8-build/fs
     使用用户定义的内核
    找到 Makefile。 内核版本设置为3.13.9。
      *****  仅在 不执行实际构建的情况下修补内核! *****  
    使用内核:/home/lyudmila/timesysMinPoint/twr_vf600/kernel-source/linux-3.13
    *****  *****
    WiFi 软件包构建成功

    7.
    构建我的内核:
    $ CD /home/lyudmila/timesysMinPoint/twr_vf600/kernel-source/linux-3.13
    $导出路径=/home/lyudmila/timesysMinPoint/twr_vf600/toolchain/ccache:/home/lyudmila/timesysMinPoint/twr_vf600/toolchain/bin:$path
    $ make ARCH=arm CROSS_COMPILE=armv7l-Timesys-linux-gnueabi- uImage -J12
    $ make ARCH=arm CROSS_COMPILE=armv7l-Timesys-linux-gnueabi-模块
    $ mkdir RFS
    $ make ARCH=arm CROSS_COMPILE=armv7l-Timesys-linux-gnueabi- install_MOD_path=/home/lyudmila/timesysMinPoint/twr_vf600/kernel-source/linux-3.13/rfs modules_install

    8.
    yudmila@Lyudmila-linuxmint ~/wl8-build/build-utilites $./build_wl18xx.sh update R8.7_SP3
    (从"步骤4:构建和更新"链接 processors.wiki.ti.com/.../WL18xx_System_Build_Scripts)
    随附 wl18_update.log 文件。

    此步骤以"Makefile: 98:***找不到任何支持的 libnl 版本的开发文件结尾。 停止。" 消息。
    在" /outputs/"文件夹。


    出什么问题了?

    可能在 lib32bz2-1.0中。  "sudo apt-get install lib32bz2-1.0"命令未找到此类数据包。

    其他信息:

    "$./build_wl18xx.sh init"执行结束时完全不正确: ????

    正在设置工具链
    -2019年7月09日12:44:00 - releases.linaro.org/.../gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf.tar.xz
    Распознаётся releases.linaro.org (releases.linaro.org)... 52.215.200.125
    Подключение к releases.linaro.org (releases.linaro.org)|52.215.200.125|:80 соединение установлено。
    запрос отправлен μ s。 Ожидание ответа…… 404未找到
    2019-07-09 12:44:01 ОШИБКА 404:未找到。


    bzip2:压缩文件意外结束;
       也许它已经损坏了?  *可能*原因如下。
    bzip2:器件的 ioctl 不合适
       输入文件=(stdin)、输出文件=(stdout)

    压缩文件可能已损坏。
    您可以使用-tvv 选项来测试此类文件的完整性。

    您可以使用`bzip2recover '程序尝试恢复
    来自损坏文件未损坏部分的数据。

    TAR:子级返回状态2
    tar:错误不可恢复:正在退出
    MV:не удалось выполнить stat для'/home/lyudmila/wl8-build/build-utilites/toolchain /*':Нет такого файла или каталога
    找到 Makefile。 内核版本设置为3.13.9。
    WiFi 软件包构建成功
    Lyudmila@Lyudmila-linuxmint ~/wl8-build/build-utilites $

    谢谢

    e2e.ti.com/.../wl8_2D00_build_2D00_logs.tar.gz

    谢谢

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

    其他信息:

    "$./build_wl18xx.sh init"的执行最终不是完全正确的:

    ???

    正在设置工具链
    -2019年7月09日12:44:00 - releases.linaro.org/.../gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf.tar.xz
    Распознаётся releases.linaro.org (releases.linaro.org)... 52.215.200.125
    Подключение к releases.linaro.org (releases.linaro.org)|52.215.200.125|:80 соединение установлено。
    запрос отправлен μ s。 Ожидание ответа…… 404未找到
    2019-07-09 12:44:01 ОШИБКА 404:未找到。


    bzip2:压缩文件意外结束;
       也许它已经损坏了?  *可能*原因如下。
    bzip2:器件的 ioctl 不合适
       输入文件=(stdin)、输出文件=(stdout)

    压缩文件可能已损坏。
    您可以使用-tvv 选项来测试此类文件的完整性。

    您可以使用`bzip2recover '程序尝试恢复
    来自损坏文件未损坏部分的数据。

    TAR:子级返回状态2
    tar:错误不可恢复:正在退出
    MV:не удалось выполнить stat для'/home/lyudmila/wl8-build/build-utilites/toolchain /*':Нет такого файла или каталога
    找到 Makefile。 内核版本设置为3.13.9。
    WiFi 软件包构建成功

    谢谢