You are not logged in.

#1 2008-08-19 06:15:23

pseudonomous
Member
Registered: 2008-04-23
Posts: 349

[SOLVED] WPA_SUPPLICANT and rt2500 chipset cards [SOLVED]

EDIT:

If you want to make an rt2500 chipset wireless card work with wpa_supplicant (and it doesn't already), maybe you have tried to run wpa_supplicant and got a bunch of errors saying nasty things about IOCTRL, this means, most likely, that wpa_supplicant is having trouble communicating with your wireless card.  One problem (my problem) was the driver, the old rt2500 driver.

Are you using an old rt2500 driver, or the newer rt2500pci driver?  You can probably tell by looking at your rc.conf file, in the section called "MODULES", if you have rt2500 listed, you're
loading the old driver, so you should put an "!" in front to disable it.  You also need to make sure you have the rt2500pci drive and (I think) the rt2x00lib and rt2x00pci modules listed.  I'm pretty sure these are included with an up to date stock kernel.

I guess another way to look for the driver would be to boot your computer and run "dmesg | more" and parse through the output, or "dmesg | more | grep | rt2500", which should find you any lines that contain text "rt2500".

Now, if you've been using that old rt2500 driver, your wireless card has probably been calling itself "ra0", assuming it's your only card using the rt2500 driver, when you switch to the new driver, it will call itself "wlan?" where ? is some number.  It's probably wlan0, unless you have another wireless card, I do (a Broadcom card that has never worked) so mine is actually called wlan1.  There are tutorials for making Broadcom cards work, but that's a different kettle of worms and I'm not qualified to talk about it since mine doesn't.

Now it should work with wpa_supplicant using the driver "wext", which should be the default for wpa_supplicant, but just to be safe you can type:

wpa_supplicant  -d -iwlan? -Dwext -c/path_to_config_file/your_config_file
                         |   |          |            |
                         |   |          |         Config file to use
                         |   |         driver to use
                         |  interface to use
                         |
                        tell wpa_supplicant to be more verbose, -dd is even more verbose

You probably already read the man pages and wiki for wpa_supplicant, but if you haven't noticed yet the syntax for the options is -oPARAMETER there's no seperation between the option and it's argument.

Now if you did all this, and you're not getting IOCTRL errors, then you're wireless driver and wpa_supplicant are probably communicating just fine.  If you're still not able to connect then the problem could be one of:

Unable to associate with access point, possibly because of weak signal or MAC filtering
Errors in your wpa_supplicant config file, maybe a PSK is wrong, maybe you're specifying a protocol wrong?  If you have some sort of complex configuration / AP setup, it might be best too try a simpler configuration with an AP you can administer (like a home portal, if you have one), see if you can get that to work, and then figure out why your super complex configuration to work.

If you want too, read tomk's posts below, my other posts are (most likely) not helpful.

_____________________________ORGINAL POST__ORGINAL TOPIC:Can BSD drivers work w/ WPA_SUPPLICANT in Linux?_____________________________________

Hello all,

Recently I installed FreeBSD on a laptap with a rt2500 chipset wireless card and was able, for the first time ever, to use wpa encrypted networking via wpa_supplicant.  Then I screwed up my rc.conf file, tried to fix it, and apparently completely broke the system. 

So I decided to install arch, because I didn't really want to rebuild the ports I had installed, but then, it appears, I can't get wpa_supplicant to work.  Not so, so bad for my home network (I can either use an ethernet connection or switch my router to an open connection), but I'm intrigued enough at the prospect of being able to use the wifi network at my university, that I really want this to work now. 

So I messed around with wpa_supplicant, but apparently wpa_supplicant doesn't support the rt2500 driver.  But I know the generic BSD driver works (wext does not), so, perhaps naively, I tried to build wpa_supplicant with the BSD driver enabled. 

But, when I did this, mkpkg tells me that my config file is bad.  Is this because I'm trying to enable the BSD driver?

I realize it might be helpful to look at my config file, but for the moment, I'm too lazy to fiddle with things to get the file of the laptop, but it occurs to me that it might just be downright silly to expect a bsd driver to work with linux.  So if I"m being stupid, could someone please tell me?

-thanks!

Last edited by pseudonomous (2008-08-24 21:29:26)

Offline

#2 2008-08-19 15:43:26

tigrmesh
IRC Op
From: Florida, US
Registered: 2007-12-11
Posts: 794

Re: [SOLVED] WPA_SUPPLICANT and rt2500 chipset cards [SOLVED]

Do you have base-devel installed?  Are you trying to compile manually?  What's mkpkg?  Is that makepkg?  Have you created a PKGBUILD to use makepkg?  Please paste the *exact* errors messages output by makepkg.

Edit:  spelling

Last edited by tigrmesh (2008-08-19 15:44:26)

Offline

#3 2008-08-19 16:15:19

tomk
Forum Fellow
From: Ireland
Registered: 2004-07-21
Posts: 9,839

Re: [SOLVED] WPA_SUPPLICANT and rt2500 chipset cards [SOLVED]

I've used wpa_supplicant with the rt2x00 driver, and it worked fine. Have you tried it?

Offline

#4 2008-08-19 17:37:37

pseudonomous
Member
Registered: 2008-04-23
Posts: 349

Re: [SOLVED] WPA_SUPPLICANT and rt2500 chipset cards [SOLVED]

tomk wrote:

I've used wpa_supplicant with the rt2x00 driver, and it worked fine. Have you tried it?

wpa_supplicant gives me an error message, if I try to type:

wpa -options -Drt2x00 -ira0 -c/path

or

wpa -options -Drt2500 ira0 -c/path

and if I use the wext driver for WPA supplicant I get a bunch of IOCTRL errors.

Depending on what "ap_scan" option I use for wpa_supplicant, it either can't tell that the AP is using WPA/RSA encryption or it says something along the lines "can't get BSSID from interface", I tried entering my access points bssid in the wpa_supplicant config file, but then wpa_supplicant couldn't parse the config file.

When I had BSD running it just worked, without any error messages.

Come to think of it, I might NOT have all of base - devel install.  But if I need devel packages, shouldn't they be reported as
dependancies either to abs (which I do have installed) or as dependancies to the package I'm trying to build?

tigrmesh

I did mean makepkg.

I'm going to be busy for awhile, I will post explicit reproductions of relevant error messages tonight.

Offline

#5 2008-08-19 18:43:26

tomk
Forum Fellow
From: Ireland
Registered: 2004-07-21
Posts: 9,839

Re: [SOLVED] WPA_SUPPLICANT and rt2500 chipset cards [SOLVED]

Let me clarify:
rt2x00 is the in-kernel driver for Ralink chipsets. It creates a wlan0 interface and works fine with wpa_supplicant using the -Dwext driver option.
The ra0 interface that you are attempting to use is created by the rt2500 driver from Ralink, which is one of a number of legacy drivers which will soon be obsolete. This driver does not work with wpa_supplicant, but it can be configured for wpa using driver-specific iwpriv commands.

The kernel driver your device requires is called rt2500pci, and in a default Arch install, it should be loaded automatically by udev.

Offline

#6 2008-08-24 08:15:15

pseudonomous
Member
Registered: 2008-04-23
Posts: 349

Re: [SOLVED] WPA_SUPPLICANT and rt2500 chipset cards [SOLVED]

I'm sorry it took me a long time to post these, and that I've multi-posted, but this was the best I could with very little proficiency w/ links and very few apps installed on my laptop
(I didn't want to take the time to install firefox or opera, if I decide that I want reinstall FreeBSD anyway), so hopefully these files below are instructive.

Also:  The archwiki claims that the rt2500 chipset doesn't work with wpa_supplicant and gives directions with iwpriv, I've tried these twice and failed, but I want to try one
more time before I definitely write this off.  At the moment, I'm leaning toward reinstalling FreeBSD, but, for the sake of completeness, I really want to try and get this to work first.

Anyway, thanks for the help so far.

error output when I try to run makepkg:

==> Retrieving Sources...
  -> Found wpa_supplicant-0.5.10.tar.gz in build dir
  -> Found config in build dir
  -> Found madwifi-0.9.4.tar.gz in build dir
==> Validating source files with md5sums...
    wpa_supplicant-0.5.10.tar.gz ... Passed
    config ... FAILED
    madwifi-0.9.4.tar.gz ... Passed
==> ERROR: One or more files did not pass the validity check!

Last edited by pseudonomous (2008-08-24 08:46:10)

Offline

#7 2008-08-24 08:18:49

pseudonomous
Member
Registered: 2008-04-23
Posts: 349

Re: [SOLVED] WPA_SUPPLICANT and rt2500 chipset cards [SOLVED]

This is the last config file I tried:

# Example wpa_supplicant build time configuration
#
# This file lists the configuration options that are used when building the
# hostapd binary. All lines starting with # are ignored. Configuration option
# lines must be commented out complete, if they are not to be included, i.e.,
# just setting VARIABLE=n is not disabling that variable.
#
# This file is included in Makefile, so variables like CFLAGS and LIBS can also
# be modified from here. In most cases, these lines should use += in order not
# to override previous values of the variables.


# Uncomment following two lines and fix the paths if you have installed OpenSSL
# or GnuTLS in non-default location
#CFLAGS += -I/usr/local/openssl/include
#LIBS += -L/usr/local/openssl/lib

# Some Red Hat versions seem to include kerberos header files from OpenSSL, but
# the kerberos files are not in the default include path. Following line can be
# used to fix build issues on such systems (krb5.h not found).
#CFLAGS += -I/usr/include/kerberos

# Example configuration for various cross-compilation platforms

#### sveasoft (e.g., for Linksys WRT54G) ######################################
#CC=mipsel-uclibc-gcc
#CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc
#CFLAGS += -Os
#CPPFLAGS += -I../src/include -I../../src/router/openssl/include
#LIBS += -L/opt/brcm/hndtools-mipsel-uclibc-0.9.19/lib -lssl
###############################################################################

#### openwrt (e.g., for Linksys WRT54G) #######################################
#CC=mipsel-uclibc-gcc
#CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc
#CFLAGS += -Os
#CPPFLAGS=-I../src/include -I../openssl-0.9.7d/include \
#-I../WRT54GS/release/src/include
#LIBS = -lssl
###############################################################################


# Driver interface for Host AP driver
CONFIG_DRIVER_HOSTAP=y

# Driver interface for Agere driver
#CONFIG_DRIVER_HERMES=y
# Change include directories to match with the local setup
#CFLAGS += -I../../hcf -I../../include -I../../include/hcf
#CFLAGS += -I../../include/wireless

# Driver interface for madwifi driver
CONFIG_DRIVER_MADWIFI=y
# Change include directories to match with the local setup
CFLAGS += -I../madwifi

# Driver interface for Prism54 driver
# (Note: Prism54 is not yet supported, i.e., this will not work as-is and is
# for developers only)
#CONFIG_DRIVER_PRISM54=y

# Driver interface for ndiswrapper
CONFIG_DRIVER_NDISWRAPPER=y

# Driver interface for Atmel driver
CONFIG_DRIVER_ATMEL=y

# Driver interface for Broadcom driver
#CONFIG_DRIVER_BROADCOM=y
# Example path for wlioctl.h; change to match your configuration
#CFLAGS += -I/opt/WRT54GS/release/src/include

# Driver interface for Intel ipw2100/2200 driver
#CONFIG_DRIVER_IPW=y

# Driver interface for generic Linux wireless extensions
CONFIG_DRIVER_WEXT=y

# Driver interface for FreeBSD net80211 layer (e.g., Atheros driver)
CONFIG_DRIVER_BSD=y
CFLAGS += -I/usr/local/include
LIBS += -L/usr/local/lib

# Driver interface for Windows NDIS
#CONFIG_DRIVER_NDIS=y
#CFLAGS += -I/usr/include/w32api/ddk
#LIBS += -L/usr/local/lib
# For native build using mingw
#CONFIG_NATIVE_WINDOWS=y
# Additional directories for cross-compilation on Linux host for mingw target
#CFLAGS += -I/opt/mingw/mingw32/include/ddk
#LIBS += -L/opt/mingw/mingw32/lib
#CC=mingw32-gcc
# By default, driver_ndis uses WinPcap for low-level operations. This can be
# replaced with the following option which replaces WinPcap calls with NDISUIO.
# However, this requires that WZC is disabled (net stop wzcsvc) before starting
# wpa_supplicant.
# CONFIG_USE_NDISUIO=y

# Driver interface for development testing
#CONFIG_DRIVER_TEST=y

# Driver interface for wired Ethernet drivers
CONFIG_DRIVER_WIRED=y

# Enable IEEE 802.1X Supplicant (automatically included if any EAP method is
# included)
CONFIG_IEEE8021X_EAPOL=y

# EAP-MD5
CONFIG_EAP_MD5=y

# EAP-MSCHAPv2
CONFIG_EAP_MSCHAPV2=y

# EAP-TLS
CONFIG_EAP_TLS=y

# EAL-PEAP
CONFIG_EAP_PEAP=y

# EAP-TTLS
CONFIG_EAP_TTLS=y

# EAP-GTC
CONFIG_EAP_GTC=y

# EAP-OTP
CONFIG_EAP_OTP=y

# EAP-SIM (enable CONFIG_PCSC, if EAP-SIM is used)
#CONFIG_EAP_SIM=y

# EAP-PSK (experimental; this is _not_ needed for WPA-PSK)
#CONFIG_EAP_PSK=y

# EAP-PAX
#CONFIG_EAP_PAX=y

# LEAP
CONFIG_EAP_LEAP=y

# EAP-AKA (enable CONFIG_PCSC, if EAP-AKA is used)
#CONFIG_EAP_AKA=y

# EAP-SAKE
#CONFIG_EAP_SAKE=y

# EAP-GPSK
#CONFIG_EAP_GPSK=y
# Include support for optional SHA256 cipher suite in EAP-GPSK
#CONFIG_EAP_GPSK_SHA256=y

# PKCS#12 (PFX) support (used to read private key and certificate file from
# a file that usually has extension .p12 or .pfx)
CONFIG_PKCS12=y

# Smartcard support (i.e., private key on a smartcard), e.g., with openssl
# engine.
CONFIG_SMARTCARD=y

# PC/SC interface for smartcards (USIM, GSM SIM)
# Enable this if EAP-SIM or EAP-AKA is included
#CONFIG_PCSC=y

# Development testing
#CONFIG_EAPOL_TEST=y

# Replace native Linux implementation of packet sockets with libdnet/libpcap.
# This will be automatically set for non-Linux OS.
#CONFIG_DNET_PCAP=y

# Select control interface backend for external programs, e.g, wpa_cli:
# unix = UNIX domain sockets (default for Linux/*BSD)
# udp = UDP sockets (default for Windows)
# y = use default (backwards compatibility)
# If this option is commented out, control interface is not included in the
# build.
CONFIG_CTRL_IFACE=y

# Include support for GNU Readline and History Libraries in wpa_cli.
# When building a wpa_cli binary for distribution, please note that these
# libraries are licensed under GPL and as such, BSD license may not apply for
# the resulting binary.
#CONFIG_READLINE=y

# Remove debugging code that is printing out debug message to stdout.
# This can be used to reduce the size of the wpa_supplicant considerably
# if debugging code is not needed. The size reduction can be around 35%
# (e.g., 90 kB).
#CONFIG_NO_STDOUT_DEBUG=y

# Remove WPA support, e.g., for wired-only IEEE 802.1X supplicant, to save
# 35-50 kB in code size.
#CONFIG_NO_WPA=y

# Remove WPA2 support. This allows WPA to be used, but removes WPA2 code to
# save about 1 kB in code size when building only WPA-Personal (no EAP support)
# or 6 kB if building for WPA-Enterprise.
#CONFIG_NO_WPA2=y

# Remove AES extra functions. This can be used to reduce code size by about
# 1.5 kB by removing extra AES modes that are not needed for commonly used
# client configurations (they are needed for some EAP types).
#CONFIG_NO_AES_EXTRAS=y

# Select configuration backend:
# file = text file (e.g., wpa_supplicant.conf)
# winreg = Windows registry (see win_example.reg for an example)
CONFIG_BACKEND=file

# Select program entry point implementation:
# main = UNIX/POSIX like main() function (default)
# main_winsvc = Windows service (read parameters from registry)
# main_none = Very basic example (development use only)
#CONFIG_MAIN=main

# Select wrapper for operatins system and C library specific functions
# unix = UNIX/POSIX like systems (default)
# win32 = Windows systems
# none = Empty template
#CONFIG_OS=unix

# Select event loop implementation
# eloop = select() loop (default)
# eloop_win = Windows events and WaitForMultipleObject() loop
# eloop_none = Empty template
#CONFIG_ELOOP=eloop

# Select layer 2 packet implementation
# linux = Linux packet socket (default)
# pcap = libpcap/libdnet/WinPcap
# freebsd = FreeBSD libpcap
# winpcap = WinPcap with receive thread
# ndis = Windows NDISUIO (note: requires CONFIG_USE_NDISUIO=y)
# none = Empty template
#CONFIG_L2_PACKET=linux

# IEEE 802.11i/IEEE 802.11e STAKey negotiation for direct link connection
#CONFIG_STAKEY=y

# Proposed replacement for STAKey negotiation: PeerKey handshake for
# Station to Station Link
CONFIG_PEERKEY=y

# Select TLS implementation
# openssl = OpenSSL (default)
# gnutls = GnuTLS (needed for TLS/IA, see also CONFIG_GNUTLS_EXTRA)
# internal = Internal TLSv1 implementation (experimental)
# none = Empty template
#CONFIG_TLS=openssl

# Whether to enable TLS/IA support, which is required for EAP-TTLSv1.
# You need CONFIG_TLS=gnutls for this to have any effect. Please note that
# even though the core GnuTLS library is released under LGPL, this extra
# library uses GPL and as such, the terms of GPL apply to the combination
# of wpa_supplicant and GnuTLS if this option is enabled. BSD license may not
# apply for distribution of the resulting binary.
#CONFIG_GNUTLS_EXTRA=y

# If CONFIG_TLS=internal is used, additional library and include paths are
# needed for LibTomCrypt and TomsFastMath.
#LTC_PATH=/usr/src/libtomcrypt-1.11
#TFM_PATH=/usr/src/tomsfastmath-0.09
#CFLAGS += -I$(LTC_PATH)/src/headers
#LIBS += -L$(LTC_PATH) -L$(TFM_PATH)
#LIBS_p += -L$(LTC_PATH) -L$(TFM_PATH)

# Integrate ndis_events.exe functionality into wpa_supplicant.
# This is only for Windows builds and requires WMI-related header files and
# WbemUuid.Lib from Platform SDK even when building with MinGW.
#CONFIG_NDIS_EVENTS_INTEGRATED=y
#PLATFORMSDKLIB="/opt/Program Files/Microsoft Platform SDK/Lib"

# Add support for DBus control interface
#CONFIG_CTRL_IFACE_DBUS=y

# Add support for loading EAP methods dynamically as shared libraries.
# When this option is enabled, each EAP method can be either included
# statically (CONFIG_EAP_<method>=y) or dynamically (CONFIG_EAP_<method>=dyn).
# Dynamic EAP methods are build as shared objects (eap_*.so) and they need to
# be loaded in the beginning of the wpa_supplicant configuration file
# (see load_dynamic_eap parameter in the example file) before being used in
# the network blocks.
#
# Note that some shared parts of EAP methods are included in the main program
# and in order to be able to use dynamic EAP methods using these parts, the
# main program must have been build with the EAP method enabled (=y or =dyn).
# This means that EAP-TLS/PEAP/TTLS/FAST cannot be added as dynamic libraries
# unless at least one of them was included in the main build to force inclusion
# of the shared code. Similarly, at least one of EAP-SIM/AKA must be included
# in the main build to be able to load these methods dynamically.
#
# Please also note that using dynamic libraries will increase the total binary
# size. Thus, it may not be the best option for targets that have limited
# amount of memory/flash.
CONFIG_DYNAMIC_EAP_METHODS=y

# Include client MLME (management frame processing).
# This can be used to move MLME processing of Devicescape IEEE 802.11 stack
# into user space.
#CONFIG_CLIENT_MLME=y
# Currently, driver_devicescape.c build requires some additional parameters
# to be able to include some of the kernel header files. Following lines can
# be used to set these (WIRELESS_DEV must point to the root directory of the
# wireless-dev.git tree).
WIRELESS_DEV=/lib/modules/2.6.24-ARCH/build
CFLAGS += -I$(WIRELESS_DEV)/net/mac80211

Last edited by pseudonomous (2008-08-24 08:23:23)

Offline

#8 2008-08-24 08:20:20

pseudonomous
Member
Registered: 2008-04-23
Posts: 349

Re: [SOLVED] WPA_SUPPLICANT and rt2500 chipset cards [SOLVED]

This is my makepkg, it was customized in the "conflicts" and "provides" fields, so maybe that's a problem

# Contributor: iztok pizorn <pizorn@gmail.com>
# Contributor: William Rea <sillywilly@gmail.com>
pkgname=wpa_supplicant-bsd
pkgver=0.5.10
_madwifi_ver=0.9.4
pkgrel=1
pkgdesc="wpa-supplicant with bsd drivers and few others "
arch=('i686')
makedepends=('kernel26>=2.6.24')
depends=('openssl')
conflicts=('wpa_supplicant')
provides=('wpa_supplicant')
license=('GPL')
groups=('base')
backup=('etc/wpa_supplicant.conf')
url="http://hostap.epitest.fi/wpa_supplicant"
source=(http://hostap.epitest.fi/releases/wpa_supplicant-$pkgver.tar.gz
        config
http://downloads.sourceforge.net/sourceforge/madwifi/madwifi-${_madwifi_ver}.tar.gz)
install='wpa_supplicant.install'
md5sums=('9e7b99da67c47d81121368c6d580d069'
         '87a7bb38e0b4820b29065a9b3e8f4e06'
         '399d20de8d855a59f20058857c2178ad')

build() {
  cd ${startdir}/src/
  mv madwifi-${_madwifi_ver} madwifi
  cd $startdir/src/$pkgname-$pkgver
  cp ../config ./.config
  sed -i 's@/usr/local@$(PREFIX)@g' Makefile
  sed -i 's@dynamic_eap_methods@@g' Makefile
  make || return 1
  make PREFIX=/usr DESTDIR=$startdir/pkg install || return 1
  install -D -m644 wpa_supplicant.conf $startdir/pkg/etc/wpa_supplicant.conf || return 1
  install -d -m755 $startdir/pkg/usr/man/man{5,8} || return 1
  install -m644 doc/docbook/wpa_supplicant.conf.5 $startdir/pkg/usr/man/man5 || return 1
  install -m644 doc/docbook/{wpa_background,wpa_cli,wpa_passphrase,wpa_supplicant}.8 $startdir/pkg/usr/man/man8 || return 1
}

Last edited by pseudonomous (2008-08-24 08:25:40)

Offline

#9 2008-08-24 10:36:29

tomk
Forum Fellow
From: Ireland
Registered: 2004-07-21
Posts: 9,839

Re: [SOLVED] WPA_SUPPLICANT and rt2500 chipset cards [SOLVED]

OK, one more time....

Please try the rt2500pci driver included in the kernel package with the default wpa_supplicant package - no rebuild required. This will work with -Dwext driver option. If you have already installed a legacy rt2500 driver package, either remove it or blacklist the module to prevent conflicts.

Offline

#10 2008-08-24 20:33:52

pseudonomous
Member
Registered: 2008-04-23
Posts: 349

Re: [SOLVED] WPA_SUPPLICANT and rt2500 chipset cards [SOLVED]

edited for typos

Well, poop.

I feel a bit like an idiot, now, but at least I'm an idiot with a working wireless connection.

If I can, I'm going to change the name of this thread to reflect the content and edit my first post, so that, potentially
somebody else w. and rt2500 chipset card and the same problem could, potentially, read this thread, could you please let me know if I say something wrong/misleading?

Thanks, tomk!

Last edited by pseudonomous (2008-08-24 21:27:55)

Offline

#11 2008-08-24 21:32:27

tomk
Forum Fellow
From: Ireland
Registered: 2004-07-21
Posts: 9,839

Re: [SOLVED] WPA_SUPPLICANT and rt2500 chipset cards [SOLVED]

\o/ We got there in the end!

Seriously, glad you got it working. smile

Offline

Board footer

Powered by FluxBB