p
linux2.6.24 移植:lcd 驅動
平台資訊
:
目標板 :
magicarm2410
os
:ubuntu10.0.4
lcd :
sumsang 的
lq080v3dg01 8
寸 640
x480
系統核心:linux2.6.24.4
在 linux2.6.2 4
下移植lcd
驅動程式 十分簡單,只要在
核心原始碼
arch/arm/mach-s3c2410/mach-smdk2410.c
裡新增初始化
s3c2410
的 lcd
控制器時所需要的引數。 而這些引數可以參考
arch/arm/mach-s3c2410/mach-qt2410.c
檔案中對
sharp lq080v3dg01
型 lcd
控制器初始化的相關**。
如果移植的核心是
linux2.6.22
的話就有很多的區別,主要區別:
一、在 2.6.24
核心中有了重大的資料結構變化,首先他把結構拆成了二部分,乙個結構是
s3c2410fb_display
另乙個結構是
s3c2410fb_mach_info
,所以先根據這二個資料結構進行拆分上述結構;
二、2.6.24
結構中對暫存器
lcdcon1-4
全部用函式進行了自動設定,我們只需對
lcdcon5
進行設定,但是並不說明其他的資料不重要,或者不用設定,只是重點在
lcdcon5
這幾個數值上。
可以參考
現在我介紹一下
inux2.6.2 4
的lcd
移植過程:
1
. 修改
arch/arm/mach-s3c2410/mach-smdk2410.c
檔案
(
1
)新增標頭檔案
#include
(
2
)新增初始化
s3c2410
的
lcd
控制器時所需的引數
這些引數可參考
arch/arm/mach-s3c2410/mach-qt2410.c
檔案中對
sharp lq080v3dg01 型
lcd
控制器初始化的相關**,如下:
/* lcd driver info */
static struct s3c2410fb_display qt2410_lcd_cfg __initdata = , ,
, };
static struct s3c2410fb_mach_info qt2410_fb_info __initdata = ;
所以在arch/arm/mach-s3c2410/mach-smdk2410.c裡的
新增如下**:
/*configuration for 640x480 sharp lq080v3dg01
*/ static struct s3c2410fb_display edukit2410_lcd_cfg __initdata =
}; /*lcd driver info
*/ static struct s3c2410fb_mach_info edukit2410_fb_info __initdata = ;
(
3
)新增
lcd
控制器 的暫存器引數設定
函式
在smdk2410_init
函式中新增如下** :
s3c24xx_fb_set_platdata(&qt2410_lcd_ info ); //
設定 lcd
控制器 的暫存器引數
效果如下:
static void __init smdk2410_init(void)
2
.
配置核心
輸入以下命令,開始配置核心。
#make menuconfig
新增如下選項:
device drivers --->
graphics support --->
<*> support for frame buffer devices --->
<*> s3c2410 lcd framebuffer support
display device support --->
<*> display panel/monitor support
console display driver support --->
<*> framebuffer console support
[*] framebuffer console rotation
[*] select compiled-in fonts
[*] vga 8x8 font
[*] vga 8x16 font
[*] mini 4x6 font
[*] sparc console 8x16 font
[*] bootup logo --->
--- bootup logo
[*] standard 224-color linux logo
上面只涉及移植
lcd
驅動必須新增的選項,核心詳細配置過程可參考網路上相關資料。
配置好核心後,輸入以下命令,
重新編譯核心 。
看看啟動資訊
……io scheduler cfq registered
console: switching to colour frame buffer device 30x40
fb0: s2410fb frame buffer device
……同時可以看到
lcd
上出現了乙隻可愛的小企鵝
~~~
接著我把
nfs檔案掛載到開發板後,執行
./mplayer video.mpeg,
但是開發板螢幕上沒有任何影象,而且列印了錯誤資訊:
can't open /dev/fb0: no such file or directory
[fbdev2] can't open /dev/fb0: no such file or directory
解決方法:在
dev下建立 fb0節點
[root@(none) /dev]# mknod /dev/fb0 c 29 0
./mplayer -nosoudn video.mpeg
linux2 6 24下lcd驅動移植的小結
一 lcd驅動移植網上參考資料 linux 2.6.20的lcd驅動分析 module init 函式在include linux init.h中定義。核心與buffer驅動發生關係的第一次地點是在s3c2410fb init函式,該函式就只有一條語句 return platform driver ...
公升級linux核心到2 6 24
以下為正文 序 言 一 準備工作 首先說明,下面帶 號的行都是要輸入的命令列,且本文提到的所有命令列都在終端裡輸入。啟動linux系統,並用根使用者登入,進入終端模式下。1 檢視linux核心版本 uname a 如果螢幕顯示的是2.6.x,說明你的已經是2.6的核心,也用不著看下文了,該幹什麼幹什...
linux核心移植
1.基本開發環境 u boot版本 u boot 2012.04.01 假設u boot已經移植好 linux平台 虛擬機器下ubuntu 14.04 交叉編譯工具 gcc 4.4.3 arm開發板 mini2440 cpu s3c2440 sdram 64m,nor flash 2m,nand f...