[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Audio on my Sparc Ultra 5



I've added support for Sparc platforms to alsaconf a couple of months
ago. Unless you're trying Debian Etch, I expect you won't have that
code yet.

The driver for your machine is snd-sun-cs4231 I think. modprobe that,
then run alsamixer to unmute and turn up the volume.
Alternately, I've added my patch below if you want to apply that.

Martin

On Wed, Aug 02, 2006 at 08:45:16PM +0200, Andrea Modesto Rossi wrote:
> Hello World,
> 
> i've a Sun Ultra 5 (360Mhz cpu with 256Mb Ram) and i work with Debian 
> Sarge...the system is Ok,good,but i cannot configure on-board device audio.
> I install all ALSA pkg but with "alsaconf" Debian can't configure the 
> device ,i think taht there isn't the good module .
> 
> Where is the problem???
> 
> Thanks for all 
> -- 
> Andrea Modesto Rossi
> Services Ariadne

---
I created the patch below against 1.0.10rc2 to make alsaconf work
for the Sparc and architectures.
It has been reviewed on the debian-sparc mailing list
(see http://lists.debian.org/debian-sparc/2005/10/msg00098.html).
I do not have positive confirmation it will work for the AMD7930
chip yet, but I expect it to. The other 2 chips have been tested
and work okay.

One of the feedbacks was that 'modprobe -a -l' is depreciated and
thus should be avoided (see the modprobe manpage), so I have taken
the oportunity to replace all use of this with a find equivalent.

Please apply. Best regards,
Martin

        Signed-off-by: Martin Habets <errandir_news@mph.eclipse.co.uk>
---
--- alsaconf.in.orig	2005-09-14 21:07:37.000000000 +0100
+++ alsaconf.in	2005-11-05 19:41:51.000000000 +0000
@@ -688,7 +688,8 @@
     # PowerMac
     #
     if grep -q MacRISC $PROCFS/cpuinfo; then
-	/sbin/modprobe -a -l | grep 'snd-powermac' | \
+	MODDIR=/lib/modules/`uname -r`
+	find $MODDIR -name 'snd-powermac' -print | \
 	while read i; do
 	    i=${i##*/}
 	    i=${i%%.o}
@@ -696,6 +697,43 @@
 	    echo "PowerMac $i" >> $FOUND
 	done
     fi
+
+    #
+    # Sparc
+    #
+    if grep -q Sparc $PROCFS/cpuinfo; then
+	test -r $PROCFS/openprom/name || /bin/mount -t openpromfs none $PROCFS/openprom >/dev/null 2>&1
+	# Check for an "audio" device
+	audio=
+	compat=
+	if test -r $PROCFS/openprom; then
+	    audio=`find $PROCFS/openprom -follow -type d -name "audio*" -print`
+	fi
+	if test -n "$audio"; then
+	    compat=`cat $audio/compatible`
+	    compat=${compat#\'}
+	    compat=${compat%\'}
+	    compat=${compat#SUNW,}
+	fi
+	# Go through all cards we have
+	MODDIR=/lib/modules/`uname -r`
+	find $MODDIR -name 'snd-sun-*' -print | \
+	while read i; do
+	    i=${i##*/}
+	    i=${i%%.o}
+	    i=${i%%.ko}
+	    sdev=`echo ${i#snd-sun-} | tr "[a-z]" "[A-Z]"`
+
+	    if test "$sdev" = "$compat"; then
+		echo "$sdev $i" >> $FOUND
+	    elif test -r $PROCFS/openprom; then
+		find $PROCFS/openprom -follow -type d -name "SUNW,${sdev}*" \
+		    -exec echo "$sdev $i" \; 2>/dev/null >> $FOUND
+	    else
+		echo "$sdev $i" >> $FOUND
+	    fi
+	done
+    fi
 }
 
 #
@@ -1305,7 +1343,8 @@
 
 if [ -s "$FOUND" ]; then
     while read dev card ; do
-	/sbin/modprobe -a -l | grep -q -E $card'\.(o|ko)' || continue
+	MODDIR=/lib/modules/`uname -r`
+	find $MODDIR -type f | grep -q -E $card'\.(o|ko)' || continue
 	cardname=`find_device_name $dev | cut -c 1-64`
 	if [ -z "$cardname" ]; then
 	    cardname="$card"



Reply to: