It seems our sound cards can't play mulaw data.  Use native-format
16-bit signed data instead.  Hope this works for you; it works for me.
diff --git a/Lib/test/test_linuxaudiodev.py b/Lib/test/test_linuxaudiodev.py
index 535f84c..7924a24 100644
--- a/Lib/test/test_linuxaudiodev.py
+++ b/Lib/test/test_linuxaudiodev.py
@@ -4,9 +4,11 @@
 import fcntl
 import linuxaudiodev
 import os
+import sys
 import select
 import sunaudio
 import time
+import audioop
 
 SND_FORMAT_MULAW_8 = 1
 
@@ -27,6 +29,15 @@
             raise TestSkipped, msg
         raise TestFailed, msg
 
+    # convert the data to 16-bit signed
+    data = audioop.ulaw2lin(data, 2)
+
+    # set the data format
+    if sys.byteorder == 'little':
+        fmt = linuxaudiodev.AFMT_S16_LE
+    else:
+        fmt = linuxaudiodev.AFMT_S16_BE
+
     # at least check that these methods can be invoked
     a.bufsize()
     a.obufcount()
@@ -35,7 +46,7 @@
     a.fileno()
 
     # set parameters based on .au file headers
-    a.setparameters(rate, 8, nchannels, linuxaudiodev.AFMT_MU_LAW, 1)
+    a.setparameters(rate, 16, nchannels, fmt)
     a.write(data)
     a.flush()
     a.close()