wifi problem

i got problems when deal with usb wifi for android on devkit8000
the log show as below

I/WifiHW ( 873): Loading WiFi Modules
D/SettingsWifiEnabler( 1121): Received wifi state changed from
Disabled to Enabling
E/WifiHW ( 873): Cannot find driver rt73usb in proc
I/WifiHW ( 873): insmod
I/WifiHW ( 873): insmod
I/WifiHW ( 873): insmod
init: no such service 'wlan_loader'

i find that there is no wlan_loader in android RFS ,so wt shd i do.
And why it say Cannot find driver rt73usb in proc ,however i have
enable it in the kernel config.
What can i do to deal with the problems. thx!

Thanks and Regards,
King.S

Hello,

It looks like you are missing firmware of rt73 chipset.
Download rt73.bin from net.
This firmware is required for wireless device to function.

Regards,
Omkar

On Ubuntu, it is available as part of linux-firmware package…

Hi,
i put the firmware to the SD card and it detected but still got the
same message Cannot find driver rt73usb in proc and Init: no such
service 'wlan_loader' .

Does android really have wlan_loader?
thx!

Thanks and Regards,
King.S

In Android, wlan_loader is the service that downloads the firmware.
It is specific to the TI 1251 chipset used on the HTC Dream, aka G1/
ADP1.

There are different ways to get the firmware loaded, for example, the
Broadcom 4325 driver that is also included in Android downloads the
firmware when the driver is insmoded, so wlan_loader is not needed.
If your WLAN chipset includes a user-mode app to download the
firmware, you need to setup a service for it in init.rc, and cause the
service to call your loader. From the Linux command line, you can
'start wlan_loader' to test your service separate from the framework.

It is best to use Android 1.6 (Donut) for WLAN, since a lot of TI-
specific stuff was hardcoded into the framework/platform code for
Android 1.5 and earlier. For Donut, different WLAN chipsets can be
used without modifying the framework.

You will also need Wireless Extensions (WEXT) turned on in the kernel,
and will have to implement a handful of private WEXT ioctl's for
Android. See src/wl/sys/wl_iw.c in the Broadcom driver on android.git.kernel.org
  for details.

-Howard

hi,
Thx very much~~!
very clear explanation!

Thanks and Regards,
King.S

Hi,
I am using WUSB54GC adapter which chipset shd use Ralink rt73 driver
and it is included in the kernel.
And i put the firmware in the SDCard and it detect already. Does it
mean it no need wlan-loader?
Then what cause the problem? And how i can know the content inside
proc/modules?

the log:
phy0 -> rt2x00lib_request_firmware: Info - Loading firmware file
'rt73.bin'.
rt73usb 1-1.4:1.0: firmware: requesting rt73.bin
init: untracked pid 860 exited
phy0 -> rt2x00lib_request_firmware: Info - Firmware detected -
version: 1.7.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 0 - CWmin: 5,
CWmax: 10, Aifs: 2, TXop: 0.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 1 - CWmin: 5,
CWmax: 10, Aifs: 2, TXop: 0.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 2 - CWmin: 5,
CWmax: 10, Aifs: 2, TXop: 0.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 3 - CWmin: 5,
CWmax: 10, Aifs: 2, TXop: 0.

E/WifiHW ( 866): Cannot find driver rt73usb in proc
I/WifiHW ( 866): insmod
rt2x00lib: exports duplicate symbol rt2x00lib_resume (owned by kernel)
I/WifiHW ( 866): insmod
rt2x00usb: exports duplicate symbol rt2x00usb_resume (owned by kernel)
I/WifiHW ( 866): insmod
rt73usb: module is already loaded.
init: no such service 'wlan_loader'

Thanks and Regards,
King.S

The Android framework expects that the WLAN driver is a loadable
module, not built into the kernel. When WLAN is turned on in the
Settings UI, the framework calls platform code to insmod the module.
When WLAN is turned off, the module is rmmoded. Try building your
WLAN driver as a loadable module, instead of built-in to the kernel.
You'll have to then copy the .ko module to your Android filesystem.

-Howard

hi,
i found that if the driver is not built-in, it cannot recongise the
usb wifi as wlan0 and wont load the firmware.
by the way if i manually key in the "wpa_supplicant -Dwext -iwlan0 -c/
system/etc/wifi/wpa_supplicant.conf -dd"
it give out the following, but the web browser say it no signal. what
shd i do??

Just select the option to build zd or rt (whatever chipset u have) in kernel.
Build them as part of kernel and not as modules.

Regards,
Omkar

hi,
i have build in the driver in the kernel after that what shd i do?

Thanks and Regards,
King.S

simply boot using new kernel.
check if your device gets detected.
It should look for firmware in /usr/lib

regards,
Omkar

Now i can sometime to enable the wifi which around 1 time success to
enable per 1x time trail.
Does anyone know why and how to solve??

the log of succeessful wifi enable

init: no such service 'wlan_loader'
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 0 - CWmin: 4,
CWmax: 10, Aifs: 2, TXop: 0.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 1 - CWmin: 4,
CWmax: 10, Aifs: 2, TXop: 0.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 2 - CWmin: 4,
CWmax: 10, Aifs: 2, TXop: 0.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX queue 3 - CWmin: 4,
CWmax: 10, Aifs: 2, TXop: 0.
cfg80211: Calling CRDA for country: HK
I/WifiHW ( 872): Loading WiFi Modules
D/SettingsWifiEnabler( 1070): Received wifi state changed from Unknown
to Enabling
I/WifiHW ( 872): insmod
I/WifiHW ( 872): insmod
I/WifiHW ( 872): insmod
init: no such service 'wlan_loader'
I/WifiHW ( 872): start wifi_start_supplicant
E/WifiHW ( 872): ensure_config_file_exists
I/WifiHW ( 872): Wi-Fi is running
I/WifiHW ( 872): wifi_connect_to_supplicant called
I/WifiHW ( 872): Interface directory = /data/system/wpa_supplicant
I/WifiHW ( 872): Interface name = /data/system/wpa_supplicant/wlan0

Thanks and Regards,
King.S

HI,
i find that it sometime can load the driver and sometime cant load the
driver, so what can i do to ensureit can load the driver?
And also i find there is nothing show when i do "lsmod".
So what is the possible problem?

Thanks and Regards,
King.S