Steve Litt via plug on 26 Jun 2023 22:23:23 -0700 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
[PLUG] ALSA hassle workaround: was Red Hat cutting back RHEL source availability |
Rich Freeman via plug said on Mon, 26 Jun 2023 06:34:06 -0400 >Really though some of my main linux frustrations are with things that >DON'T use udev, like ALSA devices. I can't ensure they have >consistent numbers/etc as all the flexibility of udev rules doesn't >apply to them. I have these alsa-numbers problems whenever I reboot or accidentally disconnect my usb video card. This is a real problem because I use Jitsi extensively and need to troubleshoot sound problems withing seconds, not minutes. So I made two shellscripts. The first one, called quickalsa.sh, which must be run from your home directory, follows: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ cp -p .asoundrc asoundrc.bup echo '' >> .asoundrc echo '' >> .asoundrc echo '# WARNING: Must change card number in both' >> .asoundrc echo '# ~/.asoundrc and /d/bats/alsa.sh !!!!!' >> .asoundrc echo '# Use Vim :bn, which is next buffer,' >> .asoundrc echo '# to access alsa.sh!!!!!' >> .asoundrc echo '# The -c arg in alsa.sh is the card num!!!!!' >> .asoundrc echo '' >> .asoundrc echo '#========================================================' >> .asoundrc cat /proc/asound/cards | sed -e's/^/#/' >> .asoundrc echo '#========================================================' >> .asoundrc echo '' >> .asoundrc echo '# Delete this comment and stuff between equal signs when done troubleshooting.' >> .asoundrc gvim .asoundrc /d/bats/alsa.sh ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ As you can see, three lines wrapped because of email, but it's pretty obvious which three. The preceding shellscript calls /d/bats/alsa.sh. Obviously /d/bats must be changed to wherever alsa.sh resides. alsa.sh follows: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #!/bin/sh # CRITICAL!!! Change number after -c to match card number lxterminal -e "alsamixer -c 0 -V playback" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Last but not least, the following .asoundrc is the starting point: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # CRITICAL!!! For "hw:num:othernum" in slave, match num to card number # CRITICAL!!! See comments at bottom for readout of card numbers pcm.!default { # Must be type plug type plug slave.pcm "my_arbitrary_name" } pcm.my_arbitrary_name { # Must be type dmix type dmix # Must be ipc_key 1024, I don't know why ipc_key 1024 slave { # Card comma device. Device is probably 0 # Preceding numbers are what needs to change # If your card order changes. # cat /proc/asound/cards for list pcm "hw:0,0" # Following stuff probably unnecessary, possibly harmful, # but might help with certain songs #period_time 0 #period_size 1024 #buffer_size 4096 #rate 44100 } } ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Now just run the quickalsa.sh shellscript, and follow the directions. By the way, this thing can be made more robust by creating a template .asoundrc and having quickalsa.sh copy that to .asoundrc after backing up the current .asoundrc to asoundrc.bup. SteveT Steve Litt Autumn 2022 featured book: Thriving in Tough Times http://www.troubleshooters.com/bookstore/thrive.htm ___________________________________________________________________________ Philadelphia Linux Users Group -- http://www.phillylinux.org Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug