当前位置: 代码迷 >> 驱动开发 >> linux音频芯片驱动的有关问题
  详细解决方案

linux音频芯片驱动的有关问题

热度:76   发布时间:2016-04-28 10:45:36.0
求助linux音频芯片驱动的问题
小弟以前没研究过linux内核,更没搞过linux下的驱动。公司现在开发一款产品,嵌入式平台ARM11上的。以前demo板上用的音频芯片是一款日本产的,现在要抵制日货,所以准备采用TI的一款音频芯片,型号是Tlv320aic3101。我只有一周的时间来做这个工作。现在已经过去了3天了,遇到了一些问题,想向给位大侠请教一下。
  用的linux内核版本是2.6.38,本来内核的sound/soc/codec/目录下面已经有一个tlv320aic3x.c的驱动文件包含了aic31系列,所以我想编解码器驱动这个应该是不用我改的,我需要改的应该是平台驱动。我就对照着以前demo上平台驱动的写法改了下,写了个自己的平台驱动。然后编译也没错,生成了对应的模块snd-soc-tlv320aic3x.ko和平台驱动模块snd-soc-aaa.ko。
  然后用modprobe加载,提示依赖错误。然后用depmod想产生这个依赖关系,但出现了‘segment fault’的错误。用insmod加载,提示invalid module format,用modinfo查看那两个ko,都是只打印了filename一行,没有显示后面的descrīption,license,vermagic等信息。(因为之前编译加载过其他驱动的ko模块,版本应该不会有什么问题)
  现在我是一头雾水,想请教下各位大侠,根据上面那些信息,不知道你们能否知道是哪里的问题?或者要怎样才能解决这个问题?

------解决方案--------------------
直接编译进内核看看,不要用模块的方式。若编译进内核都不行的话,就得仔细看看驱动哪的问题了。
------解决方案--------------------
探讨

谢谢楼上的回答。问题我已经基本解决了。
depmod出现‘segmentation fault’,应该是我用的系统中该命令本身存在错误导致的,随便找个正确的模块使用depmod命令都会出现该错误。
另外我上面描述的也有点问题,我改的是机器驱动,不是平台驱动。Asoc包含了平台驱动,机器驱动和编解码器驱动三部分。由于我按照demo板上的机器驱动改写的,所以改写的有点问题……