Eminent EM4554Wifi 150N (RT2870) not seen by YaST

This is a mutation of; Help, my wireless … I read the stickies and hope to provide enough info.

Because we had problems getting a Linksys device working (it worked, but after that it failed) on openSUSE 11.3, my friend (the system owner) bought a Eminent EM4554 Wifi 150N forgetting to ask me to look in the HCL. On looking through the Eminent web-site I discovered they have a Linux tarball for it, but I prefer to look for an openSUSE ready solution first. The tarball showed that it is about a Ralink RT2870 chipset.

lsusb:

Bus 002 Device 002: ID 148f:3070 Ralink Technology, Corp.

I added the download.opensuse.org/repositories/driver:/wireless/openSUSE_11.3/ and the update of that repos. On starting YaST > Software > Software Management it offered several packages for installation that all seemed related to this subject and came from those repos, so I installed them. I did not install the ralink-firmware package because that warned that it would remove the kernel-firmware package.

dmesg shows:

    5.467501] usb 2-2: not running at top speed; connect to a high speed hub
    5.498524] usb 2-2: New USB device found, idVendor=148f, idProduct=3070
    5.498534] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    5.498539] usb 2-2: Product: 802.11 n WLAN
    5.498543] usb 2-2: Manufacturer: Ralink
    5.498546] usb 2-2: SerialNumber: 1.0

  291.924295] usb 2-2: firmware: requesting rt3070.bin
  298.383101] <-- RTMPAllocTxRxRingMemory, Status=0
  298.415300] -->RTUSBVenderReset
  298.418302] <--RTUSBVenderReset
  306.220139] 1. Phy Mode = 0
  306.220146] 2. Phy Mode = 0
  306.220152] NVM is Efuse and its size =2d[2d0-2fc]
  308.214840] 3. Phy Mode = 0
  308.529809] RTMPSetPhyMode: channel is out of range, use first channel=1
  308.529820] MCS Set = 00 00 00 00 00
  309.823603] <==== rt28xx_init, Status=0

IMHO te firmware is loaded successfully, but please correct me.

iwconfig:

wlan0     Ralink STA  ESSID:""  Nickname:"RT2870STA"
          Mode:Auto  Frequency=2.412 GHz  Access Point: Invalid
          Link Quality=10/100  Signal level:0 dBm  Noise level:-115 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Scan:

wlan0     Scan completed :
          Cell 01 - Address: 00:18:F6:05:80:A3
                    Protocol:802.11b/g
                    ESSID:"SpeedTouch6F2572"
                    Mode:Managed
                    Channel:1
                    Quality:83/100  Signal level:-57 dBm  Noise level:-115 dBm
                    Encryption key:on
                    Bit Rates:54 Mb/s
                    IE: WPA Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : CCMP TKIP
                        Authentication Suites (1) : PSK
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : TKIP
                        Pairwise Ciphers (2) : CCMP TKIP
                        Authentication Suites (1) : PSK

Thus to me wlan0 exists and should be configurable. But YaST does not offer the device to me (only the eth0 device). When I just add a device (where I could have made errors), I can fill in all the details and a ifcfg-wlan0 is build, but YaST never shows a name or module for the device. and when I ifdown and then ifup:

    wlan0
command 'iwconfig wlan0 mode Managed' returned
 Error for wireless request "Set Mode" (8B06) :
    SET failed on device wlan0 ; Network is down.
command 'iwconfig wlan0 key off' returned
 Error for wireless request "Set Encode" (8B2A) :
    SET failed on device wlan0 ; Network is down.
command 'iwconfig wlan0 key open 1b2................c05ff22' returned
 Error for wireless request "Set Encode" (8B2A) :
    SET failed on device wlan0 ; Network is down.
command 'iwconfig wlan0 essid SpeedTouch6F2572' returned
 Error for wireless request "Set ESSID" (8B1A) :
    SET failed on device wlan0 ; Network is down.
Starting DHCP4 client on wlan0. . . . . . . .
    wlan0     DHCP4 continues in background

All the output above is copied from the system involved to my system here on an USB stick, but I forgot to copy the info about kernel modules. I did an lsmod and saw a module rt2870rta (IIRC).

What am I missing, doing wrong, or any usefull remarks.

Thanks in advance.

All the wireless gurus have gone for hollidays >:(

Personally, I would use networkmanager. You can switch to using it through yast. It looks like the firmware is loading. Once you change to networkmanager it should be just a matter of selecting the network and putting your encryption key in.
(I don’t claim to be a guru, but my nic uses the same driver)

Thanks for the answer. But I would like to run the system (it is a desktop) as a “normal” system where network connection is made at boot (and stopped at shutdown) irrepective if some of he users is loged in or not.

One of the reasons is that IMHO those end-users must not be bothered by making a network connection. Like they should not bother about using the disks, etc. The system should just “work”.

Another one is that the network should function with no, one, or more users loged in. What about batch processes like NFS when they would only function when a user is loged in in the GUI? These are all restrictions that are apparently overcome by traveling laptop users, but not in this case.

In any case, IMHO YaST must “see” the device in it’s list, even if it is noot configured annd regardless if it is on “ifup” or “networkmanager”. And my question is: the device is there (see lsusb), the firmware is loaded (see dmesg), a kernel module is loaded (the not shown lsmod), scanning wlan0 shows the router, why does YaST not have it in is list of network devices?

On 12/21/2010 04:06 AM, hcvv wrote:
>
> Thanks for the answer. But I would like to run the system (it is a
> desktop) as a “normal” system where network connection is made at boot
> (and stopped at shutdown) irrepective if some of he users is loged in or
> not.
>
> One of the reasons is that IMHO those end-users must not be bothered by
> making a network connection. Like they should not bother about using the
> disks, etc. The system should just “work”.
>
> Another one is that the network should function with no, one, or more
> users loged in. What about batch processes like NFS when they would only
> function when a user is loged in in the GUI? These are all restrictions
> that are apparently overcome by traveling laptop users, but not in this
> case.
>
> In any case, IMHO YaST must “see” the device in it’s list, even if it
> is noot configured annd regardless if it is on “ifup” or
> “networkmanager”. And my question is: the device is there (see -lsusb-),
> the firmware is loaded (see -dmesg-), a kernel module is loaded (the not
> shown -lsmod-), scanning -wlan0- shows the router, why does YaST not
> have it in is list of network devices?

I don’t know the answer to the YaST question, bit I wonder if you have
configured it properly for ifup to bring it up? Post the output of


sudo cat /etc/init.d/ifcfg-wlan0
sudo cat /etc/init.d/ifcfg-eth0

You should obscure any connection secrets.

I have one system that does not run a GUI and is used for wireless device
testing. It connects to the AP upon booting in exactly the manner you specify.

@lwfinger. As usual the system is not in my home, but with a friend. In this case not to far away, but the weather is not favourable.

Using YaST to configure the device, not withstanding the fact that YaST does not list it by using the Add button, results in the end indeed in an ifcfg-wlan0 file.
I compared this fiile with others and also edited a bit around there (is always faster then going to YaST everytime) to no avail.

I will try to go asap to the friends system and report back with the contents of both ifcfg files.

BTW eth0 is configured to work at cable connection and that functions OK. I removed the cable during the Wifi test and then eth0 is down.

Will be back.

I am at the system now.

zolder2:/etc/sysconfig/network # cat ifcfg-eth0 
BOOTPROTO='dhcp'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR=''
MTU=''
NAME='RTL-8139/8139C/8139C+'
NETMASK=''
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='ifplugd'
USERCONTROL='no'
IFPLUGD_PRIORITY='20'
zolder2:/etc/sysconfig/network # 
zolder2:/etc/sysconfig/network # cat ifcfg-wlan0 
BOOTPROTO='dhcp'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR=''
MTU=''
NAME=''
NETMASK=''
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='auto'
USERCONTROL='no'
WIRELESS_AP=''
WIRELESS_AP_SCANMODE='1'
WIRELESS_AUTH_MODE='open'
WIRELESS_BITRATE='auto'
WIRELESS_CA_CERT=''
WIRELESS_CHANNEL=''
WIRELESS_CLIENT_CERT=''
WIRELESS_CLIENT_KEY=''
WIRELESS_CLIENT_KEY_PASSWORD=''
WIRELESS_DEFAULT_KEY='0'
WIRELESS_EAP_AUTH=''
WIRELESS_EAP_MODE=''
WIRELESS_ESSID='SpeedTouch6F2572'
WIRELESS_FREQUENCY=''
WIRELESS_KEY=''
WIRELESS_KEY_0='5!!!!!!!!3'
WIRELESS_KEY_1=''
WIRELESS_KEY_2=''
WIRELESS_KEY_3=''
WIRELESS_KEY_LENGTH='128'
WIRELESS_MODE='Managed'
WIRELESS_NICK=''
WIRELESS_NWID=''
WIRELESS_PEAP_VERSION=''
WIRELESS_POWER='yes'
WIRELESS_WPA_ANONID=''
WIRELESS_WPA_IDENTITY=''
WIRELESS_WPA_PASSWORD=''
WIRELESS_WPA_PSK=''
zolder2:/etc/sysconfig/network # 

For WIRELESS_KEY_0 YaST creates this with a: or h: extra at the beginning when ASCII or HEX is chosen in it’s config window. I tried them all.

I repeat what I posted above: even the first simple parameter that ifup tries to set using iwconfig (mode Managed) fails:

zolder2:/etc/sysconfig/network # ifup wlan0
    wlan0     
command 'iwconfig wlan0 mode Managed' returned
 Error for wireless request "Set Mode" (8B06) :
    SET failed on device wlan0 ; Network is down.
command 'iwconfig wlan0 key off' returned
 Error for wireless request "Set Encode" (8B2A) :
    SET failed on device wlan0 ; Network is down.
command 'iwconfig wlan0 key open 5932554A03' returned
 Error for wireless request "Set Encode" (8B2A) :
    SET failed on device wlan0 ; Network is down.
command 'iwconfig wlan0 essid SpeedTouch6F2572' returned
 Error for wireless request "Set ESSID" (8B1A) :
    SET failed on device wlan0 ; Network is down.
Starting DHCP4 client on wlan0. . . . . . . .  
    wlan0     DHCP4 continues in background
zolder2:/etc/sysconfig/network # ifdown wlan0
    wlan0     
zolder2:/etc/sysconfig/network # 

Thanks for looking into this.

And the forgotten lsmod:

zolder2:/etc/sysconfig/network # lsmod |grep rt3
rt3370sta             487614  0 
usbcore               191575  6 rt3370sta,rt2870sta,uhci_hcd,ohci_hcd,ehci_hcd
zolder2:/etc/sysconfig/network # 

Is 3370 the correct module?

I changed (via YaST, butthat is not very important and the changes are below:

zolder2:/etc/sysconfig/network # diff ifcfg-wlan0 red-wlan0 
10c10
14c14
< WIRELESS_AUTH_MODE='psk'
---
> WIRELESS_AUTH_MODE='open'
27c27
< WIRELESS_KEY_0=''
---
> WIRELESS_KEY_0='5!!!!!!!!3'
40c40
< WIRELESS_WPA_PSK='5!!!!!!!!3'
---
> WIRELESS_WPA_PSK=''
zolder2:/etc/sysconfig/network # 

And now it works. Strange, the key looks hex, but when I try this hex in YaST it says there must be 64 characters. Doing it as tekst it works.

I do not understand exactly why it works now, but everybody thank you very much for suggestions and help.

Simple Answer?

WEP != WPA

On 12/21/2010 01:06 PM, hcvv wrote:
>
> I am at the system now.
>
> Code:
> --------------------
> zolder2:/etc/sysconfig/network # cat ifcfg-eth0
> BOOTPROTO=‘dhcp’
> BROADCAST=’’
> ETHTOOL_OPTIONS=’’
> IPADDR=’’
> MTU=’’
> NAME=‘RTL-8139/8139C/8139C+’
> NETMASK=’’
> NETWORK=’’
> REMOTE_IPADDR=’’
> STARTMODE=‘ifplugd’
> USERCONTROL=‘no’
> IFPLUGD_PRIORITY=‘20’
> zolder2:/etc/sysconfig/network #
> --------------------
>
> Code:
> --------------------
> zolder2:/etc/sysconfig/network # cat ifcfg-wlan0
> BOOTPROTO=‘dhcp’
> BROADCAST=’’
> ETHTOOL_OPTIONS=’’
> IPADDR=’’
> MTU=’’
> NAME=’’
> NETMASK=’’
> NETWORK=’’
> REMOTE_IPADDR=’’
> STARTMODE=‘auto’
> USERCONTROL=‘no’
> WIRELESS_AP=’’
> WIRELESS_AP_SCANMODE=‘1’
> WIRELESS_AUTH_MODE=‘open’
> WIRELESS_BITRATE=‘auto’
> WIRELESS_CA_CERT=’’
> WIRELESS_CHANNEL=’’
> WIRELESS_CLIENT_CERT=’’
> WIRELESS_CLIENT_KEY=’’
> WIRELESS_CLIENT_KEY_PASSWORD=’’
> WIRELESS_DEFAULT_KEY=‘0’
> WIRELESS_EAP_AUTH=’’
> WIRELESS_EAP_MODE=’’
> WIRELESS_ESSID=‘SpeedTouch6F2572’
> WIRELESS_FREQUENCY=’’
> WIRELESS_KEY=’’
> WIRELESS_KEY_0=‘5!!!3’
> WIRELESS_KEY_1=’’
> WIRELESS_KEY_2=’’
> WIRELESS_KEY_3=’’
> WIRELESS_KEY_LENGTH=‘128’
> WIRELESS_MODE=‘Managed’
> WIRELESS_NICK=’’
> WIRELESS_NWID=’’
> WIRELESS_PEAP_VERSION=’’
> WIRELESS_POWER=‘yes’
> WIRELESS_WPA_ANONID=’’
> WIRELESS_WPA_IDENTITY=’’
> WIRELESS_WPA_PASSWORD=’’
> WIRELESS_WPA_PSK=’’
> zolder2:/etc/sysconfig/network #
>
> --------------------
> For WIRELESS_KEY_0 YaST creates this with a: or h: extra at the
> beginning when ASCII or HEX is chosen in it’s config window. I tried
> them all.
>
> I repeat what I posted above: even the first simple parameter that ifup
> tries to set using iwconfig (mode Managed) fails:
>
> Code:
> --------------------
> zolder2:/etc/sysconfig/network # ifup wlan0
> wlan0
> command ‘iwconfig wlan0 mode Managed’ returned
> Error for wireless request “Set Mode” (8B06) :
> SET failed on device wlan0 ; Network is down.
> command ‘iwconfig wlan0 key off’ returned
> Error for wireless request “Set Encode” (8B2A) :
> SET failed on device wlan0 ; Network is down.
> command ‘iwconfig wlan0 key open 5932554A03’ returned
> Error for wireless request “Set Encode” (8B2A) :
> SET failed on device wlan0 ; Network is down.
> command ‘iwconfig wlan0 essid SpeedTouch6F2572’ returned
> Error for wireless request “Set ESSID” (8B1A) :
> SET failed on device wlan0 ; Network is down.
> Starting DHCP4 client on wlan0. . . . . . . .
> wlan0 DHCP4 continues in background
> zolder2:/etc/sysconfig/network # ifdown wlan0
> wlan0
> zolder2:/etc/sysconfig/network #
> --------------------

The “Network is down” messages are the clue. If ifup cannot bring it up, then it
is likely that you have something setting an rfkill block. You can check this by
installing the rfkill utility - ‘sudo zypper in rfkill’ - and interrogating the
settings with ‘/usr/sbin/rfkill list’. It needs to be


0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no

I expect that you will see a “yes” next to Hard blocked. If so, does the box
have a radio kill switch? If not, does unloading/reloading the driver help?

You are right. And the not so simple answer it implicates is: henk, you are a bit dumb rotfl!

Talking about the driver(s).

Is rt3370sta the correct one?

Fun thing, without a little patch in the respective KMP from driver:wireless, loading rt3370sta AND rt2870sta modules at the same time wouldn’t even be possible (or at least a loud call for LOTS of trouble).

However, that little patch was intended to use both drivers if there are two different cards one supported by rt2870sta and the other ONLY by rt3370sta (or another module like rt3572sta), but with only one card this doesn’t make sense.

So another simple answer would be:

Maybe, amongst others and one is already loaded (rt2870sta) and present in the kernel, so I would find out WHICH one is really needed and remove/blacklist the other one.

After all, installing stuff from driver:wireless CAN be the cause of trouble, not because the packages are bad (hopefully, as the maintainer of this one and some others is yours truly), but because there are sometimes several drivers supporting the same device and one has to make a choice.

With this device, there are at least five (sic!) possible choices (rt2870sta from distro kernel aka “don’t install anything from driver:wireless”, rt2870sta from rt28x0-staging-kmp backported from 2.6.37 atm, rt3370sta from rt3070sta-kmp, don’t ask about the different names, there is a reason for that and last but not least, rt2800usb either from distro kernel or compat-wireless).

So choose your poison, but only take one at a time.

First a mea culpa. I did compare the ifcfg-wlan0 file with the one in use by the earlier Linksys. I did try to move the key to the correct place, but I did not notice that the WIRELESS_AUTH_MODE parameter had to be changed from “open” to “wpk” and thus this change did not work. My fault, I should have seen this (and had it been the case, it would have run a week earlier :frowning: ).

What does not help in configuring using YaST is that the key (which I did not show for obvious reasons) looks hexadecimal. But when you click to WPK and enter that key as Hex, YaST says it needs at least 64 hex characters. The solution is to use the Text (not ASCII, nor Hex) option. Then everything is in the correct parameters.

@Akoelh
Indeed both modules are there. While I understand you that this could be a potential problem, atm the device works stable as expected. Thus I will leave it as it is. I only will disable the Wireless repos.