Tiny210开发板wm8960驱动

tinyalsa库

如果修改了external/tinyalsa目录下的内容,可以通过如下两种方法去编译tinyalsa相关的工具。
1、m mm mmm external/tinyalsa
m mm mmm具体的实现在android-4.0.3_r1/build/envsetup.sh,所以只要source一遍这个文件便能在编译过程中使用m mm mmm了。
m 编译所有的模块
mm 编译当前目录下的模块,当前目录下要有Android.mk文件
mmm 编译指定路径下的模块,指定路径下要有Android.mk文件

我在编译externel/tinyalsa过程中遇到问题如下:
执行:mmm external/tinyalsa
需要的目标“out/target/product/generic/obj/lib/liblog.so”
lei@testHP:~/Tiny210/android-4.0.3_r1$ make liblog
需要的目标“out/target/product/generic/obj/lib/libcutils.so”
需要的目标“out/target/product/generic/obj/lib/libutils.so”
以上会不断遇到缺少的库编译的问题,所以采用第二种方法去编译tinyalsa库相关的东西。

2、直接在根目录执行:./build-android
例如我修改了external/tinyalsa/tinyplay.c文件,那么编译会得到如下输出:
target thumb C: tinyplay <= external/tinyalsa/tinyplay.c
target Executable: tinyplay (out/target/product/mini210/obj/EXECUTABLES/tinyplay_intermediates/LINKED/tinyplay)
target Symbolic: tinyplay (out/target/product/mini210/symbols/system/bin/tinyplay)
target Strip: tinyplay (out/target/product/mini210/obj/EXECUTABLES/tinyplay_intermediates/tinyplay)

通过以上两种方法的任意一种将tinyalsa编译之后在Tiny210/android-4.0.3_r1/out/target/product/mini210/symbols/system/bin会有tinyplay tinymix tinycap,而tiny210 android SDK默认没有把他们打包到系统中,所以需要手动将tinyplay tinymix tinycap复制到rootfs_dir目录下。


Tiny210的wm8960 codec驱动和machine驱动

Tiny210的linux kernel并没有提供wm8960的machine驱动,但是提供了编译好的二进制内核模块直接加载到系统中。
~/Tiny210/android-4.0.3_r1/rootfs_dir/system/lib/modules/3.0.8-FriendlyARM/kernel/sound/soc/s5pv2xx/snd-soc-wm8960.ko snd-soc-mini210-wm8960.ko
~/Tiny210/android-4.0.3_r1/rootfs_dir/system/lib/modules/2.6.35.7-FriendlyARM/kernel/sound/soc/s5pv2xx/snd-soc-wm8960.ko snd-soc-mini210-wm8960.ko
这些驱动在/system/etc/init.mini210.sh中会被modprobe

现在我们需要自己添加machine driver文件mini210_wm8960.c,这个文件要到网上去找,也可以反编译两个.ko文件。编译完codec驱动、platform驱动、machine驱动到kernel之后,kernel便能使用wm8960了。

我们还需要做以下步骤:
1) 注销Tiny210/android-4.0.3_r1/rootfs_dir/system/etc/init.mini210.sh中关于audio module probe的语句。
#Audio, video, input
#modprobe snd-soc-wm8960
#modprobe snd-soc-mini210-wm8960
2)删除rootfs_dir/system/lib/modules/3.0.8-FriendlyARM/kernel/sound/soc/s5pv2xx/两个.ko文件
3)删除rootfs_dir/system/lib/modules/2.6.35.7-FriendlyARM/kernel/sound/soc/s5pv2xx两个.ko文件

你可能感兴趣的:(alsa子系统)