Attached a patch for the igepv2 board file to enable mmc2 which is
needed to access the wifi/bluetooth controller.
When you insmod the libertas driver you should see it requesting the firmware.
Also added the kernel config I used.
But be aware that the android part still needs to be fixed to except
other wifi drivers/firmware.
Hedwin.
> --
> You received this message because you are subscribed to the Google Groups "rowboat" group.
> To post to this group, send email to row...@googlegroups.com.
> To unsubscribe from this group, send email to rowboat+u...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/rowboat?hl=en.
>
>
Can you share your changes that make igepv2 wifi to work?
Thanks.
Artemi.
I'm looking at the wifi part on the android side to get the module loaded.
One thing though I have combined the libertas.ko and libertas_sdio.ko
into one kernel module (just some config tweaking)
because the current android wifi stuff only handles one kernel module.
Hedwin
btw you do not have to provide the firmware as an argument to the
module. when fw_name and helper_name are NULL it will
use the defaults, otherwise providing a fw_name and helper_name will
overrule the defaults.
Did not use the module arguments result is the same as you have.
Hedwin
On Sat, Aug 21, 2010 at 3:04 AM, Raphael Fonte Boa <rfon...@gmail.com> wrote:
> So, i tested the mmc driver with the stable kernel for igep and the
> same thousand of CMD52 are present.
> This is no problem I assume.
>
> Using the libertas_sdio driver as btuilt-in makes the firmware not to
Hedwin
Making very small steps. Had a lot of permission kind of errors, files
not found errors (started wondering how it can ever work).
The permission errors seem to be related with the fact that when wifi
activation starts the uid and gid are system,system while
the file ownership in most cases is wifi, wifi.
Pushing the wifi enable button in the UI now loads the drivers and
firmware correctly .
Communication with wpa_supplicant is also failing at my side, so
looking into this one.
If have updated the init.rc (file location and permission, adding
wpa_supplicant and dhcpd service) and the
BoardConfig.mk/AndroidBoard.mk (added the kernel driver and firmware
and wpa_supplicant build).
Still lots to investigate .....
Hedwin
I/power ( 870): *** set_screen_state 1
I/power ( 870): *** set_screen_state 1
I/power ( 870): *** set_screen_state 1
libertas_sdio: Libertas SDIO driver
libertas_sdio: Copyright Pierre Ossman
libertas_sdio mmc1:0001:1: firmware: requesting sd8686_helper.bin
init: untracked pid 1029 exited
libertas_sdio mmc1:0001:1: firmware: requesting sd8686.bin
init: untracked pid 1032 exited
D/SettingsWifiEnabler( 940): Received wifi state changed from
Disabled to Enabling
libertas: 00:26:e8:90:ba:8b, fw 9.70.3p24, cap 0x00000303
libertas: unidentified region code; using the default (USA)
libertas: wlan0: Marvell WLAN 802.11 adapter
I/WifiHW ( 870): ensure_config_file_exists: uid = 1000 gid = 1000
E/WifiHW ( 870): Error changing group ownership of
/data/misc/wifi/wpa_supplicant.conf to 1010: Operation not permitted
D/WifiService( 870): ACTION_BATTERY_CHANGED pluggedType: 1
E/WifiHW ( 870): Unable to open connection to supplicant on
"/data/system/wpa_supplicant/wlan0": No such file or directory
D/SettingsWifiEnabler( 940): Received wifi state changed from
Enabling to Enabled
D/wpa_supplicant( 1040): Initializing interface 'wlan0' conf
'/system/etc/wifi/wpa_supplicant.conf' driver 'wext' ctrl_interface
'N/A' bridg'
D/wpa_supplicant( 1040): Configuration file
'/system/etc/wifi/wpa_supplicant.conf' ->
'/system/etc/wifi/wpa_supplicant.conf'
D/wpa_supplicant( 1040): Reading configuration file
'/system/etc/wifi/wpa_supplicant.conf'
D/wpa_supplicant( 1040): update_config=1
D/wpa_supplicant( 1040): ctrl_interface='wlan0'
D/wpa_supplicant( 1040): eapol_version=1
D/wpa_supplicant( 1040): ap_scan=1
D/wpa_supplicant( 1040): fast_reauth=1
D/wpa_supplicant( 1040): Initializing interface (2) 'wlan0'
D/wpa_supplicant( 1040): EAPOL: SUPP_PAE entering state DISCONNECTED
D/wpa_supplicant( 1040): EAPOL: KEY_RX entering state NO_KEY_RECEIVE
D/wpa_supplicant( 1040): EAPOL: SUPP_BE entering state INITIALIZE
D/wpa_supplicant( 1040): EAP: EAP entering state DISABLED
D/wpa_supplicant( 1040): EAPOL: External notification - portEnabled=0
D/wpa_supplicant( 1040): EAPOL: External notification - portValid=0
D/wpa_supplicant( 1040): SIOCGIWRANGE: WE(compiled)=22 WE(source)=15
enc_capa=0xf
D/wpa_supplicant( 1040): capabilities: key_mgmt 0xf enc 0xf
D/wpa_supplicant( 1040): WEXT: Operstate: linkmode=1, operstate=5
D/wpa_supplicant( 1040): Own MAC address: 00:26:e8:90:ba:8b
D/wpa_supplicant( 1040): wpa_driver_wext_set_wpa
D/wpa_supplicant( 1040): wpa_driver_wext_set_key: alg=0 key_idx=0
set_tx=0 seq_len=0 key_len=0
D/wpa_supplicant( 1040): wpa_driver_wext_set_key: alg=0 key_idx=1
set_tx=0 seq_len=0 key_len=0
D/wpa_supplicant( 1040): wpa_driver_wext_set_key: alg=0 key_idx=2
set_tx=0 seq_len=0 key_len=0
D/wpa_supplicant( 1040): wpa_driver_wext_set_key: alg=0 key_idx=3
set_tx=0 seq_len=0 key_len=0
D/wpa_supplicant( 1040): wpa_driver_wext_set_countermeasures
D/wpa_supplicant( 1040): wpa_driver_wext_set_drop_unencrypted
D/wpa_supplicant( 1040): Setting scan request: 0 sec 100000 usec
E/wpa_supplicant( 1040): Failed to initialize control interface 'wlan0'.
E/wpa_supplicant( 1040): You may have another wpa_supplicant process
already running or the file was
E/wpa_supplicant( 1040): left by an unclean termination of
wpa_supplicant in which case you will need
E/wpa_supplicant( 1040): to manually remove this file before starting
wpa_supplicant again.
D/wpa_supplicant( 1040): Failed to add interface wlan0
D/wpa_supplicant( 1040): State: DISCONNECTED -> DISCONNECTED
I/wpa_supplicant( 1040): CTRL-EVENT-STATE-CHANGE id=-1 state=0
D/wpa_supplicant( 1040): wpa_driver_wext_set_operstate: operstate 0->0 (DORMANT)
D/wpa_supplicant( 1040): WEXT: Operstate: linkmode=-1, operstate=5
D/wpa_supplicant( 1040): No keys have been configured - skip key clearing
D/wpa_supplicant( 1040): EAPOL: External notification - portEnabled=0
D/wpa_supplicant( 1040): EAPOL: External notification - portValid=0
D/wpa_supplicant( 1040): wpa_driver_wext_set_wpa
D/wpa_supplicant( 1040): wpa_driver_wext_set_drop_unencrypted
D/wpa_supplicant( 1040): wpa_driver_wext_set_countermeasures
D/wpa_supplicant( 1040): No keys have been configured - skip key clearing
D/wpa_supplicant( 1040): Cancelling scan request
D/wpa_supplicant( 1040): Cancelling authentication timeout
D/wpa_supplicant( 1040): WEXT: Operstate: linkmode=0, operstate=6
I/power ( 870): *** set_screen_state 1
E/WifiHW ( 870): Supplicant not running, cannot connect
E/WifiHW ( 870): Supplicant not running, cannot connect
E/WifiHW ( 870): Supplicant noinit: no such service 'dhcpcd'
t running, cannot connect
V/WifiStateTracker( 870): Supplicant died unexpectedly
E/WifiStateTracker( 870): Could not stop DHCP
D/NetworkStateTracker( 870): setDetailed state, old =IDLE and new
state=DISCONNinit: no such service 'dhcpcd'
ECTED
D/SettingsWifiEnabler( 940): Received wifi state changed from Enabled
to Disabling
D/ConnectivityService( 870): ConnectivityChange for WIFI:
DISCONNECTED/DISCONNECTED
W/MobileDataStateTracker( 870): Ignoring feature request because
could not acquire PhoneService
W/MobileDataStateTracker( 870): Could not enable APN type "default"
E/WifiStateTracker( 870): Could not stop DHCP
D/SettingsWifiEnabler( 940): Received wifi state changed from
Disabling to Disabled
D/dalvikvm( 940): GC freed 4239 objects / 240312 bytes in 42ms
D/dalvikvm( 870): GC freed 17443 objects / 777384 bytes in 88ms
Regarding NFS, that is what crossed my mind as well.
Will check on my side what happens with loading/unloading the libertas
kernel module.
Did try it manually but left the services in init.rc. Will try again
with the wpa_supplicant/dhcpd removed from the init.rc
Hedwin.
Oh yes, tried the command line also but I get permission errors. Also
still don't understand why I should
use AID_SYSTEM to get to work.
Hedwin
Log >>>>>>>>>
ibertas_sdio: Libertas SDIO driver
libertas_sdio: Copyright Pierre Ossman
libertas_sdio mmc1:0001:1: firmware: requesting sd8686_helper.bin
init: untracked pid 1040 exited
libertas_sdio mmc1:0001:1: firmware: requesting sd8686.bin
init: untracked pid 1043 exited
D/SettingsWifiEnabler( 939): Received wifi state changed from
Disabled to Enabling
libertas: 00:26:e8:90:ba:8b, fw 9.70.3p24, cap 0x00000303
libertas: unidentified region code; using the default (USA)
libertas: wlan0: Marvell WLAN 802.11 adapter
I/WifiHW ( 865): ensure_config_file_exists: uid = 1000 gid = 1000
D/dalvikvm( 865): GC freed 14958 objects / 696760 bytes in 132ms
E/WifiHW ( 865): Unable to open connection to supplicant on
"/data/system/wpa_supplicany
D/wpa_supplicant( 1053): Initializing interface 'wlan0' conf
'/system/etc/wifi/wpa_suppli'
D/wpa_supplicant( 1053): Configuration file
'/system/etc/wifi/wpa_supplicant.conf' -> '/s'
D/wpa_supplicant( 1053): Reading configuration file
'/system/etc/wifi/wpa_supplicant.conf'
D/wpa_supplicant( 1053): update_config=1
D/wpa_supplicant( 1053): ctrl_interface='wlan0'
D/wpa_supplicant( 1053): eapol_version=1
D/wpa_supplicant( 1053): ap_scan=1
D/wpa_supplicant( 1053): fast_reauth=1
D/WifiService( 865): ACTION_BATTERY_CHANGED pluggedType: 1
D/wpa_supplicant( 1053): Initializing interface (2) 'wlan0'
D/wpa_supplicant( 1053): EAPOL: SUPP_PAE entering state DISCONNECTED
D/wpa_supplicant( 1053): EAPOL: KEY_RX entering state NO_KEY_RECEIVE
D/wpa_supplicant( 1053): EAPOL: SUPP_BE entering state INITIALIZE
D/wpa_supplicant( 1053): EAP: EAP entering state DISABLED
D/wpa_supplicant( 1053): EAPOL: External notification - portEnabled=0
D/wpa_supplicant( 1053): EAPOL: External notification - portValid=0
D/SettingsWifiEnabler( 939): Received wifi state changed from
Enabling to Enabled
D/wpa_supplicant( 1053): SIOCGIWRANGE: WE(compiled)=22 WE(source)=15
enc_capa=0xf
D/wpa_supplicant( 1053): capabilities: key_mgmt 0xf enc 0xf
D/wpa_supplicant( 1053): WEXT: Operstate: linkmode=1, operstate=5
D/wpa_supplicant( 1053): Failed to add interface wlan0
D/wpa_supplicant( 1053): State: DISCONNECTED -> DISCONNECTED
I/wpa_supplicant( 1053): CTRL-EVENT-STATE-CHANGE id=-1 state=0
D/wpa_supplicant( 1053): wpa_driver_wext_set_operstate: operstate 0->0 (DORMANT)
D/wpa_supplicant( 1053): WEXT: Operstate: linkmode=-1, operstate=5
D/wpa_supplicant( 1053): wpa_driver_wext_set_key: alg=0 key_idx=0
set_tx=0 seq_len=0 key_0
D/wpa_supplicant( 1053): Driver did not support SIOCSIWENCODEEXT
D/wpa_supplicant( 1053): wpa_driver_wext_set_key: alg=0 key_idx=1
set_tx=0 seq_len=0 key_0
D/wpa_supplicant( 1053): Driver did not support SIOCSIWENCODEEXT
D/wpa_supplicant( 1053): wpa_driver_wext_set_key: alg=0 key_idx=2
set_tx=0 seq_len=0 key_0
D/wpa_supplicant( 1053): Driver did not support SIOCSIWENCODEEXT
D/wpa_supplicant( 1053): wpa_driver_wext_set_key: alg=0 key_idx=3
set_tx=0 seq_len=0 key_0
D/wpa_supplicant( 1053): Driver did not support SIOCSIWENCODEEXT
D/wpa_supplicant( 1053): EAPOL: External notification - portEnabled=0
D/wpa_supplicant( 1053): EAPOL: External notification - portValid=0
D/wpa_supplicant( 1053): wpa_driver_wext_set_wpa
D/wpa_supplicant( 1053): WEXT: SIOCSIWAUTH(param 7 value 0x0) failed:
Operation not permi)
E/wpa_supplicant( 1053): Failed to disable WPA in the driver.
D/wpa_supplicant( 1053): wpa_driver_wext_set_drop_unencrypted
D/wpa_supplicant( 1053): WEXT: SIOCSIWAUTH(param 5 value 0x0) failed:
Operation not permi)
D/wpa_supplicant( 1053): wpa_driver_wext_set_countermeasures
D/wpa_supplicant( 1053): WEXT: SIOCSIWAUTH(param 4 value 0x0) failed:
Operation not permi)
D/wpa_supplicant( 1053): No keys have been configured - skip key clearing
D/wpa_supplicant( 1053): Cancelling scan request
D/wpa_supplicant( 1053): Cancelling authentication timeout
D/wpa_supplicant( 1053): WEXT: Operstate: linkmode=0, operstate=6
I/power ( 865): *** set_screen_state 1
E/WifiHW ( 865): Supplicant not running, cannot connect
E/WifiHW ( 865): Supplicant not running, cannot connect
E/WifiHW ( 865): Supplicant not running, cannot connect
V/WifiStateTracker( 865): Supplicant died unexpectedly
D/NetworkStateTracker( 865): setDetailed state, old =IDLE and new
state=DISCONNECTED
D/ConnectivityService( 865): ConnectivityChange for WIFI:
DISCONNECTED/DISCONNECTED
W/MobileDataStateTracker( 865): Ignoring feature request because
could not acquire Phonee
W/MobileDataStateTracker( 865): Could not enable APN type "default"
D/SettingsWifiEnabler( 939): Received wifi state changed from Enabled
to Disabling
D/SettingsWifiEnabler( 939): Received wifi state changed from
Disabling to Disabled
Some small bugfixes are needed.
- volume manager to not to see the SDIO wifi as a SD card
- extend the sd8686 dirver to handle more or less the SIOCSIWPRIV command
- there is a problem in the omap_hsmmc driver that for some reason
switches off the mmc_fclk clock, big workaround here I commented out
the line
The second needs some cleaning up, the last I need to figure out who
is requesting the clk to be disable.
What I have now is that scanning for AP seems to work. Android is
showing some APs I have.
Still needs to see if I can connect but considering the long run of
gettings this to work I happy
with the result sofar.
Hedwin
Hedwin, will you be able to re-post clean patches (or shall we look at
your previous post?)
Thanks.
Artemi.
Plan to clean up what I have next week and post the correct patches.
Also in the process off cloning the required gitorius repos and push
to these as well.
Hedwin
- SIOCSIWPRIV
Android needs the SIOCSIWPRIV command to be available, without it will
not work. I have looked at some
ways to add this but in the end the best way was to add this to the
libertas wifi driver. So that is what I did.
What is implemented now is the minimum required so it needs some
further looking into
but Wifi will still work.
- clock
What I started to notice is that after one scan the driver seemed to
stop working giving
lots of timeout warnings. Digging a bit further I found out that the
mmc driver always
was asked to disable the main clock, fclk. Why this happens is not
clear yet. Needs further looking into
Once I commented out the disabling of the clk, communication between
the driver and the
marvel firmware was ok and things started to get alive.
- vold
Vold as it is implemented now can only handle a mmc interface that has
sd-cards connected.
Connecting sometime other than an sd-card to the mmc resulted in a
crash in vold.
This problem is solved.
- socket
Had a lot of issue getting the sockets setup correctly. One way or
another it always got me into
a " permission denied" error. One thing here is that I assumed Wifi
would use uid= wifi and gid=wifi
, the init.rc is also setup according this assumption, but it turned
out not to be the case. uid and gid
when Wifi starts is system, system so I updated init.rc accordingly.
I also started to use sockets in the android socket namespace, this
made live much easier when it gets
to getting the correct permission.
No change in the code is needed for this, only changes are done in init.rc
Ok, this was my short summary.
I am now in the process of cleaning up, build is running as we "speak".
Once this is done I will start posting the patches.
Hedwin