Difference between revisions of "Research Pre Audio"

From WebOS Internals
Jump to navigation Jump to search
(add location of audio scripts)
(add script to strace audiod)
 
Line 4: Line 4:
  
 
The used TWL4030 PMIC covers the audio part.
 
The used TWL4030 PMIC covers the audio part.
 +
TODO: datasheet available?
  
 
== Soundcards ==
 
== Soundcards ==
Line 46: Line 47:
  
 
This is also handled by audiod. The scripts can be found in /etc/audio
 
This is also handled by audiod. The scripts can be found in /etc/audio
 +
 +
== strace audiod ==
 +
this script restarts the audiod with an attached strace which is saved in ./audio.log:
 +
 +
<pre>
 +
#!/bin/sh
 +
#Make sure audiod gets not restarted when we kill it
 +
mv /usr/sbin/audiod /usr/sbin/audiod-backup
 +
kill $(pidof audiod)
 +
 +
sleep 2
 +
 +
strace -x -s 10000 -f -F -o audio.log audiod-backup &
 +
echo "press any key to return to normal mode"
 +
read foo
 +
kill $(pidof audiod-backup)
 +
 +
sleep 2
 +
 +
#Bring the system into a useable state again         
 +
mv /usr/sbin/audiod-backup /usr/sbin/audiod
 +
sh /etc/event.d/audiod
 +
 +
 +
</pre>

Latest revision as of 22:17, 29 March 2010

This side should cover the audio architecture used on the Palm Pre.

Hardware

The used TWL4030 PMIC covers the audio part. TODO: datasheet available?

Soundcards

root@castle:/var/home/root# aplay -l    
**** List of PLAYBACK Hardware Devices ****
card 0: mcbsp2 [twl4030-i2s (mcbsp2)], device 0: omap-mcbsp-pcm [omap-mcbsp-pcm]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: mcbsp3 [btsco (mcbsp3)], device 0: omap-mcbsp-pcm [omap-mcbsp-pcm]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Scripts

Palm uses scripts to configure the lower levels of the sound system that are executed inside the kernel. Audiod triggers them over a sysfs interface.

echo "#list" > /sys/devices/platform/twl4030_audio/scdebug
for example lists you all available scripts over the kernel message output which you can view with dmesg. You can also try
#all
#volume
#init

These scripts can be triggered by writing is name as a string into

/sys/devices/platform/twl4030_audio/scrun

A good start to dive into this is sound/arm/omap-twl4030/script.c in the kernel patch from palm.

New scripts are inserted into the kernel list via:

/sys/devices/platform/twl4030_audio/scinit

This is also handled by audiod. The scripts can be found in /etc/audio

strace audiod

this script restarts the audiod with an attached strace which is saved in ./audio.log:

#!/bin/sh
#Make sure audiod gets not restarted when we kill it
mv /usr/sbin/audiod /usr/sbin/audiod-backup
kill $(pidof audiod)

sleep 2

strace -x -s 10000 -f -F -o audio.log audiod-backup &
echo "press any key to return to normal mode"
read foo
kill $(pidof audiod-backup)

sleep 2

#Bring the system into a useable state again           
mv /usr/sbin/audiod-backup /usr/sbin/audiod
sh /etc/event.d/audiod