【问题标题】:Gumstix Overo wifi drops continouslyGumstix Overo wifi 不断掉线
【发布时间】:2013-12-23 15:14:36
【问题描述】:

我正在使用 Gumstix overo,过去很多天我都无法让我的 Wifi 正常工作。

我按照Gumstix Overo WifiOvero Wifi 的说明在/etc/network/interfaces 和/etc/wpa_supplicant.conf 中设置了正确的参数。

/etc/network/interfaces 文件:

# Wireless interfaces
auto wlan0
iface wlan0 inet dhcp
      pre-up wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf -B
      down killall -q wpa_supplicant

wpa_supplicant.conf:

ctrl_interface=/var/run/wpa_supplicant
    ctrl_interface_group=0
    update_config=1
    eapol_version=1
    ap_scan=1
    fast_reauth=1

    network={
            ssid="xxxxxx"
            proto=WPA
            key_mgmt=WPA-PSK
            pairwise=CCMP TKIP
            group=CCMP TKIP
            scan_ssid=1
            psk="xxxxx"
            priority=10
    }

设置并运行ifdown wlan0 && ifup wlan0 后,我不断收到此消息:


[1176.528778] cfg80211:调用 CRDA 更新世界监管域
[2155.687255] cfg80211:调用 CRDA 更新世界监管域
[1175.293609] cfg80211:调用 CRDA 更新世界监管域

我的iwconfig

lo        no wireless extensions.

wlan0     IEEE 802.11bg  ESSID:off/any  
          Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on

我的 lsmod 看起来像这样:

root@overo:~# lsmod

Module                  Size  Used by
libertas_sdio          16484  0 
libertas               99993  1 libertas_sdio
firmware_class          6920  2 libertas_sdio,libertas
ipv6                  252525  22 
cfg80211              172644  1 libertas
rfkill                 17524  3 cfg80211
lib80211                5138  1 libertas
mt9v032                 7169  1 
omap3_isp             132270  0 
v4l2_common             8681  2 omap3_isp,mt9v032
ads7846                10528  0 
videodev               98880  3 omap3_isp,mt9v032,v4l2_common
media                  12853  3 omap3_isp,mt9v032,videodev

我正在使用从 https://github.com/gumstix/Gumstix-YoctoProject-Repo 克隆的 gumstix 的 yocto 项目

如果我能在我做错的地方得到任何输入,那将是很大的帮助。

【问题讨论】:

    标签: embedded-linux wifi bitbake gumstix


    【解决方案1】:

    wifi 掉线的原因是网络管理器。通过禁用它,我们可以运行 ifconfigiwconfig 而不会受到 NetworkManager 的任何干扰。

    或者另一种解决方法是非常成功的:

    在打开正确映像的 SD 卡后,不要卸载分区。

    安装自定义 systemd 服务

    要在启动时调出无线接口,您需要在 microSD 卡上创建并安装自定义 systemd 服务。

    • 在rootfs分区,新建一个服务脚本:

      $sudoedit /media/rootfs/etc/systemd/system/network-wireless@.service

    • 将以下内容复制并粘贴到文件中:

      Description=Wireless network connectivity (%i)
      Wants=network.target
      Before=network.target
      BindsTo=sys-subsystem-net-devices-%i.device
      After=sys-subsystem-net-devices-%i.device


      [Service]
      Type=oneshot
      RemainAfterExit=yes


      ExecStart=/sbin/ifconfig %i up
      ExecStart=/usr/sbin/wpa_supplicant -B -i %i -c /etc/wpa_supplicant.conf
      ExecStart=/sbin/dhclient %i
      RestartSec=1min
      Restart=on-failure


      ExecStop=/sbin/ifconfig %i down


      [Install]
      WantedBy=multi-user.target


    保存此文件。

    • 因为我们是在开发机器上编辑这些文件,所以启用服务的正常 systemd 方法 (systemctl) 将不起作用。要启用我们的新服务:

      ~ 进入根文件系统的multi-user.target.wants目录:

      $cd /media/rootfs/etc/systemd/system/multi-user.target.wants/

      ~创建一个符号链接以启用服务:

      Overo 系列 COM

      $sudo ln -s ../network-wireless@.service network-wireless@wlan0.service

    最后,编辑wpa_supplicant配置文件:

    $sudoedit /media/rootfs/etc/wpa_supplicant.conf
    

    将其更改为如下所示:

    network={
        ssid="Your Network's SSID"
        psk="Your WPA2 Passkey"
    }
    

    保存文件。

    卸载 microSD 卡上的分区。

    SSH 进入您的系统

    1) 如果你不知道 ip $ssh root@overo.local
    2) 如果你知道IP地址$ssh root@192.xx.xx.xx.local

    【讨论】:

    • 我必须添加ExecStart=/usr/sbin/rfkill unblock wlan。对于 oneshot 服务,您不能指定 Restart=no 以外的值。另一个注意事项:我必须在我的特定嵌入式 Linux 上使用 /sbin/udhcpc -i %i
    猜你喜欢
    • 1970-01-01
    • 2014-08-22
    • 2020-03-24
    • 2016-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多