I have a small perl script which I am working on. The idea is to autodetect a card/s and create a modules.conf based on that either at configure or as a seperate process.
Can anyone who is more fluent in perl give me a hint as to how I can compare the output of list_pci to list_modules and return the correct card name and module? The script has two subs. They just parse the /proc/pci and the INSTALL file to get the current output. It has to be run from the alsa-driver dir. -- Patrick Shirkey - Boost Hardware Ltd. For the discerning hardware connoisseur Http://www.boosthardware.com Http://www.boosthardware.com/LAU/guide/ ========================================
sub list_pci { open (FILE, "/proc/pci") or die "Cannot open /proc/pci. \n Do you have permission to access this file?"; for $linepci (<FILE>) { if ($linepci =~ /Multimedia audio controller/g) { print $linepci; } } # close FILE; } sub list_modules { open (FILE, "INSTALL") or die "Cannot open INSTALL. \n Do you have permission to access this file?"; for $linemodule (<FILE>) { if ($linemodule =~ /\.o$/) { # print $linemodule; while (<>) { foreach $word ( split ) { # do something with $word here print "$linemodule\n" ; } } # print $linemodule; } } # close FILE; } # Output to shell list_modules(); print "\n The modules for the following card/s can be found in the above.\n If your card is not listed below it means it is a PNP (very old)\n or USB card and this script cannot find it.\n\n The modules for ALSA USB support are: \n\n \tsnd-usb-audio\n \tsnd-usb-midi\n\n"; print " These are the cards found on your system:\n\n"; list_pci(); print "\n";