主题 : 请教,驱动文件修改之后怎样才能在内核中生效? 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 8129
精华: 0
发帖: 78
金钱: 490 两
威望: 213 点
综合积分: 156 分
注册时间: 2009-08-11
最后登录: 2017-09-13
楼主  发表于: 2009-12-14 17:16

 请教,驱动文件修改之后怎样才能在内核中生效?

大侠们,,请问一下,我修改了  arch/arm/mach-s3c2440/mach-smdk2440.c 中的LCD参数,并保存了,,我把240*320的屏 改成了 320*240的
,然后 make menuconfig, make zImage ,mkyaffs2image-128M 生成yaffs文件系统,
按照说明文档烧录进系统板,发现生成的内核还是和以前一样的,,屏幕显示一点变化都没有。。。

请问,是不是在修改了之后应该使用 arm-gcc 编译器先编译一下?? 具体的步骤,哪位大哥能告诉一下吗??
谢谢
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2009-12-14 17:29
make zImage就是重新编译内核;
你修改的部分是属于内核镜像,也就是存在于编译出来的zImage中,所以需重新烧录进开发板的应该是内核镜像而不是yaffs文件系统镜像。
留意一下内核启动信息中打印内核版本的语句,里面有这个内核镜像编译的时间。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 侠客
UID: 8129
精华: 0
发帖: 78
金钱: 490 两
威望: 213 点
综合积分: 156 分
注册时间: 2009-08-11
最后登录: 2017-09-13
2楼  发表于: 2009-12-14 17:42

 回 1楼(kasim) 的帖子

谢谢版主回复,,, 我ZIMAGE 也是重新烧录的,,而且就是烧录的我重新编译出来的新的内核镜像文件,,
内核显示信息中的编译时间就是我修改mach-smdk2440.c 文件后的编译时间,,, 很是奇怪。。。
还请教版主,,有没有其它的可能造成这种情况。。。
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2009-12-14 17:56

 回 2楼(dgc1127) 的帖子

你修改的地方内核没有用到
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 侠客
UID: 8129
精华: 0
发帖: 78
金钱: 490 两
威望: 213 点
综合积分: 156 分
注册时间: 2009-08-11
最后登录: 2017-09-13
4楼  发表于: 2009-12-15 13:57

 回 3楼(kasim) 的帖子

谢谢版主回复。。。。我今天看了我修改的内核 ,,编译时间也对了,,确实我修改的地方没有被用到。。
我想修改LCD 的驱动,按照以下步骤修改了如下地方,,还请帮忙看看到底是哪里出了问题。

linux 内核版本 2.6.29, 系统fedora 9

1、在 /opt/friendlyarm/mini2440/linux-2.6.29/arch/arm/mach-s3c2440文件夹下面修改,mach-mini2440 文件,,修改内容为

         .width        = 320,
    .height    = 240,

    .pixclock    = 166667, // HCLK 60 MHz, divisor 10
    .xres        = 320,
    .yres        = 240,
    .bpp        = 16,
    .left_margin    = 7,//20
    .right_margin    = 8,//8
    .hsync_len    = 4,//4
    .upper_margin    = 8,//8
    .lower_margin    = 20,//7
    .vsync_len    = 4,//4

2、保存
3、在/opt/friendlyarm/mini2440/linux-2.6.29 文件夹下面执行  
# cp config_mini2440_n35 .config
4、 make menuconfig,,选择load an alternate configuration file ,在加载了 .config文件之后,保存退出。
5、然后再次执行 make menuconfig  ,
按照以下设置 make menuconfig
Device Drivers --->
                 Graphics support  --->
                      <*>Support for frame buffer device
                      <*>S3C2410  LCD framebuffer support
                      console   display   driver support------>
                       <*> Framebuffer  console support
                        [  ]  Select compiled-in fonts
                [*]  Bootup  logo  ----->
                           [*]Standard 224-color linux logo
6、设置完成之后,保存,,然后 make zImage;
7、把最新编译的内核烧录进mini2440,,结果显示一点都不变,,但是内核编译时间有更新。

LCDCON寄存器中的数据不管我在程序中怎么改,,这边输出的信息都没有改变。。

s3c2410fb: check_var(var=c383e814, info=c383e800)
s3c2410fb: pixclk 100000, divisor is 10
s3c2410fb: s3c2410fb_activate_var: var->xres  = 240
s3c2410fb: s3c2410fb_activate_var: var->yres  = 320
s3c2410fb: s3c2410fb_activate_var: var->bpp   = 16
s3c2410fb: setting vert: up=2, low=6, sync=2
s3c2410fb: setting horz: lft=20, rt=37, sync=6
s3c2410fb: new register set:
s3c2410fb: lcdcon[1] = 0x00000478
s3c2410fb: lcdcon[2] = 0x014fc141
s3c2410fb: lcdcon[3] = 0x0120ef13
s3c2410fb: lcdcon[4] = 0x00000005
s3c2410fb: lcdcon[5] = 0x00000b09
s3c2410fb: LCDSADDR1 = 0x19c80000
s3c2410fb: LCDSADDR2 = 0x19c92c00
s3c2410fb: LCDSADDR3 = 0x000000f0


还请各位帮忙给小弟看看,,这个到底是怎么回事呢?? 我按照 http://www.aiothome.net/read.php?tid-1561-keyword-LCD.html  这篇帖子的方法 改也不行的,,是不是哪个步骤有遗漏??
谢谢各位了

    
级别: 侠客
UID: 8129
精华: 0
发帖: 78
金钱: 490 两
威望: 213 点
综合积分: 156 分
注册时间: 2009-08-11
最后登录: 2017-09-13
5楼  发表于: 2009-12-15 16:40
还请各位大侠们。。帮忙看看阿
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
6楼  发表于: 2009-12-15 17:07
你先把你修改过后的mach-mini2440.c附上来看看吧
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."