GPL Source for Huawei S7 Ideos Wifi Broadcom BCM4329, Android 2.1

SikYou

Member
Dec 25, 2010
180
17
Funny how this pops up just a day or 2 after you call them out on not being GPL compliant.

Sent from my S7
 

Balcora

Member
Feb 6, 2011
59
15
I know right, but I'm not fussed lulz should be a good read, in other news I broke some more of the bootloader, will post the details in the detailed info thread

Sent from my S7
 

xaueious

Administrator
Staff member
Jul 9, 2010
3,483
436
Took a quick look and compared to AOSP, and this is just the Eclair release of the BCM4329 driver, version 4.218.161.0

My Singapore firmware actually uses 4.218.205.0.

modinfo on my dhd.ko
filename: dhd.ko
license: GPL v2
alias: sdio:c00v*d*
alias: sdio:c*v02D0d4329*
alias: sdio:c*v02D0d0000*
depends:
vermagic: 2.6.29-s70 preempt mod_unload ARMv7
parm: clockoverride:SDIO card clock override (int)
parm: sd_msglevel:uint
parm: sd_power:uint
parm: sd_clock:uint
parm: sd_divisor:uint
parm: sd_sdmode:uint
parm: sd_hiok:uint
parm: sd_f2_blocksize:int
parm: firmware_path:string
parm: nvram_path:string
parm: dhd_msg_level:int
parm: dhd_sysioc:uint
parm: dhd_watchdog_ms:uint
parm: dhd_watchdog_prio:int
parm: dhd_dpc_prio:int
parm: dhd_dongle_memsize:int
parm: iface_name:string
parm: dhd_idletime:int
parm: dhd_poll:uint
parm: dhd_intr:uint
parm: dhd_sdiod_drive_strength:uint
parm: dhd_txbound:uint
parm: dhd_rxbound:uint
parm: dhd_deferred_tx:uint

I don't even see it http://android.git.kernel.org/?p=platform/hardware/broadcom/wlan.git;a=shortlog

Feeling that this doesn't actually matter...
 

xaueious

Administrator
Staff member
Jul 9, 2010
3,483
436
Basically I got as far as building a module dhd.ko, but I don't know what to do with the stack/back trace after it loads a whole bunch of stuff.

Can we request Huawei for a Makefile, or do we do this by trial and error? Also, is it okay for us to request the sources distributed for the ones associated with our firmware?
 

Balcora

Member
Feb 6, 2011
59
15
We could create our own; but as for the module being the old one; we can email them regarding breach of GPL for not releasing up to date source.

Some companies seem to believe that "releasing source" means they can just release the pre-alpha code and that negates their GPL dues.
But no, its GPL and specifically with the kernel, its supposed to be decent availability of the active release code, they don't necissarily have to give experimental code, but once it is released as a compiled module for use... i.e. in the S7, it needs to be made available.
 

xaueious

Administrator
Staff member
Jul 9, 2010
3,483
436
I managed to compile dhd.ko from copying the BCM4329 off cm-kernel and tweaking the Makefile, but I get a stack/back trace which I do not know how to deal with.

Emailing Huawei first...
 

rictec

Member
Jan 30, 2011
127
24
anyone tryed download and compile the broadcom wifi driver that was put online ?

rictec
 

xaueious

Administrator
Staff member
Jul 9, 2010
3,483
436
They got use this now: S7_Broadcom_BCM4329_4.218.205. 0_Open_Source
IDEOS S7 - Huawei Device Co., Ltd..

Still probably cannot get it to compile. I asked pershoot and he told me to look at the GPIO stuff, which I do not really know how to start with.

Will download and inspect anyways.

This source code was not on AOSP, so maybe this has what we need.
 

xaueious

Administrator
Staff member
Jul 9, 2010
3,483
436
I got dhd.ko compiled and working with netfilter/iptables, but wifi tether freezes the S7 immediately. Droidwall is confirmed to work though, so at least we have that much working.

Anyways we can do more with the kernel now...

Do not have working git, but for now I just used https://github.com/cleaton/liquid-chocolate/tree/master/drivers/net/wireless/bcm4329 and replaced it with Huawei's files

I also coded in the nvram and firmware paths.
 

xaueious

Administrator
Staff member
Jul 9, 2010
3,483
436
I want someone to clean this up. Just because this works, does not mean this is without bugs. This was a lot of copy pasting and not a whole lot of thinking.

Drop this into the kernel source tree at:
Code:
/drivers/net/wireless/bcm4329
Download Multiupload

modify
Code:
/drivers/net/wireless/Kconfig
and add:
Code:
source "drivers/net/wireless/bcm4329/Kconfig"

modify
Code:
/drivers/net/wireless/Makefile
and add:
Code:
obj-$(CONFIG_BCM4329)  += bcm4329/

then do a: make oldconfig, and build for BCM4329


Credits:
roggin's modifications to Liquid from Qualcomm Liquid Chocolate (git https://github.com/cleaton) to port BCM4329
Kconfig from cm-kernel, modification to dhd_common.c under dhd_common_int (hardcode firmware and nvram path):
Code:
#ifdef CONFIG_BCM4329_FW_PATH
	strncpy(fw_path, CONFIG_BCM4329_FW_PATH, MOD_PARAM_PATHLEN-1);
#else
	fw_path[0] = '\0';
#endif
#ifdef CONFIG_BCM4329_NVRAM_PATH
	strncpy(nv_path, CONFIG_BCM4329_NVRAM_PATH, MOD_PARAM_PATHLEN-1);
#else
	nv_path[0] = '\0';
#endif


Proof of concept
boot.img and dhd.ko with netfilter/iptables support: http://www.multiupload.com/SMGZPIH6U0
 

SikYou

Member
Dec 25, 2010
180
17
I don't know a whole lot about droidwall or iptables but great work!

Sent from my S7
 
Top