Linux2 6 24移植 LCD驅動

2021-05-24 14:47:44 字數 4204 閱讀 5699

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...