After gaining root access on my Motorola Backflip phone, I was (eventually) able to get wifi tethering working using the Barnacle application (version 0.5.1).
In Barnacle, I have “skip wpa_supplicant” checked, the channel set to six (6), and DHCP set up to use the OpenDNS DNS server (208.67.222.222) although the DNS server option may not be needed. (I had to also manually specify the DNS server IP on my client anyways.)
I had to pull some tricks on the client side (Ubuntu Linux) to make everything work. Specifically, setting MTU size to 1250 and setting up my own DNS name server IP.
The script I use to make this all work with ad-hoc networking on Ubuntu is as follows:
sudo service network-manager stop
sudo rm /etc/resolv.conf
sleep 1
sudo ifconfig eth1 down
ifconfig eth1 mtu 1250
sudo iwconfig eth1 mode ad-hoc
sudo iwconfig eth1 essid barnacle
sudo iwconfig eth1 channel 6
sudo ifconfig eth1 up
sleep 2
sudo dhclient eth1
sudo /bin/sh -c 'echo "nameserver 208.67.222.222" >> /etc/resolv.conf'