My unadvised uninstall of the hsfmodem kernel modules on my Linux system seems to have been the cause of my Audacity playback suddenly not working any more. In this post, I show how I used the .bash_history file to reconstruct what I had done so I could take compensating actions to reinstall what I had uninstalled.
After working fine for weeks, Audacity audio playback on my Linux system suddenly stopped working for me. Other programs still played sound fine (system notifications;
One Must Fall:2097 on dosbox…)
“But I didn’t change anything!” I mentally protested.
I found a post on the Linux-noob forum, someone saying that for them it was a kernel driver update issue.
Kernel…kernel…
I remembered that I had uninstalled a kernel driver a few days before. (When Mandriva Update suggests updates, I make a practice of going through the list and uninstalling components I don’t need first rather than continue with the security exposure of having them installed.)
Normally they’re just apps, but I did remember uninstalling a kernel module or two that other day. What was it I had uninstalled? The name hsfmodem came to mind…
I looked for urpme logs in /var/log/ but didn’t immediately find something logging “packages uninstalled” (though, hey, it looks like /var/log/rpmpkgs might be the currently installed packages and /var/log/rpmpkgs.1.gz is maybe the installed package list from before the most recent change…)
Then I thought of .bash_history. Doesn’t that have all the shell commands I’ve issued, going pretty far back?
It does! I pulled up root’s .bash_history file and found the urpme commands I had run, or tried to run:
urpme hsfmodem-kernel
man urpmq
man urpmf
urpme hsfmodem-kernel-2.6.27
for f in hsfmodem-kernel-2.6.24.4-desktop586-1mnb-7.68.00.07-1mdv2008.1.i586;hsfmodem-kernel-2.6.24.4-desktop586-3mnb-7.68.00.07-1mdv2008.1.i586
hsfmodem-kernel-2.6.24.5-desktop586-1mnb-7.68.00.07-1mdv2008.1.i586
hsfmodem-kernel-2.6.24.5-desktop586-2mnb-7.68.00.07-1mdv2008.1.i586
hsfmodem-kernel-2.6.24.7-desktop586-1mnb-7.68.00.07-1mdv2008.1.i586
hsfmodem-kernel-2.6.24.7-desktop586-2mnb-7.68.00.07-1mdv2008.1.i586
hsfmodem-kernel-2.6.27-desktop586-0.rc8.2mnb-7.68.00.13-1mdv2009.0.i586
hsfmodem-kernel-2.6.27.4-desktop586-2mnb-7.68.00.13-1mdv2009.0.i586
hsfmodem-kernel-2.6.27.5-desktop586-2mnb-7.68.00.13-1mdv2009.0.i586
hsfmodem-kernel-2.6.27.7-desktop586-1mnb-7.68.00.13-1mdv2009.0.i586
hsfmodem-kernel-desktop586-latest-7.68.00.13-1.20081219.1mdv2009.0.i586
cat > hsfmodem.txt
for f in `cat hsfmodem.txt`; do echo $f; done
Ah yes, I had tried to remove all packages whose name contained the string hsfmodem. Did I still have hsfmodem.txt?
Yes, here’s what it contained:
hsfmodem-kernel-2.6.24.4-desktop586-1mnb-7.68.00.07-1mdv2008.1.i586
hsfmodem-kernel-2.6.24.4-desktop586-3mnb-7.68.00.07-1mdv2008.1.i586
hsfmodem-kernel-2.6.24.5-desktop586-1mnb-7.68.00.07-1mdv2008.1.i586
hsfmodem-kernel-2.6.24.5-desktop586-2mnb-7.68.00.07-1mdv2008.1.i586
hsfmodem-kernel-2.6.24.7-desktop586-1mnb-7.68.00.07-1mdv2008.1.i586
hsfmodem-kernel-2.6.24.7-desktop586-2mnb-7.68.00.07-1mdv2008.1.i586
hsfmodem-kernel-2.6.27-desktop586-0.rc8.2mnb-7.68.00.13-1mdv2009.0.i586
hsfmodem-kernel-2.6.27.4-desktop586-2mnb-7.68.00.13-1mdv2009.0.i586
hsfmodem-kernel-2.6.27.5-desktop586-2mnb-7.68.00.13-1mdv2009.0.i586
hsfmodem-kernel-2.6.27.7-desktop586-1mnb-7.68.00.13-1mdv2009.0.i586
hsfmodem-kernel-desktop586-latest-7.68.00.13-1.20081219.1mdv2009.0.i586
I tried passing these directly to urpmi, but it didn’t recognize these names… I think what eventually worked was issuing cat hsf-truncated.lst | xargs urpmi
based on this hsf-truncated.txt:
hsfmodem-kernel-2.6.24.4-desktop586
hsfmodem-kernel-2.6.24.4-desktop586
hsfmodem-kernel-2.6.24.5-desktop586
hsfmodem-kernel-2.6.24.5-desktop586
hsfmodem-kernel-2.6.24.7-desktop586
hsfmodem-kernel-2.6.24.7-desktop586
hsfmodem-kernel-2.6.27-desktop586
hsfmodem-kernel-2.6.27.4-desktop586
hsfmodem-kernel-2.6.27.5-desktop586
hsfmodem-kernel-2.6.27.7-desktop586
hsfmodem-kernel-desktop586-latest
I know there are some duplicate package names in there… but this was close enough to get hsfmodem reinstalled. Then Audacity playback worked again.
I guess hsfmodem has to do with audio output as well as classic modemy stuff!