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:校准器不工作

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/631418/linux-wl1837mod-calibrator-not-working

器件型号:WL1837MOD

工具/软件:Linux

我正在尝试使用校准器工具、并收到以下错误消息:

# calibrator --debug wlan0 plt power_mode on
--调试:接收到的消息:
---------------- 开始 NetLink 消息-------------------------------------------------------
[NetLink 标头] 16个八位位组
.nlmsg_len = 68
.type = 2
.flags = 0 <>
.seq = 13174
.port = 264241396
[errormsg] 20个八位位组
.error =-95"不支持操作"
[原始消息] 16个八位位组
.nlmsg_len = 16
.type = 21 <0x15>
.flags = 5
.seq = 13174
.port = 264241396
------------------ 结束 NetLink 消息-------------------------------------------------------
命令失败:不支持操作(-95)

我已按照以下链接中描述的步骤操作: http://processors.wiki.ti.com/index.php/WL18xx_System_Build_Scripts#Build_Guide 

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

    我们已将您的帖子分配给相关工程师、并将很快回复您。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    更新:我已克隆包含校准器工具的存储库18xx-ti-utils。 我不确定在构建项目时是否正确包含这些工具。 它与 wl8-build (在其中下载了编译脚本)位于同一文件夹中、该文件夹是 buildomot/build (其中存储了 makefile)下的子文件夹。 以下是目录树的相关部分:

    构建
    μ├──构建
    μ├──主机
    ├──图像
    ├──Makefile
    ├──分段
    ├──目标
    └──wl8-build

    ├──18xx-ti-utils
    └──Build-utilites

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请在启用'NL80211_TESTMODE'的情况下构建内核、使其正常工作。

    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经做了。 我设置:"CONFIG_NL80211_TESTMODE=y"、然后运行:
    build_wl18xx.sh kernel_modules/
    build_wl18xx.sh 固件

    然后重新启动电路板。 我的问题仍未解决。 请注意、在发送校准器命令之前、我已经尝试设置"ifconfig wlan0 down"、但这也没有解决我的问题。

    我认为问题可能是该模块运行的校准器版本为0.72、此时它应该运行0.80。 但是、我无法确定如何更新版本、并确保其与电路板正确集成。 从我在线收集的内容中、我应该从 git repo 中查看最近的分支、然后将 wfconf 文件夹复制到电路板。 但我无法使其正常工作。

    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谦逊 您可以使用测试模式启用内核/模块尝试以下操作-
    a)使用"/usr/share/wl18xx/load_wlcore.sh "加载 WLAN 驱动程序
    b)禁用、"#ifconfig wlan0 down
    c)现在将器件置于 PLT 模式
    #calibrator wlan0 plt power_mode on
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    因此、我认为问题是我的目录"/usr/share/wl18xx 中没有文件。 我假设 built_wl18xx.sh 脚本中存在错误、该脚本不会在此处创建任何文件。 您知道这里的问题是什么吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您使用的是 TI AM 处理器、那么为什么不评估 TI SDK、即文件系统和内核二进制文件。 TISDK 具有所有需要的依赖项。
    我不确定是从构建实用程序还是单独推送 TISDK 文件系统中的 wlcore 加载/卸载脚本。

    root@AM335x-EVM:/usr/share/wl18xx cat load_wlcore.sh
    !/bin/sh

    如果! mount | grep debugfs >/dev/null;然后
    回显"安装 debugfs"
    mount -t debugfs none /sys/kernel/debug
    FI

    modprobe wl18xx
    modprobe wlcore_sdio

    root@AM335x-EVM:/usr/share/wl18xx
    root@AM335x-EVM:/usr/share/wl18xx cat unload_wlcore.sh
    !/bin/sh

    rmmod wlcore_sdio
    rmmod wl18xx
    rmmod wl12xx
    rmmod wlcore
    rmmod mac80211
    rmmod cfg80211
    rmmod 压缩

    killall wpa_supplicant
    killall hostapd
    root@AM335x-EVM:/usr/share/wl18xx
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我没有使用 TI AM 处理器、我正在使用 imx6。 您能否了解校准器功能需要哪些文件、以及如何推送这些文件?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Hari Nagalla]Humm.. 您可以使用测试模式启用内核/模块尝试以下操作-
    a)使用"/usr/share/wl18xx/load_wlcore.sh "加载 WLAN 驱动程序
    b)禁用、"#ifconfig wlan0 down
    c)现在将器件置于 PLT 模式
    #calibratorwlan0plt power_mode 打开

    我找到了这些脚本(您必须运行./build_wl18xx.sh clean),然后按照上述步骤操作。 我还将校准器版本更新为0.80。 我仍会遇到相同的错误、您能想到其他任何可能的原因吗?

    # ifconfig wlan0 down
    Wlcore:关闭
    # calibrator wlan0 plt power_mode on
    命令失败:不支持操作(-95)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这很奇怪。 您是否有其他工具- iw、wpa_supplicant 在您的平台上工作? 您的文件系统也是独立构建的吗? 我相信,你缺少一些关于 nl80211的图书馆。

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

    是的、其他工具正在工作、是的、文件系统是独立构建的。 如何检查是否有必要的库?

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

    我注意到"libnl"不是可用选项。 可能库安装不正确? 如果是、我如何解决这个问题?

    # libnl
    -sh:libnl:找不到

    此外、我看不到正在加载"compat"模块。

    # lsmod
    未被污染使用的模块大小
    wlcore_SDIO 6648 0
    wl18xx 79093 0
    wlcore 176730 1 wl18xx
    mac80211 337061 2 wl18xx、wlcore
    cfg80211 2355520 3 wl18xx、wlcore、mac80211
    CDC_ACM 16566 0
    RNDIS_HOST 6533 0
    USB_f_ACM 5200 0
    libcomposite 45279 1 USB_f_ACM
    configfs 23913 3 USB_f_ACM、libcomposite
    U_serial 9716 1 USB_f_ACM

    我希望这有助于诊断问题。 谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    libnl 不是可执行文件、因此无法从控制台进行检查、请键入它。 您可能需要尝试使用'trace'来查找正在调用的系统调用和库。

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

    您是指在启动时调用的库吗? 我无法在电路板上运行 strace。 我还尝试了 ldconfig。 以下是结果、以防这些信息有用:

    ldconfig:uClibc 版本
    /lib:
    libgcc_so.1 => libgcc_so.1
    libuid.so.1 => libuid.so.1.3.0
    libmount.so.1 => libmount.so.1.1.0
    libat原 子.so.1 => libat原 子.so.1.2.0
    libblkid.so.1 => libblkid.so1.1.0
    ld-uClibc.so.1 => ld-uClibc-1.0.26.so
    libc.so.0 => libubClibc-1.0.26.so
    /usr/lib:
    ldconfig:/usr/lib/libstdc +.so.6.0.22-gdb.py 不是共享库,正在跳过
    libpanel.so.6 => libpanel.so.6.0
    libgobject-2.0.SO.0 => libgobject-2.0.SO.0.200.2
    libnL-idiag-3.so.200 => libnL-idiag-3.so.200.25.0
    libstdc++.SO.6 => libstdc++.SO.6.0.22
    libexpat.so.1=> libexpat.so.1.6.6
    libdbus-1.so.3 => libdbus-1.so.3.14.13
    libnL-xfrm-3.so.200 => libnL-xfrm-3.so.200.25.0
    libiptc.so.0=> libiptc.so.0.0.0
    libffi.so.6 => libffi.so.6.0.4
    libnL-NF-3.SO.200 => libnL-NF-3.SO.200.25.0
    libreg.so => libreg.so
    libcheck.so.0 => libcheck.so.0.0.0
    libicalss.so.1 => libicalss.so.1.0.1
    libicy.so.1 => libic.so.1.0.1
    libpcrecpp.so 0 => libpcrecpp.so 0.0.1
    libnL-3.so.200 => libnL-3.so.200.25.0
    libpython2.7.SO.1.0 => libpython2.7.SO.1.0
    libz.so.1 => libz.so.1.2.11.
    libip6tc.so.0 => libip6tc.so.0.1.0
    libdbus-glib-1.so.2 => libdbus-glib-1.so.2.3.3
    libicalvcal.so.1 => libicalvcal.so.1.0.1
    libcur.so.4 => libcur.so.4.4.0
    libcharset.so.1 => libcharset.so.1.0.0
    libbluetooth.SO.3 => libbluetooth.SO.3.13.0
    libgthread-2.0.SO.0 => libgthread-2.0.SO.0.200.2
    libxtables.so.12 => libxtables.so.12.0.0
    libform.so.6 => libform.so.6.0
    libnL-route-3.so.200 => libnL-route-3.so.200.25.0
    libnL-genl-3.so.200 => libnL-genl-3.so.200.25.0
    libglib-2.0.SO.0 => libglib-2.0.SO.0.200.2
    libmenu.so.6 => libmenu.so.6.0
    libiconv.so.2 => libiconv.so.2.6.0
    libcrypto.so.1.0.0 => libcrypto.so.1.0.0
    libgio-2.0.SO.0 => libgio-2.0.SO.0.200.2
    libpcreposx.so.0 => libpcreposx.so.0.0.5
    libhistory.so.7 => libhistory.so.7.0
    libssl.so.1.0.0 => libssl.so.1.0.0
    libcollectdclient.so.1 => libcollectdclient.so.1.0.0
    libgmodule-2.0.SO.0 => libgmodule-2.0.SO.0.200.2
    libncurses。so.6 => libncurses。so.6.0
    libip4tc.so.0 => libip4tc.so.0.1.0
    libreadline.so.7 => libreadline.so.7.0
    libnL-CLI-3.SO.200 => libnL-CLI-3.SO.200.25.0
    libgcrypt.so.20 => libgcrypt.so.20.1.9
    libgpg-error.so.0 => libgpg-error.so.0.22.0
    libsensors.so.4 => libsensors.so.4.4.0
    libasound.so.2=> libasound.so.2.0.0
    libpcre.so.1 => libpcre.so.1.2.9
    /usr/X11R6/lib:
    ldconfig:正在跳过/usr/X11R6/lib:没有此类文件或目录


    wlconf 是否有问题? 我正在检查此主题 https://e2e.ti.com/support/wireless_connectivity/wilink_wifi_bluetooth/f/307/t/317415

    但 Wiki 链接到不再存在的页面。 我可能还需要执行另一个步骤?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的目标文件系统可能没有"跟踪"实用程序。 TISDK 构建具有"跟踪"。
    您还可以验证系统中是否设置了 NL80211_TESTMODE。 从目标控制台执行以下操作以检查-
    # zcat /proc/config.gz | grep NL80211_TESTMODE

    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您说得对、它未启用。 我使用的是内核版本4.1.15。 我在文件:build-utilites/configuration/kernel_4.1.config 中设置'config_NL80211_TESTMODE=y'。 我应该在哪个文件中进行更改?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在构建内核和模块时、您需要确保在".config"文件中设置此标志。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经在编译脚本复制到.config 的文件中设置了此设置、但出于某些原因、在引导时不会设置更改。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您使用的是 TISDK 构建系统还是您自己的系统?
    请检查 SDK 构建脚本。 他们可能正在从 SDK 中的某个目录复制现成的 defconfig 文件、以在开始构建之前对您的更改进行保护。
    您需要编辑此文件。

    谢谢