嵌入式Linux自学阶段性总结(6)

2019-07-13 00:40发布

三 配置linux kernel及安装alsa-driver   经历了上面两个阶段,mscore乐谱程序可以在开发板上运行起来了,已经看到了胜利的曙光。下面面临的问题有几点:
  1. mscore在开发板上运行比老黄牛都慢,触摸屏点击后几秒才有反应。可能原因:a. qte4.4.3在编译的时候,没有在qfeature.h中去掉某些不必要的功能,这是为了尽可能的满足mscore的需求。b. msocre程序本身还存在错误,在运行的过程中,不断的想stderr输出错误信息。c. mscore本来是运行在PC上的,程序自身就有42Marm9平台速度比较低。
 
  1. mscore不能发声Qq2440附带linux-kernel-2.6.13内核中配置好了touchscreen, lcd, framebuffer, net card, oss sound driver, led, i2c, keyboard, usb ssci设备等驱动,但是没有提供s3c24xx系统处理器上采用uda1341音频dsp解码芯片,基于iis音频传输接口和L3控制接口的alsa驱动。这个要自己找驱动,然后编译进内核中,实现对alsa音频的支持。
 
  1. mscore程序界面上某些工具栏图标没有显示出来,可能是该图片格式不被qte支持。
  下面对第二点关于alsa驱动解决方法 1. qq2440开发板附带的内核源码,已经针对开发板硬件进行了修改,主要是在内核驱动模块选项上,修改了相关目录下KConfigMakefile文件,使得make menuconfig图形配置界面里出现了相关了驱动选项,比如L3接口(声卡驱动用到,同时还有IIS,但是这个内核自身就包括), touchscreen驱动,lcd驱动等.但是唯独没有添加alsa的驱动,需要我手工把alsa驱动源代码放进内核源码中,修改soundKConfig Makefile,编译alsa驱动.   2. 对于嵌入式linux应用来说,硬件变化多,要灵活的配置内核,光考内核自带的make menuconfig是不行的,许多情况想还要自己修改KConfigMakefile,把自己的驱动放进内核的编译环境中.首先要了解内核的KConfig文件的语法结构. 3. 另一种可能的安装alsa驱动的方法,就是我第一次的那种,直接在主机alsa-driver代码目录中configure,然后make,这样做内核和alsa是独立的,大概需要把编译出来的点o文件考进文件系统中,然后用mknod命令,生成需要的声卡设备节点. /bin/mkdir /dev/snd /bin/mknod /dev/snd/controlC0 c 116 0 /bin/mknod /dev/snd/hwC0D0 c 116 4 /bin/mknod /dev/snd/pcmC0D0c c 116 24 /bin/mknod /dev/snd/pcmC0D0p c 116 16 /bin/mknod /dev/snd/seq c 116 1 /bin/mknod /dev/snd/timer c 116 33   但是这样,怎么保证内核启动的时候自己加载alsa驱动模块?