it-swarm.com.de

"Schnittstelle wlan0 Flags (UP) konnte nicht gesetzt werden: Eingabe- / Ausgabefehler" RT3290

Ich habe ein sehr rätselhaftes Problem mit meiner WLAN-Karte auf Ubuntu festgestellt. Nach dem Neustart ist es immer deaktiviert und kann nur durch Anhalten oder Herunterfahren des Laptops wiederhergestellt werden. Der Status laut Network Manager ist "Gerät nicht bereit". Dies geschieht konsequent.

Einige Hintergrundinformationen zu meinem System:

  • Der Laptop ist HP 350 G1.
  • Die WLAN-Karte ist der berüchtigte Ralink RT3290. (Wenn ich gewusst hätte, wie viel Ärger ich damit haben würde, hätte ich es nie gekauft).
  • Ubuntu ist das neueste LTS 16.04, das kürzlich aktualisiert wurde.
  • Kernel ist 4.4.9-040409-generic (war 4.4.0-22-generic vor dem Upgrade von der Hauptleitung - kein Unterschied für WiFi).

Vor dem Upgrade der Distribution verwendete ich eine Version des Treibers rt3290sta/2.6.0.0 (aus dem Quellcode kompiliert und über DKMS geladen), die größtenteils einwandfrei lief, aber mit den neueren Kernels nicht funktioniert und sowieso aufgegeben zu sein scheint. Also musste ich jetzt auf rt2800 zurückgreifen und habe dieses Problem seitdem.

Dies scheint ein sehr altes, aber immer wiederkehrendes Problem zu sein. Ich habe alle Threads durchgelesen, die ich finden konnte, aber bisher kein Glück. Glücklicherweise ist es für mich nicht kritisch, weil ich selten einen Neustart durchführe, aber es ist immer noch ärgerlich und ärgerlich.

Nachfolgend sind die Ausgaben einiger Befehle aufgeführt, die von Interesse sein könnten (dies ist der Status nach dem Neustart):

lshw -c network sagt, dass die Schnittstelle deaktiviert ist:

# lshw -c network
*-network               
       description: Ethernet interface
       product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: [email protected]:01:00.0
       logical name: eth0
       version: 10
       serial: c4:34:6b:05:5f:ff
       size: 10Mbit/s
       capacity: 1Gbit/s
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=half firmware=rtl8168g-3_0.0.1 04/23/13 latency=0 link=no multicast=yes port=MII speed=10Mbit/s
       resources: irq:43 ioport:4000(size=256) memory:b2504000-b2504fff memory:b2500000-b2503fff
  *-network DISABLED
       description: Wireless interface
       product: RT3290 Wireless 802.11n 1T/1R PCIe
       vendor: Ralink corp.
       physical id: 0
       bus info: [email protected]:02:00.0
       logical name: wlan0
       version: 00
       serial: 00:71:cc:6b:fe:f1
       width: 32 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=rt2800pci driverversion=4.4.9-040409-generic firmware=0.37 latency=0 link=no multicast=yes wireless=IEEE 802.11bgn
       resources: irq:17 memory:b2410000-b241ffff
  *-network DISABLED
       description: Ethernet interface
       physical id: 1
       logical name: virbr0-nic
       serial: 52:54:00:e5:13:31
       size: 10Mbit/s
       capabilities: ethernet physical
       configuration: autonegotiation=off broadcast=yes driver=tun driverversion=1.6 duplex=full link=no multicast=yes port=twisted pair speed=10Mbit/s

rfkill list stimmt jedoch nicht zu:

# rfkill list
0: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: no
# iwconfig 
virbr0-nic  no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11bgn  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=0 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off

virbr0    no wireless extensions.

lo        no wireless extensions.

Wir können es jedoch nicht ansprechen:

# ifconfig wlan0 up
SIOCSIFFLAGS: Input/output error

dmesg zeigt einige dieser Fehler:

# dmesg
...
[   27.648857] ieee80211 phy0: rt2800_wait_wpdma_ready: Error - WPDMA TX/RX busy [0x00000068]
[   29.248929] ieee80211 phy0: rt2800_wait_wpdma_ready: Error - WPDMA TX/RX busy [0x00000068]
[   29.248936] ieee80211 phy0: rt2800pci_set_device_state: Error - Device failed to enter state 4 (-5)
...

Schließlich ein Teil von syslog, der für mich relevant aussieht:

# cat /var/log/syslog | grep -i wlan
...
May 10 22:09:25 hp350g1 NetworkManager[820]:   [1462910965.2639] devices added (path: /sys/devices/pci0000:00/0000:00:1c.1/0000:02:00.0/net/wlan0, iface: wlan0)
May 10 22:09:25 hp350g1 NetworkManager[820]:   [1462910965.2639] device added (path: /sys/devices/pci0000:00/0000:00:1c.1/0000:02:00.0/net/wlan0, iface: wlan0): no ifupdown configuration found.
May 10 22:09:25 hp350g1 NetworkManager[820]:   [1462910965.6626] (wlan0): using nl80211 for WiFi device control
May 10 22:09:25 hp350g1 NetworkManager[820]:   [1462910965.6645] device (wlan0): driver supports Access Point (AP) mode
May 10 22:09:25 hp350g1 NetworkManager[820]:   [1462910965.6813] manager: (wlan0): new 802.11 WiFi device (/org/freedesktop/NetworkManager/Devices/0)
May 10 22:09:25 hp350g1 NetworkManager[820]:   [1462910965.6882] device (wlan0): state change: unmanaged -> unavailable (reason 'managed') [10 20 2]
May 10 22:09:25 hp350g1 kernel: [    5.704724] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
May 10 22:09:29 hp350g1 NetworkManager[820]:   [1462910969.0227] device (wlan0): supplicant interface state: init -> starting
May 10 22:09:32 hp350g1 wpa_supplicant[1339]: Could not set interface wlan0 flags (UP): Input/output error
May 10 22:09:32 hp350g1 wpa_supplicant[1339]: nl80211: Could not set interface 'wlan0' UP
May 10 22:09:32 hp350g1 wpa_supplicant[1339]: nl80211: deinit ifname=wlan0 disabled_11b_rates=0
May 10 22:09:35 hp350g1 wpa_supplicant[1339]: Could not set interface wlan0 flags (UP): Input/output error
May 10 22:09:35 hp350g1 wpa_supplicant[1339]: WEXT: Could not set interface 'wlan0' UP
May 10 22:09:35 hp350g1 wpa_supplicant[1339]: wlan0: Failed to initialize driver interface
May 10 22:09:35 hp350g1 NetworkManager[820]:  [1462910975.4904] sup-iface[0x2450570,wlan0]: error adding interface: wpa_supplicant couldn't grab this interface.
May 10 22:09:35 hp350g1 NetworkManager[820]:   [1462910975.4904] device (wlan0): supplicant interface state: starting -> down
May 10 22:09:46 hp350g1 NetworkManager[820]:   [1462910986.0143] device (wlan0): re-acquiring supplicant interface (#1).
May 10 22:09:49 hp350g1 wpa_supplicant[1339]: Could not set interface wlan0 flags (UP): Input/output error
May 10 22:09:49 hp350g1 wpa_supplicant[1339]: nl80211: Could not set interface 'wlan0' UP
May 10 22:09:49 hp350g1 wpa_supplicant[1339]: nl80211: deinit ifname=wlan0 disabled_11b_rates=0
May 10 22:09:52 hp350g1 wpa_supplicant[1339]: Could not set interface wlan0 flags (UP): Input/output error
May 10 22:09:52 hp350g1 wpa_supplicant[1339]: WEXT: Could not set interface 'wlan0' UP
May 10 22:09:52 hp350g1 wpa_supplicant[1339]: wlan0: Failed to initialize driver interface
May 10 22:09:52 hp350g1 NetworkManager[820]:  [1462910992.4485] sup-iface[0x24506d0,wlan0]: error adding interface: wpa_supplicant couldn't grab this interface.


... (after couple more tries)


May 10 22:11:00 hp350g1 NetworkManager[820]: [1462911060.4668] device (wlan0): supplicant interface state: starting -> down May 10 22:11:00 hp350g1 NetworkManager[820]: [1462911060.4669] device (wlan0): supplicant interface keeps failing, giving up
5
g.krastev

Der Treiber rt2800pci muss die Firmware von dem Gerät entfernen, die beim Neustart erhalten bleibt. In Ubuntu 16.04 müssen Sie vor dem Neustart den folgenden Befehl ausführen:

Sudo rmmod rt2800pci

dann neu starten.

Um die Aufgabe für den Neustart zu automatisieren, erstellen Sie ein Shell-Skript in /etc/init.d/rt3290removedriver mit folgendem Inhalt:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          skeleton
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Example initscript
# Description:       This file should be used to construct scripts to be
#                    placed in /etc/init.d.  This example start a
#                    single forking daemon capable of writing a pid
#                    file.  To get other behavoirs, implemend
#                    do_start(), do_stop() or other functions to
#                    override the defaults in /lib/init/init-d-script.
### END INIT INFO

# /etc/init.d/rt3290removedriver

case "$1" in
   start)
       echo "Removal of driver rt2800pci success" > /home/youruser/rt2800pci.txt
       echo "Power Down" 
   ;;
   stop)
       rmmod rt2800pci
       echo "Removal of driver rt2800pci success" > /home/youruser/rt2800pci.txt
       echo "Power Down"
       exit 1
   ;;
   *)
       rmmod rt2800pci
       echo "Removal of driver rt2800pci success" > /home/youruser/rt2800pci.txt
       echo "Power Down"
       exit 1
   ;;
esac
exit 0

Aktualisieren Sie dann die Skripte mit dem Befehl

Sudo update-rc.d rt3290removedriver defaults

Und du bist fertig. Ersetzen Sie Ihren Benutzer im Skript durch Ihren Benutzernamen. Getestet auf einem HP Pavilion mit Ubuntu 16.04 und RT3290 WiFi PCI-Karte.

2
kukulo

Wenn Sie mit Windows einen Dual-Boot-Vorgang ausführen, versuchen Sie, Windows zu laden, und kehren Sie dann zu Ubuntu zurück. Windows neigt dazu, die BIOS-Einstellungen auf einigen Laptops zu überschreiben.

Ich habe ProBook 4540s mit dem gleichen Problem und dieses reparierte es.

Ich wurde misstrauisch, als ich Live-USB mit Ubuntu 14.04 geladen habe. Ich hatte die gleiche Meldung im Netzwerkmanager-Menü wie am installierten 16.04.

0
Nikola Dordevic