[alsa-devel] Developing and cross-compiling an ASoC driver
Hello,
I recently designed a custom board based on an AT91SAM9 microcontroller connected with an ADC via I2S. In the project we need a data acquisition application, which can store audio stream to wav files. On my opinion arecord fulfills our requirements. The "only" thing we have to do is writing an ASoC driver especially for the ADC (ADS1274), and cross compile it to the Linux4SAM embedded Linux environment.
I didn't find any suitable description how to do a cross-platform driver development process. Could you please give me some introduction how to:
- cross compile alsa-driver (AFAIK ASoC is part of it, and ALSA is part of the linux kernel), and alsa-utils (for getting arecord) - cross compile the newly developed alsa driver - integrate ASoC and the custom driver to the patched kernel (Linux4SAM) and cross compile them to one image.
Thank you for your help in advance!
Br, Szabolcs Erki
On Thu, Oct 22, 2009 at 04:08:18PM +0200, Szabolcs Erki wrote:
I didn't find any suitable description how to do a cross-platform driver development process. Could you please give me some introduction how to:
- cross compile alsa-driver (AFAIK ASoC is part of it, and ALSA is
part of the linux kernel), and alsa-utils (for getting arecord)
- cross compile the newly developed alsa driver
- integrate ASoC and the custom driver to the patched kernel
(Linux4SAM) and cross compile them to one image.
There is nothing particularly special about building when you're developing a new driver - the kernel is built in exactly the same way. There's certainly nothing ASoC specific here. You'll probably get more useful advice by asking people who normally use the same distribution that you do how they develop.
Many people build a system as they normally would with the distribution they usually use (eg, OpenEmbedded) and then use the toolchain that has to compile a kernel by hand from a regular git checkout, copying the resulting kernel into whatever images they normally use.
Ok, so ASoC is totally platform-independent, there is no patch to be applied against ASoC in order to make it feasible for the target. Is it correct? In this case I have to compile it in the kernel, using the gcc-arm-elf cross compiler. How to do that? Hard copy the files and hacking makefiles together? Because the descriptions I found applied to installing ASoC on a desktop environment, like Ubuntu.
Thanks again. Szabolcs
Thursday, October 22, 2009, 4:21:48 PM, you wrote:
On Thu, Oct 22, 2009 at 04:08:18PM +0200, Szabolcs Erki wrote:
I didn't find any suitable description how to do a cross-platform driver development process. Could you please give me some introduction how to:
- cross compile alsa-driver (AFAIK ASoC is part of it, and ALSA is
part of the linux kernel), and alsa-utils (for getting arecord)
- cross compile the newly developed alsa driver
- integrate ASoC and the custom driver to the patched kernel
(Linux4SAM) and cross compile them to one image.
There is nothing particularly special about building when you're developing a new driver - the kernel is built in exactly the same way. There's certainly nothing ASoC specific here. You'll probably get more useful advice by asking people who normally use the same distribution that you do how they develop.
Many people build a system as they normally would with the distribution they usually use (eg, OpenEmbedded) and then use the toolchain that has to compile a kernel by hand from a regular git checkout, copying the resulting kernel into whatever images they normally use. _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
On Thu, Oct 22, 2009 at 04:40:34PM +0200, Szabolcs Erki wrote:
Please don't top post, it breaks the flow of discussion and removes context from your reply.
Ok, so ASoC is totally platform-independent, there is no patch to be applied against ASoC in order to make it feasible for the target. Is
ASoC itself is platform independant. It does require drivers for the CPU, CODEC and board that it is to be used with. You mentioned that you are using an Atmel processor which does have CPU side support in current Linux versions though the ADC you mentioned doesn't.
it correct? In this case I have to compile it in the kernel, using the gcc-arm-elf cross compiler. How to do that? Hard copy the files and hacking makefiles together? Because the descriptions I found applied to installing ASoC on a desktop environment, like Ubuntu.
ASoC is part of the standard Linux kernel, just build the kernel as you would normally. As I said in my previous mail people working with the same embedded Linux distribution as you are would be the best people to ask about this, it is not at all ASoC or ALSA specific.
Please don't top post, it breaks the flow of discussion and removes context from your reply.
Ok.
Ok, so ASoC is totally platform-independent, there is no patch to be applied against ASoC in order to make it feasible for the target. Is
ASoC itself is platform independant. It does require drivers for the CPU, CODEC and board that it is to be used with. You mentioned that you are using an Atmel processor which does have CPU side support in current Linux versions though the ADC you mentioned doesn't.
it correct? In this case I have to compile it in the kernel, using the gcc-arm-elf cross compiler. How to do that? Hard copy the files and hacking makefiles together? Because the descriptions I found applied to installing ASoC on a desktop environment, like Ubuntu.
ASoC is part of the standard Linux kernel, just build the kernel as you
Good to know. I'm going to look deeper into the kernel config.
would normally. As I said in my previous mail people working with the same embedded Linux distribution as you are would be the best people to ask about this, it is not at all ASoC or ALSA specific.
Ok, I will ask them. But I still hope that someone in the ALSA list faced the same problem.
Szabolcs
participants (2)
-
Mark Brown
-
Szabolcs Erki