Difference between revisions of "Research Pre Audio"

From WebOS Internals
Jump to navigation Jump to search
(add script to strace audiod)
 
(One intermediate revision by one other user not shown)
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 45: Line 46:
 
</pre>
 
</pre>
  
This is also handled by audiod. Until now there was no place found where the scripts may be stored in the filesystem. Maybe they are build into audiod.
+
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