Linux, open source, audio, and stuff

  • Home
  • About

Tag Archives: Linaro

Unboxing the new DragonBoard

21st February, 2017 · krtaylor

I finally got around to ordering a new dev board, the DragonBoard 410C. I liked the idea of the open platform so I ordered it from Arrow Electronics. It got to me really fast, I ordered it and it was delivered 4 days later. It was packed very well, and arrived safe, so nothing but praise for Arrow.

IMG_1049

Over that past few weeks I have been learning more about the DragonBoard 410C, attending the weekly 96boards office hours. I highly recommend them if you are even slightly interested in the 96boards or ARM-based SoC dev boards. There is a wealth of experience presented every week and the topics are very informative.

I have several ideas for this board, but one of them is probably no surprise for anyone that has followed my Linaro blogs, namely Linux audio experiments. Other ideas include trying it as an OpenStack compute node, media streaming host, and maybe even an OpenBMC sandbox. I started doing research on what was possible using this board and immediately ordered one. However, I then found this page and I realized that my board did not have the audio pin header installed. I was actually surprised that this was even an option and not soldered into every board, since it might add a whopping $.50 to the cost.

DragonBoard 410C Audio Header

My board was already on the way so I couldn’t change plans. I was slightly disappointed that I hadn’t found and purchased the specific DragonBoard 410C Audio. As it turns out, this audio  bundle is a really good value, for just $14 more you get the pin header pre-installed and a power supply. No big deal for me since I already had several appropriate power supplies. I have a lot of soldering experience, but soldering a dev board and potentially bricking it is somewhat unnerving and I would have gladly paid a few dollars for it to have been done for me. I decided to wait till the board came and see what it was all about before ordering any mezzanine boards or headers required.

Next, I’ll share my experiences with bringing up a Debian environment to see what the board will do, stay tuned.

 

Posted in DragonBoard410C, Linaro Sound, OpenStack | Tags: 96Boards, Linaro, Linux sound, OpenStack |

A Second Android UCM

8th June, 2012 · krtaylor

Now there are two. Yes, there are now two different UCM prototypes for Android on Pandaboard. But why?  Well, the first, tinyHAL, came out of conversations with Mark Brown and others, as described in my earlier post.  The second came from later discovering that Gabriel Beddingfield had implemented a similar PoC for Blaze. They are both good starts and both have their pluses, and now both run on Pandaboard with the Linaro Android builds.

The first, tinyHAL is available at here.  The second, android-ucm, is available here.  I have also facilitated the relicensing of the dependencies for android-ucm and deposited them here and here.  Please refer to the README in each of these repositories for the instructions on how to build these components in a Linaro Android build (edit: Linaro has removed these git repos, contact them directly for this source).

So, which one should be used and enhanced? Well, I like the XML mapping from android-ucm, and I like the XML configuration formats from tinyHAL. I suspect that the way forward should be to decide the best features, and then combine, refactor, and merge efforts. For now, try them both and see which one you prefer. As always, contributions are always welcome and feel free to contact me or linaro-dev@lists.linaro.org if you have comments.

Posted in ALSA, Android, Linaro Sound, PandaBoard | Tags: ALSA, Android, Linaro, Linux sound, PandaBoard |

Setting up an Android Build

13th February, 2012 · krtaylor

Yes, it has been too long since I blogged, I won’t bore you with the details of why.  Instead, I’ll kick this off again with a step-by-step post on how to set up a system to do your first Android build.

Linaro has a great new Android homepage with lots of useful links on it, go explore the info there http://wiki.linaro.org/Platform/Android

I did my installation on Ubuntu 11.10 Oneiric, so this post will make the most sense if you do too.  Put away that P3 box in the corner you were planning on using.  It seems to be a wise requirement to use a quick box with x86_64 support. You will also need ~30G of free space on your drive an a good amount of memory, plan for it. So, go do your AMD64 install of Ubuntu Oneiric desktop and then come back.

The AOSP “Initializing a Build Environment” page is your next stop. It is slightly out of date, but work through it  http://source.android.com/source/initializing.html  Under the “Installing required packages” section, there is a package change for Oneiric. The package lib32readline5-dev is not available, use lib32readline-gplv2-dev instead.

Next, go get repo.  To do this, follow the first 3 steps under the Quickstart section at http://wiki.linaro.org/Platform/Android/BuildSource  Wait on running the repo init command for now.

Install gcc-4.5. I used software center, and uninstalled 4.6 first. You may not have to do this as it may have caused me some extra fun for me. Regardless, when you have it installed, make sure that you have /usr/bin/cc and /usr/bin/gcc symlinked to gcc-4.5, not 4.6.

I also experienced a problem that was well documented here: http://unforgivendevelopment.com/2011/10/05/solved-cyanogenmod-build-issues-on-debian-wheezy-testing/  As this post suggests, running “sudo ln -s /usr/include/`uname -m`-linux-gnu/asm/ /usr/include/asm” fixed the problem.

Now it is time to decide on the code to build.  I was interested in reproducing the 12.01 Linaro Android “tracking” build because it had the patches needed to make audio work on the Pandaboard. The best way to do this is to follow the “How to Get and Build the Source” on the android-build.linaro.org page for the build you are interested in, in my case, https://android-build.linaro.org/builds/~linaro-android/tracking-panda-12.01-release/  If you follow this exactly (with any changes for your environment, of course), you shouldn’t have any problems. Also, I hope you aren’t in a hurry. The repo sync alone will take over an hour unless you have a super fast connection and the build will depend on your host, but mine takes a good long time.

When the build is complete, check the build log in the root directory to make sure there wasn’t any issues. To use the build you just made, refer to the instructions “How to Use Prebuilt Images” on the same Linaro Build page you used in the step above. The boot, system and userdata compressed tarballs are available in the ~/android/out/target/product/<board> directory. Substitute <board> with your dev platform, in my case that was “pandaboard”. Blast these onto a SD card just like you’d do with the prebuilt images and you’ll be up an running on your own Android build.

That’s all there is to it. Hope this helps, I tried to capture everything that I went through to get it working. Please let me know if you find any omissions or problems so that I can edit this post with any corrections.

Posted in Android, Linaro Sound, PandaBoard, Ubuntu | Tags: Android, Linaro, Ubuntu |

Linaro Multimedia Mini Summit

1st July, 2011 · krtaylor

Since the Linaro multimedia working group didn’t get to plan at the last Linaro Developers Summit, we held our own mini-summit at the beautiful IBM campus in Austin. It has been 3 weeks and I am just now able to think about other things like updating this blog due to the flurry of planning activities that followed. There are other factors at play too, one of them is I have agreed to take on the role of team lead for the multimedia working group. Even though my view now encompasses all multimedia, I will try to keep to this blogs original intent of writing about Linux sound and specifically ARM audio.

The Linaro multimedia working group,  often referred to as MMWG, needed to hold the summit to share our plans and discuss the requirements for the upcoming development cycle. It was very well attended by key technical folks from all areas of ARM-based multimedia. Attending were representatives from Linaro, IBM, NVidia, Freescale, Texas Instruments, Collabora, ST-Ericsson, ARM and others as well as several who were able to dial-in. I had organized meet-ups before, but it was the first time I had organized an event this size. All in all, it went very well and I think everyone enjoyed the experience of meeting to discuss the challenges ahead of us.

Posted in ALSA, Linaro Sound, PulseAudio | Tags: Linaro |

Group Photo: ASoC and Embedded Linux Audio Conference

16th May, 2011 · krtaylor

Here is a group photo of the attendees at the ASoC and Embedded Linux Audio Conference in Edinburgh :

ASoC Group Photo

Posted in ALSA, Linaro Sound, PulseAudio | Tags: ALSA, Linaro, Linux sound, PulseAudio |

Travel to ASoC and LAC

12th May, 2011 · krtaylor

I’ve been a little busy lately with new assignments and travel. I just returned from two back-to-back conferences, in two different countries, in less than one week.

The first was the ASoC and Embedded Linux Audio Conference in Edinburgh. This was a gathering of about 30-40 multimedia developers from all over the world representing almost every company involved in this space and I was honored to be invited. After introductions, the 2 days worth of in-depth technical discussions got started with a description of the ASoC DSP support, focused on the description and charts shown here -> http://omapedia.org/wiki/Audio_Drive_Arch   We then shifted to OS integration topics that mainly centered around Android’s need for a different ALSA user space lib, with more business favorable license terms. Several options were discussed. The UCM talk was next and with an initial brief overview and then enumerating the needs moving forward, including PulseAudio work. Next were discussions on QoS, run-time coefficients, firmware and events. The meeting drew to a close with a summary, questions time and assignments review. I drew the assignment for looking into getting an install script and  git set up for the UCM profile config files, something we will need for Linaro.  All in all, a great technical conference that was well prepared and useful. Also, it was a fantastic opportunity to meet everyone I have been interacting with in email and IRC, plus many new contacts. I look forward to attending the next one!

The second was the Linux Audio Conference in Dublin, aka, LAC2011. I worked with the planners of this conference to get the PulseAudio folks, including Lennart Poettering,  a place to work. The space we were allocated was large enough to allow others to come and listen and ask a few questions. I want to apologize to the people that waited so patiently to ask questions.  We had such an active discussion between the developers that they could hardly get a word in edge wise. I learned a lot and hopefully contributed to the overall discussion, direction and schedule. The rest of the conference was more general purpose for all things Linux Audio including: sound generation, sequencing, pro audio, and composition. I have followed this for many years now and it was really interesting to see how it continues to evolve. Even though it was a Linux conference, there were constant references to Apple and iPad integration with the applications used, even a session on running PulseAudio on Mac OS X. I think that mobile Linux has an opportunity to reach these folks.

Even though the trip was jam-packed, it was a perfect technical requirements review for going into the next development cycle for Linaro.  They were both worth the hectic travel schedule.

Posted in ALSA, Linaro Sound, PulseAudio | Tags: ALSA, Linaro, Linux sound, PulseAudio |

PulseAudio Configuration

29th March, 2011 · krtaylor

The best way to learn code is to work on it. I did just that implementing a feature to add tsched buffer size to the configuration file. Late in the process, I discovered that it was already possible to pass it to the ALSA module, so I abandoned the additional code. Since it stumped me, I figured the configuration of PulseAudio might be somewhat confusing and could use a blog entry, hence this.

First, if you have not yet read PerfectSetup, start with that.  You can find it here: http://www.pulseaudio.org/wiki/PerfectSetup

There are 3 places to change the configuration parameters and behavior of PulseAudio.

system.pa/default.pa – startup script to specify module loading, etc, module parameters are passed here, more on that later

client.conf – does just what is says, config file for clients

daemon.conf – configuration specific to the sound server daemon

On Ubuntu, these files are installed in /etc/pulse. The system.pa startup script is used when PulseAudio is used in system-wide mode. The other, daemon.conf is used when the sound server is started in user mode.

The values listed in these files are default values and are commented out. Obviously, uncommenting the parameter will not change anything unless the assignment is value changed.

The startup script can be used to pass module specific parameters. This is done by uncommenting the line in the file. For example, passing a new tsched buffer size to the ALSA module would look like this:

load-module module-alsa-sink tsched_buffer_size=XYZ

Here are all the module specific parameters for the ALSA module (from module-alsa-card.c) :

“name=<name for the card/sink/source, to be prefixed> ”
“card_name=<name for the card> ”
“card_properties=<properties for the card> ”
“sink_name=<name for the sink> ”
“sink_properties=<properties for the sink> ”
“source_name=<name for the source> ”
“source_properties=<properties for the source> ”
“namereg_fail=<pa_namereg_register() fail parameter value> ”
“device_id=<ALSA card index> ”
“format=<sample format> ”
“rate=<sample rate> ”
“fragments=<number of fragments> ”
“fragment_size=<fragment size> ”
“mmap=<enable memory mapping?> ”
“tsched=<enable system timer based scheduling mode?> ”
“tsched_buffer_size=<buffer size when using timer based scheduling> ”
“tsched_buffer_watermark=<lower fill watermark> ”
“profile=<profile name> ”
“ignore_dB=<ignore dB information from the device?> ”
“sync_volume=<syncronize sw and hw voluchanges in IO-thread?> ”
“profile_set=<profile set configuration file> “

Posted in ALSA, Linaro Sound, PulseAudio, Ubuntu | Tags: ALSA, Linaro, Linux sound, PulseAudio, Ubuntu |

PulseAudio Buffer Size Tests

7th March, 2011 · krtaylor · 2 Comments

It has been a few weeks, but in my defense, I have been pretty busy testing and debugging in this new environment. As an assignee to the Linaro project, my first task was to figure out if increasing the buffer size would enable the ARM cpu to drop into a lower power state. Code investigation, community feedback and prototyping said probably not, but I followed through. Below is a chart showing all the testing done, including the recent work to go back through the tests with ALSA 1.0.24 in the stack to enable checking for  period disable. Enjoy!

PulseAudio Buffer Size Tests

PulseAudio Buffer Size Tests

Posted in ALSA, BeagleBoard, Linaro Sound, PandaBoard, PulseAudio, Ubuntu | Tags: ALSA, BeagleBoard, Linaro, Linux sound, PulseAudio, Ubuntu |

Ubuntu on PandaBoard

26th January, 2011 · krtaylor
My PandaBoard

My PandaBoard

My PandaBoard still has not yet arrived, but I was able to get a loaner to explore buffers in PulseAudio.  Since it is not mine, I have not mounted it on it’s own fancy custom mounting base platform (cardboard) like I did with my BeagleBoard.  But, the Panda arrives with it’s own fancy little rubber feet that work fine as standoffs. Here’s what it looks like all hooked up.

Once I figured out where to get an Ubuntu image for it, it was pretty easy to get it up and running.  All you have to do is go to the website below and follow the instructions. You will get the Ubuntu Netbook 10.10 image and then write the raw image to a SD card. Simple.

Follow the instructions at https://wiki.ubuntu.com/ARM/OMAPMaverickInstall

I did have lots of trouble getting the ubuntu-omap4-extras installed. I could never get the graphical method to work properly, but I did follow the comand line method further down the page on the website listed below and finally got it to install.

Follow the command line installation instructions at: http://www.omappedia.org/wiki/PandaBoard_Ubuntu_PPA

And finally, for help in many areas not covered here, if you have not already, read all you can at: http://www.omappedia.org/wiki/Main_Page

Posted in PandaBoard, Ubuntu | Tags: Linaro, PandaBoard, Ubuntu |

Building PulseAudio

6th January, 2011 · krtaylor

Here are (now improved) quick instructions to create a working build sandbox for PulseAudio development on Ubuntu 10.10 Maverick on an i386 platform. I highly recommend reading all this post completely before starting this process.

Here are the steps to make PulseAudio that builds and works for Ubuntu:

  1. Install or update to Maverick and accept defaults, this process will probably work fine with other Ubuntu versions, so if you are not on Maverick, give it a try.
  2. Update all packages with Update Manager
  3. Install dpkg-dev -> sudo apt-get install dpkg-dev

If you are using source from git:

  1. Install git if you haven’t already -> sudo apt-get install git
  2. From your home directory, get the latest PulseAudio source -> git clone git://git.0pointer.de/pulseaudio.git
  3. Git will create the PulseAudio repository in a directory called pulseaudio, when the clone has completed, change to that directory -> cd ~/pulseaudio

If you are using Ubuntu maverick source:

  1. Install the source -> apt-get source pulseaudio

Configure and build the source:

  1. Install the prereq packages -> sudo apt-get build-dep pulseaudio
  2. To check the environment and set up the basics, run the bootstrap script -> ./bootstrap.sh
  3. Next, run configure -> ./configure
  4. Run make to build the executables

Note: the executables will be in the src directory. Change to that directory and run specifying that path so that you will not run the system programs. For example, to run pulseaudio with verbose log messages, cd to src and run -> ./pulseaudio -n -F ./default.pa -p ./.libs -vvvv

There are some very helpful hints at: http://colin.guthr.ie/2010/09/compiling-and-running-pulseaudio-from-git/ The steps on this page are slightly different for Ubuntu, but worth reading to better understand the process.  Also, this page does a really nice job of explaining how to run pulseaudio for test/debug.

Posted in Linaro Sound, PulseAudio | Tags: Linaro, Linux sound, PulseAudio |
Next Posts

Pages

  • About

Archives

  • July 2020
  • February 2019
  • October 2018
  • April 2018
  • December 2017
  • October 2017
  • May 2017
  • March 2017
  • February 2017
  • October 2016
  • May 2016
  • June 2015
  • May 2015
  • March 2015
  • November 2014
  • October 2014
  • June 2012
  • March 2012
  • February 2012
  • July 2011
  • May 2011
  • March 2011
  • January 2011
  • December 2010

Categories

  • About (2)
  • ALSA (8)
  • Android (3)
  • BeagleBoard (1)
  • DragonBoard410C (1)
  • Ironic (3)
  • Kolla (3)
  • Linaro Sound (12)
  • Open Source Community (2)
  • OpenBMC (4)
  • OpenStack (12)
  • PandaBoard (5)
  • PulseAudio (7)
  • Red Hat (1)
  • Swift (1)
  • Third-party CI (4)
  • TripleO (2)
  • Ubuntu (5)
  • Uncategorized (1)

WordPress

  • Log in
  • WordPress

Subscribe

  • Entries (RSS)
  • Comments (RSS)

Pages

  • About

Archives

  • July 2020
  • February 2019
  • October 2018
  • April 2018
  • December 2017
  • October 2017
  • May 2017
  • March 2017
  • February 2017
  • October 2016
  • May 2016
  • June 2015
  • May 2015
  • March 2015
  • November 2014
  • October 2014
  • June 2012
  • March 2012
  • February 2012
  • July 2011
  • May 2011
  • March 2011
  • January 2011
  • December 2010

Categories

  • About (2)
  • ALSA (8)
  • Android (3)
  • BeagleBoard (1)
  • DragonBoard410C (1)
  • Ironic (3)
  • Kolla (3)
  • Linaro Sound (12)
  • Open Source Community (2)
  • OpenBMC (4)
  • OpenStack (12)
  • PandaBoard (5)
  • PulseAudio (7)
  • Red Hat (1)
  • Swift (1)
  • Third-party CI (4)
  • TripleO (2)
  • Ubuntu (5)
  • Uncategorized (1)

WordPress

  • Log in
  • WordPress
© Kurt Taylor, all rights reserved
  • About