Difference between revisions of "ECE497 Lab11 Using the Open Sound System (OSS)"
(→Problems and Solutions: Added GStreamer suggestion) |
|||
Line 21: | Line 21: | ||
== Problems and Solutions == | == Problems and Solutions == | ||
+ | |||
+ | === Killing pulseaudio === | ||
+ | |||
I find that running | I find that running | ||
<pre> | <pre> | ||
Line 32: | Line 35: | ||
This did not seem to cause problems until part b of the lab. I found [http://linux.dsplabs.com.au/lsof-grep-snd-how-to-free-a-linux-sound-device-p25/ this website] to solve my problem. Apparently, the problem is that pulseaudio is using /dev/dsp, and refuses to give it up. When I killed pulseaudio (the rude way, not the graceful way), then running cat /dev/dsp > /dev/dsp worked, and my executable worked. I don't know what killing pulseaudio does to the system, I haven't noticed any ill-effects yet... | This did not seem to cause problems until part b of the lab. I found [http://linux.dsplabs.com.au/lsof-grep-snd-how-to-free-a-linux-sound-device-p25/ this website] to solve my problem. Apparently, the problem is that pulseaudio is using /dev/dsp, and refuses to give it up. When I killed pulseaudio (the rude way, not the graceful way), then running cat /dev/dsp > /dev/dsp worked, and my executable worked. I don't know what killing pulseaudio does to the system, I haven't noticed any ill-effects yet... | ||
+ | |||
+ | === Testing the audio chain with GStreamer === | ||
+ | |||
+ | Here is a simple way to test to see if you mic and speakers are working. Do this on your Beagle: | ||
+ | |||
+ | <pre> | ||
+ | # cd /usr/share/esc-gst/ | ||
+ | # ls | ||
+ | README a2 a4 a6 d2 d4 d6 g2 g4 g6 g8 n1 n3 p1 v1 v3 | ||
+ | a1 a3 a5 d1 d3 d5 g1 g3 g5 g7 g9 n2 n4 s v2 v4 | ||
+ | # less README | ||
+ | # less s | ||
+ | # ./s | ||
+ | # ./a1 | ||
+ | # ./a6 | ||
+ | </pre> | ||
+ | |||
+ | These are files for demonstrating GStreamer. The README tells what each file does. Before the first time you run anything you have to run <code>s</code>. Here’s what <code>s</code> does: | ||
+ | |||
+ | <pre> | ||
+ | #! /bin/sh | ||
+ | set -x | ||
+ | export DISPLAY=:0.0 | ||
+ | export PATH=$PATH:/usr/share/esc-gst | ||
+ | cd /usr/share/esc-gst | ||
+ | killall -9 pulseaudio | ||
+ | set +x | ||
+ | </pre> | ||
+ | |||
+ | Notice you have to kill off pulseaudio as was suggested above! <code>a1</code> plays a simple tone, <code>a6</code> takes the input from the mic and sends it to the speakers. This works for me and is a good way to test your whole audio chain. |
Revision as of 07:42, 29 April 2011
Be sure you have done Lab 10 before this lab so all your software is set up.
Contents
Lab 11/6 - Using the OSS Driver
Lab 11 is Lab 6 is on pages 171-186 of DaVinci-OMAP_Workshop_v2.0.pdf. In doing this lab you will get audio from the line-in jack on the Beagle and sent it out the speaker jack.
- Go to the class dfs site and get:
- setpaths.mak
- setpaths.sh
- Move the setpaths files in the workshop directory to another location.
host $ cd workshop host $ mv setpaths.sh setpaths.sh.orig host $ mv setpaths.mak setpaths.mak.orig
- Copy the setpaths files you got from DFS into the workshop directory. In Lab 11/6 you will edit these files so they are correct.
You will still need the symbolic link from part 5, and make sure to update the file paths.
Problems and Solutions
Killing pulseaudio
I find that running
cat /dev/dsp > /dev/dsp
gave me this error:
-sh: can't create /dev/dsp: Device or resource busy
This did not seem to cause problems until part b of the lab. I found this website to solve my problem. Apparently, the problem is that pulseaudio is using /dev/dsp, and refuses to give it up. When I killed pulseaudio (the rude way, not the graceful way), then running cat /dev/dsp > /dev/dsp worked, and my executable worked. I don't know what killing pulseaudio does to the system, I haven't noticed any ill-effects yet...
Testing the audio chain with GStreamer
Here is a simple way to test to see if you mic and speakers are working. Do this on your Beagle:
# cd /usr/share/esc-gst/ # ls README a2 a4 a6 d2 d4 d6 g2 g4 g6 g8 n1 n3 p1 v1 v3 a1 a3 a5 d1 d3 d5 g1 g3 g5 g7 g9 n2 n4 s v2 v4 # less README # less s # ./s # ./a1 # ./a6
These are files for demonstrating GStreamer. The README tells what each file does. Before the first time you run anything you have to run s
. Here’s what s
does:
#! /bin/sh set -x export DISPLAY=:0.0 export PATH=$PATH:/usr/share/esc-gst cd /usr/share/esc-gst killall -9 pulseaudio set +x
Notice you have to kill off pulseaudio as was suggested above! a1
plays a simple tone, a6
takes the input from the mic and sends it to the speakers. This works for me and is a good way to test your whole audio chain.