[Galaxy S Plus I9001 Android Development] skywalker01:
Hi, welcome back again. In the meanwhile I've just begun (8 days ago) to compile my own kernel. I also use the Samsung sources of course and implemented most changes of manveru0 among some of my own. I am still investigating how this kernel works (in some respects it is very different to common desktop linux kernels) and the WLAN part is really odd. Although I found some details by now i still don't understand it completely. But there are at least 5 different parts that must fit all together to make it work:

external dhd module in /system/etc/wifi

additional bcm4329 binaries in /system/etc/wifi

binaries in /system/bin

persist partition with wlan (and bt) config files

several scripts that configure and start a lot of WLAN stuff; can't remember all right now, but there are several sh scripts in /system/etc one in the kernel ramdisk and both rc files in the kernel ramdisk. There were also some conf files and an hcd file (in /system/bin and whatever that is) somewhere wildly spreaded throughout /system

There are also additional modules in /system/lib/modules. You don't need the libra files if you configured broadcom wifi in the kernel .config (with libra config not set). Didn't test the WCN1314 files so far, guess they are also for WLAN (libra or broadcom ?) or for BT.

If you delete the libra modules WLAN in all stock roms with libra drivers only won't work.

Then there are also additional WLAN files in /system/etc/firmware/wlan which might be necessary as well. Perhaps for libra only, perhaps for broadcom drivers or even both.

The bcm4329 sources that manveru0 implemented in his kernel don't compile. I guess WLAN only works with his kernel because the kernel loads the already compiled external dhd module which lies in /system/etc/wifi. I guess it is loaded automatically because of this compiler setting: CONFIG_MODULE_FORCE_LOAD=y

But I didn't have the time so far to test all of that.

You can have a look at my last working sources on github, but most of my own changes so far are not in the kernel sources but in the compiler config settings, the ramdisk scripts, some files in /system and on local drive only. Which means that most of it isn't released to the public yet as I regard it still to be in a beta testing phase. But at least V1.2 seems to work stable so far for me and Rhonin86. See this thread for more details on my kernel work: http://xdaforums.com/showthread.php?t=1432587

BTW: I didn't fork your or manveru0's kernel sources but doing it all from scratch to better understand the kernel. I think this is the best method to port the kernel to another AOSP ROM like CM, at least for me.

So i also didn't start to create my own CWM clone or even a whole android os, I will begin with that somewhat later.

But two more hints you might have missed regarding CWM and recovery mode:

manveru0 tried to implement your param.c changes but this didn't work at all for his phone so he dismissed them. He ported recovery to CWM 5.5.0.4 on 4th of January which seems to be his last activity with the I9001 development.

wiping the param partition completely or at least the bootloader command inside will also cure the recovery loop issues on the affected phones (tested by wintel_mac and others AFAIR). Doing this in CWM only (without altering anything in the kernel) just before rebooting the system seems to be the best solution as it should work on ALL I9001 phones.