I refer to the Developers read me file for linux command line instructions:
Flashing Firmware from Command Line:
1. Fully charge your phone (use the wall charger as it's faster).
2. Download a decrypted device ROM or a Heimdall Firmware Package
and extract everything to the one directory.
3. If the ROM is not a Heimdall Firmware Package it may instead be provided
as multiple archives (nested or otherwise), extract them all to the same
NOTE: If you want to use the CSC then extract it last.
4. Put your Galaxy S device into download mode and plug it in..
5. Open a terminal and navigate to the directory where you extracted
the ROM/firmware files.
6. Type the following to list all the functionality Heimdall supports:
7. Before flashing, you must first know the names of the partitions you
wish to flash. These can be obtained by executing:
heimdall print-pit --no-reboot
The inclusion of --no-reboot ensures the phone will not reboot after PIT
file has been downloaded and displayed. After executing a command with
the --no-reboot argument, the next command should include the --resume
NOTE: You can still safely reboot your phone manually (with the power
button) after executing --no-reboot commands.
8. Use the help and print-pit output to construct a command with all the
files you want to flash.
Here is an example that does a full flash and repartition on a GT-I9000:
heimdall flash --repartition --resume --pit s1_odin_20100512.pit --FACTORYFS factoryfs.rfs --CACHE cache.rfs --DBDATA dbdata.rfs --IBL+PBL boot.bin --SBL Sbl.bin --PARAM param.lfs --KERNEL zImage --MODEM modem.bin
9. Heimdall will display the progress as it flashes so that you know things
are working as they should.
How to Create a Heimdall Firmware Package:
Firstly, Heimdall's firmware package format is just a regular TAR archive
compressed with gzip. The only two real requirements are that a valid
firmware.xml must be included (refer to Appendix A) and you can only
include files (no directories, links etc.) As such if you'd like there is
nothing preventing you from creating Heimdall packages manually. Of course
Heimdall Frontend provides a simple user interface that takes care of all
the hard work for you.
There are two ways in which you can create a firmware package. You can
create a package from scratch, or you can load an existing package, apply
modifications and then save the package. Creating a package from scratch
is the preferred approach, by taking this approach you're far less likely
to run into file name length limitations.
Before you can access Heimdall Frontend's firmware creation functionality
(available from the "Create Package" tab) you must first specify which
files will be included in your package, as well as a few flashing options
i.e. Whether or not users should repartition when flashing. This
information must be filled out from the "Flash" tab in exactly the same
fashion you would provide information to flash your device (see "Performing
a Custom Flash with Heimdall Frontend"). As mentioned above, it's not the
preferred means, but you're able to load an existing package as a starting
point for this information.
Once you've specified the files/partitions you wish to include in your
firmware package the "Create Package" tab will become available. Clicking
this tab will display additional information that you can include in your
package. In order to continue you must fill out all sections except for the
URLs section, which is optional. The following is a break-down of what all
these options mean.
Depending on what Odin version you are using it can be slightly different. A newer Odin version it is pretty simple:
Make sure your bootloader is current with the devices firmware or updated. Check the
u# within the firmware zip/tar name.
1) unpack the .zip of the official firmware.
2) Start Odin.
3) connect your device through USB. Once connected a device should show up within the com box.
4) select AP, within the selection go to your unpacked firmware and select the tar.md file or tar file.
Make sure you do not select/enable anything with the pit option.
5) Once loaded push the start button and let it so it's thing.
It should take a bit or got to twenty minutes or more to boot. Once booted you should be good to go with the firmware.
If you have more than just a single tar or tar.md5 file then:
1) unpack the .zip of the official firmware.
2) the zip might include a variety of things (files) such as AP, BL, CP, CSC.
3) start Odin.
4) connect your device through USB. Once connected a device should show up within the com box.
5) select each of the different boxes and within the selection put the associated files in the correct box. The AP (system), BL (Bootloader), CP (Modem), CSC (Device Variant).
Make sure you do not select/enable anything with thepit option.
6) Once loaded push the start button and let it so it's thing.