编译可加载lcd驱动的linux uImage

pc:Centos5.4

内核:linux 3.0.1

开发板:ok6410

交叉编译器:arm-linux-gcc 4.4.1

LCD驱动程序

怎么写LCD驱动程序?

1. 分配一个fb_info结构体: framebuffer_alloc

2. 设置

3. 注册: register_framebuffer

4. 硬件相关的操作

测试:

1. make menuconfig去掉原来的驱动程序

-> Device Drivers

  -> Graphics support

<M> S3C LCD framebuffer support

2. make uImage

出现错误:修改/drivers/media/video/samsung/tv/s3c-tvenc 中的makefile,然后将s3c-tvenc 注释掉。

又出现错误,继续修改:/home/flinux/kernel/linux-3.0.1/drivers/media/video/samsung/fimc/s3c_fimc_core.c

224 //      ctrl->open_lcdfifo = s3cfb_enable_local;

225 //      ctrl->close_lcdfifo = s3cfb_enable_dma;

再出错,再改: drivers/video/samsung,修改makefile ,把s3cfb_fimd4x.c屏蔽掉

   make modules 

3. 使用新的uImage启动开发板:

4. 通过上面的make modulecfbcopyarea.c这三个文件在driver/video里,不过还是没编译成功,为了省麻烦,直接把里面的这三个文件和一个头文件放到一个新建文件夹里,然后添加makefile,再来make下,这样就编译出下面要的三个.ko文件了。

insmod cfbcopyarea.ko

insmod cfbfillrect.ko

insmod cfbimgblt.ko

insmod lcd.ko

echo hello > /dev/tty1  // 可以在LCD上看见hello

cat lcd.ko > /dev/fb0   // 花屏

 

5. 修改 /etc/inittab

tty1::askfirst:-/bin/sh

用新内核重启开发板

insmod cfbcopyarea.ko

insmod cfbfillrect.ko

insmod cfbimgblt.ko

insmod lcd.ko

insmod buttons.ko

你可能感兴趣的:(编译可加载lcd驱动的linux uImage)