Export to GitHub

patch-hosting-for-android-x86-support - ALSA.wiki


Introduction

This page will explain how to make ALSA work on EeePC 701 (and I think also other similar products).

Downloading ALSA projects

Create the local_manifest.xml file which tells repo about the eee_701 branch:

$ cd .repo $ touch local_manifest.xml

Open local_manifest.xml in your favorite text editor. Paste the following text into local_manifest.xml.

<?xml version="1.0" encoding="UTF-8"?> <manifest> <project path="external/alsa-lib" name="platform/external/alsa-lib"/> <project path="external/alsa-utils" name="platform/external/alsa-utils"/> <project path="hardware/alsa_sound" name="platform/hardware/alsa_sound"/> </manifest>

Notice

Both alsa_amixer and alsa_aplay will not work. Do not rely on them. On troubleshooting, check if the audio card is recognized by the ALSA Layer by using procfs or sysfs. Also alsa_aplay -l should help.

Kernel

ALSA (as built in) and Intel HD (as module).

vendor/asus/eee_701/BoardConfig.mk

#... HAVE_HTC_AUDIO_DRIVER := false BOARD_USES_ALSA_AUDIO := true BUILD_WITH_ALSA_UTILS := true #...

vendor/asus/eee_701/AndroidBoard.mk

Add the module to the kernel modules section.

kernel_modules := \ #... snd-hda-intel.ko

Copy alsa config into system/etc/.

PRODUCT_COPY_FILES += \

$(LOCAL_PATH)/asound.conf:system/etc/asound.conf

Asound.conf

Place asound.conf file into vendor directory (you'll find it in Downloads section).

vendor/asus/eee_701/init.rc

Under kernel/Documentation/sound/alsa/ALSA-Configuration.txt there are other sound card models can be specified as module arg.

on init #... insmod /lib/modules/snd-hda-intel.ko model=eeepc-p701 #...

vendor/asus/eee_701/init.eee_701.rc

setprop alsa.mixer.playback.master Master setprop alsa.mixer.capture.master Capture setprop alsa.mixer.playback.earpiece Master setprop alsa.mixer.capture.earpiece Capture setprop alsa.mixer.playback.headset Master setprop alsa.mixer.playback.speaker Master

system/core/init/devices.c

Add the following line to static struct perms_ devperms[].

{ "/dev/snd/", 0664, AID_SYSTEM, AID_AUDIO, 1 }

Google Groups Discussion

You can notify missing information or ask for help at GoogleDiscussion