„Schnittstelle wlan0-Flags konnten nicht gesetzt werden (UP): Eingabe-/Ausgabefehler“ RT3290

„Schnittstelle wlan0-Flags konnten nicht gesetzt werden (UP): Eingabe-/Ausgabefehler“ RT3290

Ich habe ein sehr rätselhaftes Problem mit meiner WLAN-Karte unter Ubuntu festgestellt. Nach dem Neustart ist sie immer deaktiviert und es gibt keine Möglichkeit, sie wiederherzustellen, außer den Laptop in den Ruhezustand zu versetzen oder herunterzufahren. Der Status laut Netzwerkmanager lautet „Gerät nicht bereit“. Dies tritt ständig auf.

Einige Hintergrundinformationen zu meinem System:

  • Der Laptop ist HP 350 G1.
  • Bei der WLAN-Karte handelt es sich um die berüchtigte Ralink RT3290. (Wenn ich gewusst hätte, wie viel Ärger ich damit haben würde, hätte ich sie nie gekauft.)
  • Ubuntu ist das neueste LTS 16.04, kürzlich aktualisiert.
  • Der Kernel ist 4.4.9-040409-generic(war 4.4.0-22-genericvor dem Upgrade vom Mainline-System – kein Unterschied in Bezug auf WLAN).

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

Dies scheint ein sehr altes, aber immer wiederkehrendes Problem zu sein. Ich habe alle Threads durchgelesen, die ich finden konnte, aber bisher ohne Erfolg. Zum Glück ist es für mich nicht kritisch, da ich selten neu starte, aber es ist trotzdem zumindest ärgerlich und ärgerlich.

Nachfolgend finden Sie die Ausgaben einiger Befehle, die von Interesse sein könnten (dies ist der Status nach dem Neustart):

lshw -c networksagt, 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: pci@0000: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: pci@0000: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 listStimmt 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 zur Sprache bringen:

# ifconfig wlan0 up
SIOCSIFFLAGS: Input/output error

dmesgzeigt 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)
...

Abschließend syslogerscheint mir ein Teil davon relevant:

# 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

Antwort1

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

sudo rmmod rt2800pci

dann neu starten.

Um den Task für den Neustart zu automatisieren, erstellen Sie ein Shell-Skript /etc/init.d/rt3290removedrivermit 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 Sie sind fertig. Ersetzen Sie youruser im Skript durch Ihren Benutzernamen. Getestet auf einem HP Pavilion mit Ubuntu 16.04 und rt3290 WiFi PCI-Karte.

Antwort2

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

Ich habe ein ProBook 4540s mit demselben Problem und dadurch wurde es behoben.

Ich wurde misstrauisch, als ich einen Live-USB-Stick mit Ubuntu 14.04 darauf geladen habe. Im Netzwerkmanager-Menü erschien dieselbe Meldung wie bei der installierten Version 16.04.

Antwort3

Es funktionierte nicht. LÖSUNG GEFUNDEN:

http://www.mediafire.com/download/zyfql95clzs24z0/RT3290_u16.tar.gz

sudo ifconfig -a

listet alle verfügbaren Ethernet-Schnittstellen auf. Aktivieren Sie nun Ihre WLAN-Schnittstelle durch:

sudo ifconfig interface-name up

Autorschaft von Md Imam Hossain

verwandte Informationen