嵌入式Linux自學階段性總結(6)

三 配置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驅動模塊?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章