Ubuntu USB sleep issue

I use Ubuntu around the house on all of the computers and laptops. It is on my machines, and those of my wife and kids. I have been pretty happy with the system and the admin & support has been extremely low. I typically update as each new release comes out and it is typically a non-issue.

I moved my ham radio activities to Ubuntu based computing as well quite a while back and have largely been pretty happy. (I really like CQRlog as my main QSO logging program)

I am trying to give Ubuntu 11.10 a fair shake but I am not very happy with it. I really dislike the new GUI and the Program Launch UI. To be honest I dislike it enough that I would seriously consider changing to a different OS except for the fact that I really like CQRlog.

One issue that has been driving my crazy is that some of my radio gear uses serial devices and other elements use USB. (ok, no big deal so far)  The USB devices  seem to go to sleep after a certain amount of inactivity. The seem to go to sleep even quicker in Ubuntu 11.10 but I can really confirm that. The issue is that when the USB devices go to sleep they do not always come back with the same USB serial number.  This is a probably for applications that are looking for /dev/ttyUSB0 and get /dev/ttyUSB3 instead.  I spent quite a bit of time trying to resolve this without success. I moved one of those interfaces back to a standard serial comport to get around the pain.  But I was still running into an issue with my K1EL keyer going offline when the computer hit the inactivity timer. <arghhhh>

After a few days of hunting & experimenting I think that I found the fix:

You can see the USB info by running:
dmesg | grep ttyUSB

If you notice the assignments change you can do the following:
sudo gedit /etc/default/grub

Update the following line:
GRUB_CMDLINE_LINUX_DEFAULT="usbcore.autosuspend=-1"

Save & close the file

Then run:
sudo update-grub

Reboot and all should be good.  The "-1" tells the system to NOT autosuspend the USB devices.

I probably have 5-6 hours into figuring out how to solve this problem. For most devices it likely does not matter up until you have a program that connects via something like /dev/ttyUSB0.

Thanks, JH