nexus S how to manually load bcm4329.ko?

553 views
Skip to first unread message

Xuan-Thuy Dang

unread,
Nov 4, 2011, 6:45:23 AM11/4/11
to android-platform
Hi,

I'm trying to use command line to connect to ad-hoc network without
Wifi in Settings activated. When loading with 'insmod /system/modules/
bcm4329.ko' my nexus S just hangs. 'dmesg' shows that firmware not
found; fw_bcm4329.bin is actually in /system/vendor/firmware/
fw_bcm4329.bin:

<4>[ 354.173186] DHD: dongle ram size is set to 294912(orig 294912)
<4>[ 354.174251] _dhdsdio_download_firmware: dongle image file
download failed
<4>[ 354.174441] dhd_bus_start: dhdsdio_probe_download failed.
firmware = /system/etc/firmware/fw_bcm4329.bin nvram = /proc/
calibration
<4>[ 354.174600] dhdsdio_probe: failed
<4>[ 365.941444] dhd_module_init: sdio_register_driver timeout

Question: Can anyone help me understand how Nexus S loads this
module?

The file /hardware/libhardware_legacy/wifi/wifi.c has following lines:
static const char IFACE_DIR[] = "/data/system/
wpa_supplicant";
static const char DRIVER_MODULE_NAME[] = WIFI_DRIVER_MODULE_NAME;
static const char DRIVER_MODULE_TAG[] = WIFI_DRIVER_MODULE_NAME " ";
static const char DRIVER_MODULE_PATH[] = WIFI_DRIVER_MODULE_PATH;
static const char DRIVER_MODULE_ARG[] = WIFI_DRIVER_MODULE_ARG;
static const char FIRMWARE_LOADER[] = WIFI_FIRMWARE_LOADER;
static const char DRIVER_PROP_NAME[] = "wlan.driver.status";

Question: is the Path to wifi module redefined somewhere?

Thanks
Thuy.

Howard M. Harte

unread,
Nov 5, 2011, 1:21:59 PM11/5/11
to android-platform
Hello Thuy,

Please use the fw_path and nvram_path module parameters when you
insmod. You may need to use busybox insmod or quote the insmod
command line, as I remember there was an issue with multiple
parameters on the Android version of insmod.

Alternatively you can change the defaults in the driver source and
recompiled bcm4329.ko.

-Howard

Paul Gardner-Stephen

unread,
Nov 5, 2011, 5:12:27 PM11/5/11
to android-platform
Hi,

If you are just after easy access to adhoc mode on a variety of
handsets, you may wish to use the open source Serval batphone software
0.07RC1 or newer that includes a number of heuristics to work out how
to drive the wifi chipset on any given phone. If it doesn't work on
your phone, we will add support for it. This way you don't end up
with being stuck on just one model of handset.

Poke me off list for the latest APK to save building from source if
you prefer.

Paul.

Xuan-Thuy Dang

unread,
Nov 6, 2011, 3:14:18 PM11/6/11
to android-platform
Hi Howard,

Thanks for your hint! it works with my nexus s running CM 7. For
future visitors this is what I did:

busybox insmod /system/modules/bcm4329.ko firmware_path=/system/vendor/
firmware/fw_bcm4329.bin nvram_path=/system/vendor/firmware/
nvram_net.txt

then use 'ip' and 'iwconfig' to setup ad-hoc network and IP address.

Thanks a lot
Thuy

Frank Hodum

unread,
Dec 15, 2011, 1:43:58 PM12/15/11
to android-...@googlegroups.com
I tried the Serval code from the git repository and it did not work for my phone - Nexus S. Where, how would I provide a working script for it.  Actually, what Thuy posted above works.

-frank

Paul Gardner-Stephen

unread,
Dec 16, 2011, 4:20:49 PM12/16/11
to android-platform
Hi,

There is a new 0.07 release of Serval on the market (free). Try
that. If it doesn't work, poke me off list and we will figure it out
for you.

Paul.

Reply all
Reply to author
Forward
0 new messages