Bug#588863: linux-image-2.6-686: rt3090sta module requires /etc/Wireless/RT2860STA/RT2860STA.dat
The rt3090sta module loads but does not function if the file
/etc/Wireless/RT2860STA/RT2860STA.dat is not present, thus breaking wifi
for devices using this module. This file corresponds to the wrong kernel
module name and is not distributed in any debian package. Note that the driver
functions correctly if the file is present but empty.
The file is reported as being optional for RT2860 but appears manditory for
Comparing rt2860/rt_profile.c and rt3090/rt_profile.c shows some
differences in the implementation of RTMPReadParametersHook which is the
function which reads the file.
rt2860 has a retval value which does not appear to be used. The
function only returns failure if it cannot allocate a buffer to read the
ini file and its parameters. If it doesn't open the file the meat of the
function is skipped and the function returns NDIS_STATUS_SUCCESS anyway.
rt3090 initializes retval to NDIS_STATUS_FAILURE. This is unchanged if
there is an error opening the file and is returned at the end of the
function. This propogates through to abort the module.
Output from dmesg when the file is not present:
[ 26.470395] RX DESC f6496000 size = 2048
[ 26.471058] <-- RTMPAllocTxRxRingMemory, Status=0
[ 26.475292] RtmpOSFileOpen(): Error 2 opening /etc/Wireless/RT2860STA/RT2860STA.dat
[ 26.475305] Open file "/etc/Wireless/RT2860STA/RT2860STA.dat" failed!
[ 26.475314] 1. Phy Mode = 0
[ 26.475319] ERROR!!! NICReadRegParameters failed, Status[=0x00000001]
[ 26.480576] !!! rt28xx Initialized fail !!!
Output from dmesg when the file is present and empty:
[ 557.889591] <-- RTMPAllocTxRxRingMemory, Status=0
[ 557.894120] Read file "/etc/Wireless/RT2860STA/RT2860STA.dat" failed(errCode=0)!
[ 557.894147] 1. Phy Mode = 0
[ 557.894154] 2. Phy Mode = 0
[ 557.894162] NVM is Efuse and its size =2d[2d0-2fc]
[ 557.896031] 3. Phy Mode = 0
[ 557.920012] MCS Set = 00 00 00 00 00
[ 558.116167] RTMPFilterCalibration - can't find a valid value, loopcnt=102 stop calibrating<==== rt28xx_init, Status=0
[ 558.117827] 0x1300 = 00073200
[ 558.117875] AUX_CTRL = 0x c02
[ 558.117884] Read AUX_CTRL = 0xc02
[ 558.117891] Write AUX_CTRL = 0x1c02
[ 558.117898] OSC_CTRL = 0x3ff11
-- System Information:
Debian Release: squeeze/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: i386 (i686)
Kernel: Linux 2.6.32-5-686 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages linux-image-2.6-686 depends on:
ii linux-image-2.6.32-5-686 2.6.32-15 Linux 2.6.32 for modern PCs
linux-image-2.6-686 recommends no packages.
linux-image-2.6-686 suggests no packages.
-- no debconf information