As you may have read in other threads, I recently got a Socket bluetooth card (rev H). I got a good deal online on an open-box card, but I couldn't check the revision. It turns out that Socket started using a new kind of card starting with rev G. Revs G and H are apparently more complicated to use in the Zaurus.
It works fine with the bluez_zaurus package and the serial package mentioned on the bluetooth howto page. However, I am having big problems with suspending and resuming. I think it will always work if you just physically remove and re-insert the card after a suspend, but that's annoying. I have had no luck whatsoever with the susp-resume package that is supposed to automatically re-enable your card after a suspend. I've tried editing it many ways, but it just doesn't seem to work.
Through a lot of trial and error, I have determined that running the following commands in the terminal will allow the card to work after a suspend.
# /etc/rc.d/init.d/bluetooth stop
# cardctl eject 0
# cardctl insert 0
# /etc/rc.d/init.d/bluetooth restart
If I don't run "/etc/rc.d/init.d/bluetooth stop" then I can't eject the card, because it is "busy."
If I just run "cardctl eject" my internal microdrive gets ejected. You have to specify 0 for the compact flash card.
And interestingly "/etc/rc.d/init.d/bluetooth start" will not work for the last command (it says "BCSP initialization timed out"). It has to be "restart."
Anyway, I'm a bit of a Linux newbie. Can someone tell me in simple terms how to make a script that will automate this? Ideally, I'd like to just bind it to a keyhelper key combination.
(By the way, I had a problem where I thought bluetooth had stopped working for no apparent reason. I reinstalled everything and tried a bunch of things before finally trying to restart bluetooth on my phone. The phone then froze. After restarting the phone, everything worked fine. Maybe there is something flaky about the bluetooth on the RAZR. In any case, always check the phone too if you have a mysterious failure.)