0

我正在尝试使用命令行连接到 ad-hoc 网络而没有激活设置中的 Wifi。当使用“insmod /system/modules/bcm4329.ko”加载时,我的 nexus S 只是挂起。'dmesg' 显示未找到固件;fw_bcm4329.bin 实际上在 /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

将固件链接到所需位置无济于事。问题:谁能帮我理解 Nexus S 是如何加载这个模块的?

文件 /hardware/libhardware_legacy/wifi/wifi.c 有以下几行:

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";

问题:wifi 模块的路径是否在某处重新定义?

谢谢

4

1 回答 1

1

我在 android_platform 小组的帮助下找到了答案。这适用于 nexus 上的 CM7:

busybox insmod /system/modules/bcm4329.ko firmware_path=/system/vendor/ firmware/fw_bcm4329.bin nvram_path=/system/vendor/firmware/ nvram_net.txt 
于 2012-04-25T16:33:16.907 回答