Samsung Galaxy S, Android 2.3.3 firmware and broken USB tethering
Found out that Samsung boys have screwed USB tethering in 2.3.3 firmware. It does not work with Ubuntu as it did before. And the fault is quite clearly in Galaxy firmware, not in Ubuntu. You should first navigate USB tethering menu (Settings->Wireless..). When you connect the USB cable, then Kies mode is activated automatically. Also, you will see that USB tethering option is now available. However, if you press it, Ubuntu cannot recognize it and you can see messages “Bad CDC descriptors” in dmesg.
Well, I thought about this, and did some testing. Before you activate USB tethering (while Kies mode is running), everything is okay. It is only after USB tethering activation that things go wrong. And I could see that before that Galaxy S was recognized properly as modem.
So I took old trusty wvdial and got things working. While you are waiting a new firmware to come out, you can use wvdial to connect to internet. Install wvdial, then use wvdialconf to produce configuration file, edit it according to your ISP, and you are connected again.
I wrote more detailed information on this page. Just scroll down for Samsung Galaxy S and Android 2.3.3 Update.