[Galaxy S I9000 General] dangrayorg:
You already know how to flash but COMPLETE steps below for anyone new who is just starting out.

I'm using Linux and Heimdall. You can get Heimdall for windows if you wish, I assume steps and commands are the same (you'll need to disable Kies in windows, I don't know how)

Make sure you have lots of space on your internal SD card (I had 3.5Gb and no problems).

Make sure the phone is fully charged.

Enable debug mode under Wireless and network -> USB settings

Windows? Ensure KIES is disabled.

Plug USB cable into laptop

Download the 3-button boot to allow you to place the phone into 'download' mode

(for downloading kernels and other goodies to the phone) and 'recovery' mode (to allow you to select configurable options in custom kernels'

Search the forums.

http://xdaforums.com/showthread.php?t=788108

http://xdaforums.com/showthread.php?t=822756

http://xdaforums.com/showthread.php?t=785201

Step 1, three button recovery. The files you're looking for are:

'GT-I9000_P-SBL_RCVDL_FIX_ODIN.7z'

and you need a pit, which is some kind of bootloader

's1_odin_20100512.rar' (search forums)

Now, extract the 7z file and un-tar the Aries_P-SBL.tar.md5 archive file it contains.

Unrar the s1_odin_20100512.rar archive.

Download the android SDK from google and install it. The adb tool that comes with it is the easiest way to put the phone into 'download' mode.

Put the phone into download mode and use heimdall to send the 3-button boot files:

'adb reboot download'

wait for a few seconds until the screen shows Download mode

'heimdall flash --pit s1_odin_20100512.pit --boot boot.bin --secondary Sbl.bin'

Wait for reboot.

Shutdown and check that you can enter all the download modes by pressing volumedown + home + power to enter download mode (cycle power when it comes up) and volumedown + home + power to enter recovery mode.

Reboot phone.

Install the CF-root kernel to allow you to gain root and backup efs.

I have JPO but CF-Root-JPM-v1.2-Busybox-1.17.1.zip worked just fine.

Extract and untar CF-Root-JPM-v1.2-Busybox-1.17.1.zip to get a kernel image called zImage.

again put the phone in download mode:

'adb reboot download'

wait for a few seconds until the screen shows Download mode

'heimdall flash --kernel zImage --pit s1_odin_20100512.pit'

Wait for reboot.

You now have a kernel with root access. This was a practice flash before the more complex speedmod kernel and gives you a chance to backup /efs

Again, use adb. Get a root shell on the phone and backup your efs

'adb shell'

$ <- this is the shell promot

$ su

# <- this is the superuser prompt

# cp -a /efs /sdcard/efs

#

# exit

adb pull /sdcard/efs

Extract the speedmod-kernel-i1_2-250hz-r2.zip file linked to above and again untar it. You will have another Linux kernel also called zImage. Don't get it mixed up with CF-Root.

again put the phone in download mode:

'adb reboot download'

wait for a few seconds until the screen shows Download mode

'heimdall flash --kernel zImage --pit s1_odin_20100512.pit'

Wait for reboot.

Once fully booted into the new kernel shutdown and restart in recovery mode.

Use the volume key to go up and down. Go to 'advanced ULK features' -> 'Lagfix options'->'Use No-RFS advanced a=e4'

Go Back

Go to 'Tweak options' and select all four tweeks inside (these alter some Kernel parameters).

Go Back

Go Back

Reboot System Now

After a mini-boot you'll get a warning about config files not matching. This is the system preparing to reformat the phone to ext4. Select the first option "Yes, with backup and restore"

Let the system backup your phone to the SD card

Let the system reformat your device

Let the system restore your phone

System reboots. Lagfix is installed

Profit.....

D